MXAM Report
MES Model Examiner®
EV3Control_V1
Failed
User:
KSchmidt
Generated at:
2019-10-12 14:15:24
Duration:
00:01:08
Support Contact:
Model Engineering Solutions GmbH, support@model-engineers.com
Artifacts:
ManageVehicleStates_demo_ec
com.modelengineers.mxam.tooladapter.matlab#Identification feature
SID
Contents
1 Result Overview
This section provides overviews on the guideline and check compliance, and the distribution of findings.
Failed
1.1 Artifact Result Overview [» Contents]
This chart summarizes all artifact results. The artifact result evaluation is derived from the result type of the most severe guideline result.
1.2 Total Guideline Compliance [» Contents]
This chart summarizes all guideline results. The guideline result evaluation is derived from the result type of the most severe finding of any of its checks.
1.3 Total Check Compliance [» Contents]
This chart summarizes all check results. The check result evaluation is derived from the result type of the most severe finding of the check.
1.4 Findings Summary [» Contents]
This chart summarizes the results of all check findings. 
1.5 Linked Heat Map  [» Contents]
This heat map highlights guideline violations as a matrix of checks and artifacts. It shows the total number of findings in the color code of the respective check result.
Document
Chapter
Guideline ID
Check ID
Configuration
TL_RULE_STATEFLOW_MEALYMOORE_CHART
mcheck_mes_cgtl_4103
 
 
TL_RULE_STATEFLOW_OUTPUT_CHART_WAKEUP
mcheck_mes_cgtl_4104
 
 
TL_RULE_STATEFLOW_SUPERSTEP_CHART
mcheck_mes_cgtl_4105
 
 
mes_is_0002
mcheck_mes_is_0002
 
 
mes_slsf_3106
mcheck_mes_slsf_3106
 
 
5
5
misra_slsf_034_a
mcheck_misra_slsf_034_a
 
 
misra_slsf_034_d
mcheck_misra_slsf_034_d
 
 
Defensive Implementation Techniques
TL_RULE_LOGICBIT_LIB_RELOP_NAN
mcheck_mes_slsf_4109
 
 
1
1
misra_slsf_038_b
mcheck_misra_slsf_038_b
 
 
misra_slsf_038_c
mcheck_misra_slsf_038_c
 
 
sdt_ic003
mcheck_sdt_ic003
 
 
Enforcement of Strong Typing
misra_slsf_036_a
mcheck_misra_slsf_036_a
 
 
misra_slsf_037_h
mcheck_misra_slsf_037_h
 
 
mcheck_sdt_sc002_a
 
 
mcheck_sdt_sc002_b
 
 
mcheck_sdt_sc002_c
 
 
1
1
mcheck_sdt_sc002_e
 
 
1
1
1
1
1
1
Established Design Principles
db_0110
mcheck_db_0110
 
 
mes_cgtl_4102
mcheck_mes_cgtl_4102
 
 
mes_sltl_001
mcheck_mes_sltl_001
 
 
mes_sltl_002
mcheck_mes_sltl_002_a
 
 
mcheck_mes_sltl_002_b
 
 
1
1
misra_slsf_006_e
mcheck_misra_slsf_006_e
 
 
misra_slsf_008_a
mcheck_misra_slsf_008_a
 
 
misra_slsf_012_a
mcheck_misra_slsf_012_a
 
 
misra_slsf_013_b
mcheck_misra_slsf_013_b
 
 
misra_slsf_013_c
mcheck_misra_slsf_013_c
 
 
misra_slsf_017_a
mcheck_misra_slsf_017_a
 
 
misra_slsf_017_b
mcheck_misra_slsf_017_b
 
 
misra_slsf_018_d
mcheck_misra_slsf_018_d
 
 
misra_slsf_018_e
mcheck_misra_slsf_018_e
 
 
na_0032
mcheck_na_0032_a
 
 
mcheck_na_0032_b
 
 
1
1
Events
db_0126
mcheck_db_0126
 
 
misra_slsf_047_ab
mcheck_misra_slsf_047_ab
 
 
Execution Order
misra_slsf_009_b
mcheck_misra_slsf_009_b
 
 
Language Subset
TL_RULE_STATEFLOW_MATLAB
mcheck_ds_0064
 
 
jm_0001
mcheck_jm_0001
 
 
misra_slsf_005_a
mcheck_misra_slsf_005_a
 
 
misra_slsf_005_b
mcheck_misra_slsf_005_b
 
 
misra_slsf_043_b
mcheck_misra_slsf_043_b
 
 
misra_slsf_046_a
mcheck_misra_slsf_046_a
 
 
Model Architecture
1
1
mes_arch_1302
matlab_mxray_1302
 
 
mes_arch_1303
matlab_mxray_1303
 
 
mes_arch_1304
matlab_mxray_1304
 
 
mes_arch_1306
matlab_mxray_1306
 
 
Modeling of Data Flow
misra_slsf_005_c
mcheck_misra_slsf_005_c
 
 
misra_slsf_018_a
mcheck_misra_slsf_018_a
 
 
misra_slsf_018_b
mcheck_misra_slsf_018_b_1
 
 
mcheck_misra_slsf_018_b_2
 
 
misra_slsf_029_a
mcheck_misra_slsf_029_a
 
 
misra_slsf_029_f
mcheck_misra_slsf_029_f
 
 
misra_slsf_030_abc
mcheck_misra_slsf_030_ab
 
 
mcheck_misra_slsf_030_c
 
 
Naming Conventions
TL_RULE_SWDESIGN_IDENTIFIER_LENGTH
mcheck_misra_tl_2_3
 
 
13
13
5
5
jc_0201
mcheck_jc_0201
 
 
jc_0221
mcheck_jc_0221
 
 
4
4
misra_tl_1_2
mcheck_misra_tl_1_2_a
 
 
mcheck_misra_tl_1_2_b
 
 
No Hidden Data Flow or Control Flow
db_0125
mcheck_db_0125
 
 
misra_slsf_037_b
mcheck_misra_slsf_037_b
 
 
Grand Total
35
35
1.6 Linked Document Structure [» Contents]
This section shows the structure of the guideline document with the aggregated result for each chapter level.
Failed
1 MXAM Starter Set - Extended Version
Unselected
1.1 Introduction
Warnings
1.2 Model Architecture
Warnings
Warnings
Passed
   mes_arch_1302 - Restricted Number of Hierarchy Levels
Passed
   matlab_mxray_1302 - Restricted Number of Hierarchy Levels
Passed
   mes_arch_1303 - Restricted Number of Inports
Passed
   matlab_mxray_1303 - Restricted Number of Inports
Passed
   mes_arch_1304 - Restricted Number of Outports
Passed
   matlab_mxray_1304 - Restricted Number of Outports
Passed
   mes_arch_1306 - Effective Interfaces
Passed
   matlab_mxray_1306 - Restricted Unused Elementary Inputs (globally, %)
Failed
1.3 Layout and Design
Failed
1.3.1 Naming Conventions
Failed
Failed
Failed
Failed
Passed
   jc_0201 - Usable Characters for Subsystem Names
Passed
   mcheck_jc_0201 - Usable Characters for Subsystem Names
Passed
   jc_0221 - Usable Characters for Signal Line Names
Passed
   mcheck_jc_0221 - Usable Characters for Signal Line Names
Passed with Infos
1.3.2 Modeling of Data Flow
Passed with Infos
   misra_slsf_018_a - Usage of "from" and "goto" Blocks - Visibility
Passed with Infos
   mcheck_misra_slsf_018_a - Usage of "from" and "goto" Blocks - Visibility
Passed with Infos
   misra_slsf_018_b - Usage of "from" and "goto" Blocks - Tag
Passed with Infos
   mcheck_misra_slsf_018_b_1 - Usage of "from" and "goto" Blocks - Tag (Goto)
Passed with Infos
   mcheck_misra_slsf_018_b_2 - Usage of "from" and "goto" Blocks - Tag (From)
Passed with Infos
   misra_slsf_005_c - Allowable Simulink Blocks - Data Store Memory
Passed with Infos
   mcheck_misra_slsf_005_c - Allowable Simulink Blocks - Data Store Memory
Passed
   misra_slsf_030_abc - Port Location
Passed
   mcheck_misra_slsf_030_ab - Port Location - Inports and Outports
Passed
   mcheck_misra_slsf_030_c - Port Location - Trigger, Enable, and Action Ports
Passed
   misra_slsf_029_a - Signal and Bus Line Positioning - Orientation
Passed
   mcheck_misra_slsf_029_a - Signal and Bus Line Positioning - Orientation
Unselected
   misra_slsf_029_be - Signal and Bus Line Positioning - Overlaps and Branching
Unselected
   misra_slsf_029_c - Signal and Bus Line Positioning - Crossings of line and block
Passed
   misra_slsf_029_f - Signal and Bus Line Positioning - Branching
Passed
   mcheck_misra_slsf_029_f - Signal and Bus Line Positioning - Branching
Passed
1.3.3 Execution Order
Passed
   misra_slsf_009_b - Block Execution Frequency and Order - Block Priority
Passed
   mcheck_misra_slsf_009_b - Block Execution Frequency and Order - Block Priority
Unselected
1.3.4 Block and Text Appearance
Failed
1.4 Functional Model
Failed
1.4.1 Simulink/TargetLink
Passed
1.4.1.1 Language Subset
Passed
   misra_slsf_005_b - Allowable Simulink Blocks - Prohibited Blocks
Passed
   mcheck_misra_slsf_005_b - Allowable Simulink Blocks - Prohibited Blocks
Passed
   misra_slsf_005_a - Allowable Simulink Blocks - Simulink Block Library
Passed
   mcheck_misra_slsf_005_a - Allowable Simulink Blocks - Simulink Block Library
Passed
   jm_0001 - Prohibited Simulink Standard Blocks Inside Controllers
Passed
   mcheck_jm_0001 - Prohibited Simulink Standard Blocks Inside Controllers
Passed with Infos
1.4.1.2 Defensive Implementation Techniques
Passed with Infos
   sdt_ic003 - Default Paths of Switch Case Blocks
Passed with Infos
   mcheck_sdt_ic003 - Default Paths of Switch Case Blocks
Failed
1.4.1.3 Established Design Principles
Passed
   misra_slsf_006_e - Block Parameters - Masked Subsystems
Passed
   mcheck_misra_slsf_006_e - Block Parameters - Masked Subsystems
Passed
   misra_slsf_017_a - Unconnected Blocks, Signal Lines and Busses - Blocks
Passed
   mcheck_misra_slsf_017_a - Unconnected Blocks, Signal Lines and Busses - Blocks
Passed
   misra_slsf_017_b - Unconnected Blocks, Signal Lines and Busses - Signals and Busses
Passed
   mcheck_misra_slsf_017_b - Unconnected Blocks, Signal Lines and Busses - Signals and Busses
Passed with Infos
   misra_slsf_018_d - Usage of "from" and "goto" Blocks - Matching "from" Block
Passed with Infos
   mcheck_misra_slsf_018_d - Usage of "from" and "goto" Blocks - Matching "from" Block
Passed with Infos
   misra_slsf_018_e - Usage of "from" and "goto" Blocks - Matching "goto" Block
Passed with Infos
   mcheck_misra_slsf_018_e - Usage of "from" and "goto" Blocks - Matching "goto" Block
Failed
Failed
Passed
   db_0110 - Tunable Parameters in Basic Blocks
Passed
   mcheck_db_0110 - Tunable Parameters in Basic Blocks
Passed with Infos
   na_0032 - Use of Merge Blocks
Passed with Infos
   mcheck_na_0032_a - Use of Merge Blocks - Identical Buses
Passed with Infos
   mcheck_na_0032_b - Use of Merge Blocks - Signals Entering Merge Block
Failed
Failed
Passed with Infos
   misra_slsf_013_b - Multiport Switch Block - Control Input
Passed with Infos
   mcheck_misra_slsf_013_b - Multiport Switch Block - Control Input
Passed with Infos
   misra_slsf_013_c - Multiport Switch Block - Value Range of Control Input
Passed with Infos
   mcheck_misra_slsf_013_c - Multiport Switch Block - Value Range of Control Input
Passed with Infos
   mes_sltl_001 - Magic Constants in Constant Blocks
Passed with Infos
   mcheck_mes_sltl_001 - Magic Constants in Constant Blocks
Passed
   mes_sltl_002 - Comparison of Floating-Point Signals
Passed
   mcheck_mes_sltl_002_a - Comparison of Floating-Point Signals in Simulink and TargetLink
Passed
   mcheck_mes_sltl_002_b - Comparison of Floating-Point Signals in Stateflow
Passed
   misra_slsf_012_a - Switch Block
Passed
   mcheck_misra_slsf_012_a - Switch Block
Passed with Infos
1.4.1.4 Naming Conventions
Unselected
   misra_slsf_026_c - Simulink Block, Subsystem and Library Naming - Port Names
Passed with Infos
   TL_RULE_SWDESIGN_IDENTIFIER_LENGTH - Identifier Length
Passed with Infos
   mcheck_misra_tl_2_3 - Restricting identifiers to 31 characters
Passed
   misra_tl_1_2 - Comments in Block Properties
Passed
   mcheck_misra_tl_1_2_a - Comments in block properties
Passed
   mcheck_misra_tl_1_2_b - Umlaute in Block Properties
Unselected
   TL_RULE_GENERAL_NAMING - General Naming Conventions
Unselected
1.4.1.5 Initialization of Variables
Failed
1.4.1.6 Configuration
Failed
Failed
Failed
1.4.2 Stateflow
Passed
1.4.2.1 Language Subset
Passed
   misra_slsf_046_a - History Junction
Passed
   mcheck_misra_slsf_046_a - History Junction
Passed
   TL_RULE_STATEFLOW_MATLAB - MATLAB Functionality
Passed
   mcheck_ds_0064 - MATLAB Functionality
Unselected
   TL_RULE_STATEFLOW_EXPLICIT_INPUT_SPEC - Avoidance of TargetLink Specifications for Stateflow Input Variables
Passed
1.4.2.2 Defensive Implementation Techniques
Passed
   misra_slsf_038_b - Operators in State Machines - Permitted Operations
Passed
   mcheck_misra_slsf_038_b - Operators in State Machines - Permitted Operations
Passed
   misra_slsf_038_c - Operators in State Machines - C Library Functions
Passed
   mcheck_misra_slsf_038_c - Operators in State Machines - C Library Functions
Unselected
   misra_slsf_041_a - Usage of Boxes
Unselected
   mes_sf_001 - No Loops in Multi Segmented Transitions
Unselected
   mes_sf_003 - Interaction between Parallel States
Unselected
1.4.2.3 Established Design Principles
Failed
1.4.2.4 Naming Conventions
Failed
Failed
Passed
1.4.2.5 Enforcement of Strong Typing
Passed
   misra_slsf_036_a - Stateflow/Simulink Interface Signals, Parameters and Naming - Bus Inputs
Passed
   mcheck_misra_slsf_036_a - Stateflow/Simulink Interface Signals, Parameters and Naming - Bus Inputs
Passed
   misra_slsf_037_h - Internal Data - Type
Passed
   mcheck_misra_slsf_037_h - Internal Data - Type
Unselected
   misra_slsf_048_e - Stateflow Coding - Custom Code Variables
Unselected
1.4.2.6 Style Guides
Passed with Infos
1.4.2.7 No Hidden Data Flow or Control Flow
Passed with Infos
   db_0125 - Scope of Internal Signals and Local Auxiliary Variables
Passed with Infos
   mcheck_db_0125 - Scope of Internal Signals and Local Auxiliary Variables
Passed
   misra_slsf_037_b - Internal Data - Local Data
Passed
   mcheck_misra_slsf_037_b - Internal Data - Local Data
Passed with Infos
1.4.2.8 Events
Passed
   misra_slsf_047_ab - Stateflow Events
Passed
   mcheck_misra_slsf_047_ab - Stateflow Events
Passed with Infos
   db_0126 - Scope of Events
Passed with Infos
   mcheck_db_0126 - Scope of Events
Unselected
   TL_RULE_STATEFLOW_IMPLICIT_EVENTS - No Use of Implicit Events
Unselected
   TL_RULE_STATEFLOW_ORDER_PARALLEL_STATES - Order Numbers for Parallel States
Passed with Infos
1.4.2.9 Configuration
Passed
   mes_is_0002 - User-specified State/transition Execution Order
Passed
   mcheck_mes_is_0002 - User-specified State/Transition execution order
Passed
   mes_slsf_3106 - Avoid Global Stateflow Functions
Passed
   mcheck_mes_slsf_3106 - Avoid Global Stateflow Functions
Passed with Infos
   misra_slsf_034_a - Chart Properties - C-like Bitwise Operators
Passed with Infos
   mcheck_misra_slsf_034_a - Chart Properties - C-like Bitwise Operators
Passed
   misra_slsf_034_d - Chart Properties - Chart Initialization
Passed
   mcheck_misra_slsf_034_d - Chart Properties - Chart Initialization
Passed
   TL_RULE_STATEFLOW_MEALYMOORE_CHART - No Support for Mealy or Moore State Machine Types
Passed
   mcheck_mes_cgtl_4103 - No Support for Mealy or Moore State Machine Types
Passed
   TL_RULE_STATEFLOW_OUTPUT_CHART_WAKEUP - No Output initialization When Chart Wakes Up
Passed
   mcheck_mes_cgtl_4104 - No Output initialization When Chart Wakes Up
Passed
   TL_RULE_STATEFLOW_SUPERSTEP_CHART - No Chart Execution with Super Step Semantics
Passed
   mcheck_mes_cgtl_4105 - No Chart Execution with Super Step Semantics
Failed
1.5 Implementation Model
Warnings
1.5.1 Simulink/TargetLink
Unselected
1.5.1.1 Language Subset
Warnings
1.5.1.2 Defensive Implementation Techniques
Passed with Infos
   TL_RULE_LOGICBIT_LIB_RELOP_NAN - Relational Operator with IsInf, IsNaN, IsFinite Checks
Passed with Infos
   mcheck_mes_slsf_4109 - Relational Operator with IsInf, IsNaN, IsFinite Checks
Warnings
Warnings
Passed with Infos
1.5.1.3 Established Design Principles
Passed
   misra_slsf_008_a - Rounding and Saturation in Simulink Blocks - Saturation Property
Passed
   mcheck_misra_slsf_008_a - Rounding and Saturation in Simulink Blocks - Saturation Property
Passed with Infos
   mes_cgtl_4102 - Data Type Conversion Block in TargetLink Models
Passed with Infos
   mcheck_mes_cgtl_4102 - Data Type Conversion Block in TargetLink Models
Warnings
1.5.1.4 Enforcement of Strong Typing
Unselected
   misra_tl_5_1 - Attributes of Look-Up table outputs
Unselected
   misra_tl_6_7 - Avoiding rescaling of input signals to LookupTables
Unselected
   sdt_sa001 - Strong Data Typing at the Input of Logical Operator Blocks
Unselected
   sdt_sa002 - Output Type of Logical and Relational Operator Blocks
Warnings
Warnings
Warnings
Warnings
Unselected
   sdt_sc003 - Strong Data Typing of Merge Blocks
Unselected
   sdt_sc004 - Strong Data Typing of Arithmetic Blocks
Unselected
   na_0002 - Appropriate Implementation of Fundamental Logical and Numerical Operations
Unselected
   TL_RULE_USERFUNC_LIB_FCN_BLOCK - Restrictions with Regard to the Fcn Block
Unselected
1.5.1.5 Configuration
Failed
1.5.2 Stateflow
Passed
1.5.2.1 Language Subset
Passed
   misra_slsf_043_b - Transitions - Transition-Actions
Passed
   mcheck_misra_slsf_043_b - Transitions - Transition-Actions
Failed
1.5.2.2 Enforcement of Strong Typing
Failed
Passed
   mcheck_sdt_sc002_a - Strong Data Typing at the Stateflow Interface - Chart Option "Strong Data Typing with Simulink I/O"
Passed
   mcheck_sdt_sc002_b - Strong Data Typing at the Stateflow Interface - Input Interface
Passed
   mcheck_sdt_sc002_c - Strong Data Typing at the Stateflow Interface - Output Interface
Failed
Passed
   mcheck_sdt_sc002_e - Strong Data Typing at the Stateflow Interface - Variable Range
1.7 Result Color Legend [» Contents]
This section shows all occuring result types in order of severeness and the respective color legend.
Aborted
Canceled
Unknown
Review
Unrepaired
Failed
Warnings
Passed with Infos
Repaired
Passed
Inapplicable
Unselected
2 Execution Details [» Contents]
This section shows details about the executed analysis.
2.1 Analyzed Artifacts [» Contents]
This section lists details of all analyzed artifacts.
Name
Additional Information
ManageVehicleStates_demo_ec
modeltype: MOD
dynamic:
modelpath: D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\ManageVehicleStates_demo_ec.slx
Creator: stuermer
Model Version: 1.643
Source File: D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\ManageVehicleStates_demo_ec.slx
Created: Tue May 09 14:12:57 2017
Modified: Wed Aug 19 14:08:55 2020
2.2 Execution Environment [» Contents]
This section lists details about the environment in which the analysis has been executed.
MES Model Examiner®
6.0.0
Expires
Permanent license
MATLAB-Adapter -v2.3
9.5
Operating system
Windows 7
Java Version
1.8.0_131
JVM Architecture
amd64
2.3 Global Check Parameters [» Contents]
This section lists the configuration of all global check parameters and their applied values during analysis.
Parameter Name
Value
Description
Comment
DebugInfo
false
This option specifies whether or not to print debug infos in MATLAB.
Default Setting
FollowLinks
on
This option specifies whether or not to follow links into library blocks.
Default Setting
Global.CheckItemResultMappings
{''}
List of strings with a mapping to change the result type of check items for certain checks.
This might be helpful if e.g. layout checks have a lower priority for you and you want to see only warnings instead of failures in your report.
The following keywords are available:
- f2w: faulty to warning, convert all rule violations  for this check or list of checks to warnings
- f2n: faulty to note, convert rule violations to notes
- f2p: faulty to passed, omit all rule violations from report 
- f2r: faulty to review, convert all rule violations to review results
- w2f: warnings to faulty,  convert all warnings to rule violations
- w2n: warning to note, convert all warnings to notes
- w2p: warning to passed,  omit all warnings from report
- w2r: warning to review, convert all warnings to review results
- n2f: note to faulty, convert all notes to rule violations
- n2w: note to warning, convert notes to warnings
- n2p: note to passed, omit notes from report
- n2r: note to review, convert all notes to review results
- r2f: review to faulty
- r2w: review to warning
- r2n: review to note
- r2p: review to passed

Examples:
- {'mcheck_ds_0055,mcheck_ds_0012:w2p'} Suppresses all warnings of check mcheck_ds_0055 and mcheck_ds_0012
- {'*:w2n,n2p','mcheck_is_0007:f2w'} Suppresses notes and converts warnings to notes for all checks. In addition, it converts all violations to warnings for check mcheck_is_007.

Please note, that it's not allowed to combine conflicting keywords, e.g. in '*:w2n w2p' or in {'*:f2n','mcheck_is_0007:f2w'}.
Default Setting
Global.FilterConfigurableSubsystems
0
Enables to selectively or completely filter out configurable subsystems, with or without its content. 
- 0: Do not apply. Configurable subsystems will be checked along with their content.
- 1: Filter out configurable subsystems and all its content (selected or not selected)
- 2: Filter out all content of configurable subsystems but keep the configurable subsystem blocks.
- 3: Filter out unselected content of configurable subsystems, but keep the selected content.
Default Setting
Global.IgnoreBlocksByAttrFormatStr
0
If this parameter is set to true, the filter defined in the attribute format string is evaluated by each check of the analysis. The filter is ignored if the parameter is set to false.
Default Setting
Global.IgnoredBlockTypes
{''}
List of block types to be ignored by all checks. 
Expected MATLAB type: cell array of strings, e.g. {'Blocktype1','Blocktype2'}
Default Setting
Global.IgnoredLibraries
{''}
List of library names of which included blocks will be ignored by all checks.Note: This list is not evaluated if the parameter Global. SkipLinkedSystems is set to a value greater than 0.
Expected MATLAB type: cell array of strings, e.g. {'Library1','Library2'}
Default Setting
Global.IgnoredLibrariesContentOnly
true
If true, only the contents of blocks linked to libraries given in the parameter Global.IgnoredLibraries will be filtered out.
If false, the blocks themselves will be filtered out, too.
Default Setting
Global.IgnoredMaskedSubsystems
{''}
List of mask types to be ignored by all checks. 
Expected MATLAB type: cell array of strings, e.g. {'Masktype1','Masktype2'}
Default Setting
Global.IgnoredMaskedSubsystemsContentOnly
true
If true, only the content of the masked subsystems given in the parameter Global.IgnoredMaskedSubsystems will be filtered out. If false, the subsystems themselves will be filtered out too.
Default Setting
Global.SkipLinkedSystems
0
Enables to filter linked systems and their content.
- 0: Do not apply
- 1: Filter out systems/blocks linked to a library and their content
- 2: Filter out content of systems/blocks that are linked to a library but keep the linked blocks
Default Setting
Global.SkipSLObjectsInCharts
true
If true, Simulink objects in Stateflow charts will be filtered out.
Default Setting
Global.SkipTLBlockChildren
true
If true, Simulink blocks located in TargetLink subsystems will be filtered out.
Default Setting
LogFilterStatistics
0
This option specifies if and for which level statistics of the filter actions will be returned.
Default Setting
LookUnderMasks
all
This option specifies whether or not to look under masked subsystems.
Default Setting
MXRAY.ShowCyclomaticComplexity
false
If true, the cyclomatic complexity (local) for each subsystem in the analyzed model will be shown.
Default Setting
MXRAY.ShowInports
true
If true, the number of inports for each subsystem in the analyzed model will be shown.
Default Setting
MXRAY.ShowLevel
true
If true, the level for each subsystem in the hierarchy of the analyzed model will be shown.
Default Setting
MXRAY.ShowLocalComplexity
true
If true, the local complexity for each subsystem in the analyzed model will be shown.
Default Setting
MXRAY.ShowOutports
true
If true, the number of outports for each subsystem in the analyzed model will be shown.
Default Setting
MXRAY.ShowUnusedElementaryInputs
true
If true, the percentage of unused elementary inputs for each subsystem in the analyzed model will be shown.
Default Setting
NoteLevels
4
This option specifies the level for reported notes.
Default Setting
Progressbar step
50
This option specifies the granularity for the progress bar steps.
Default Setting
ResolveModelReferences
false
Follow references to other MATLAB models
Default Setting
UseCache
false
This option specifies whether or not to use cached items in MATLAB.
Default Setting
WarningLevels
4
This option specifies the level for reported warnings.
Default Setting
3 Project Configuration
This section shows information about the pre-configured project settings for analysis.
3.1 General Information [» Contents]
This section shows general project information and settings.
Title:
EV3Control_V1
Location:
D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\MXAM_Project\EV3Control_V1_MXAM.mxmp
Author:
KSchmidt
Access:
public
Selection change allowed:
true
Annotations enabled:
true
Result Priority Order:
Aborted, Canceled, Unknown, Review, Unrepaired, Failed, Warnings, Passed with Infos, Repaired, Inapplicable, Passed, Unselected
3.2 Guideline Documents [» Contents]
This section lists the guideline documents that were selected for analysis.
ID
Title
Location
Properties
mes_first_set_modeling_guidelines_fs
MXAM Starter Set - Extended Version
D:\Programme\MXAM_6_0\libraries\documents\Model-Engineering-Solutions\mes_first_set_modeling_guidelines_fs\v04
Version: 4
Author: Model Engineering Solutions GmbH
Last modified: 09/20/2019 11:40:52
Status: released
Selected: true
3.3 Ignore Lists [» Contents]
This section lists all rules of applied ignore-list definitions.
3.4 Custom Check Parameter Settings [» Contents]
This section lists all check parameters, shared parameters, and global parameters that were customized and overwritten by the project configuration.
4 User Changes
This sections shows user changes that affect the results.
4.1 Annotations for Justified Deviations [» Contents]
This sections lists all user annotations on findings, including comments and result changes.
4.2 Guideline Document Selection Changes [» Contents]
This section lists all user-made selection changes deviating from the initial project configuration of the guideline documents.
ID
Change
Message
Guideline document: mes_first_set_modeling_guidelines_fs
mcheck_ar_0001
SELECTED
Selected check 'mcheck_ar_0001' in 'mes_first_set_modeling_guidelines_fs/Layout and Design/Naming Conventions/ar_0001'
mcheck_ar_0002
SELECTED
Selected check 'mcheck_ar_0002' in 'mes_first_set_modeling_guidelines_fs/Layout and Design/Naming Conventions/ar_0002'
mcheck_sdt_sc002_e
SELECTED
Selected check 'mcheck_sdt_sc002_e' in 'mes_first_set_modeling_guidelines_fs/Implementation Model/Stateflow/Enforcement of Strong Typing/sdt_sc002'
mcheck_sdt_sc002_c
SELECTED
Selected check 'mcheck_sdt_sc002_c' in 'mes_first_set_modeling_guidelines_fs/Implementation Model/Stateflow/Enforcement of Strong Typing/sdt_sc002'
mcheck_jc_0221
SELECTED
Selected check 'mcheck_jc_0221' in 'mes_first_set_modeling_guidelines_fs/Layout and Design/Naming Conventions/jc_0221'
mcheck_sdt_sc002_a
SELECTED
Selected check 'mcheck_sdt_sc002_a' in 'mes_first_set_modeling_guidelines_fs/Implementation Model/Stateflow/Enforcement of Strong Typing/sdt_sc002'
mcheck_misra_slsf_043_b
SELECTED
Selected check 'mcheck_misra_slsf_043_b' in 'mes_first_set_modeling_guidelines_fs/Implementation Model/Stateflow/Language Subset/misra_slsf_043_b'
matlab_mxray_1306
SELECTED
Selected check 'matlab_mxray_1306' in 'mes_first_set_modeling_guidelines_fs/Model Architecture/mes_arch_1306'
mcheck_sdt_sc002_d
SELECTED
Selected check 'mcheck_sdt_sc002_d' in 'mes_first_set_modeling_guidelines_fs/Implementation Model/Stateflow/Enforcement of Strong Typing/sdt_sc002'
mcheck_jc_0201
SELECTED
Selected check 'mcheck_jc_0201' in 'mes_first_set_modeling_guidelines_fs/Layout and Design/Naming Conventions/jc_0201'
mcheck_sdt_sc002_b
SELECTED
Selected check 'mcheck_sdt_sc002_b' in 'mes_first_set_modeling_guidelines_fs/Implementation Model/Stateflow/Enforcement of Strong Typing/sdt_sc002'
5 Guideline and Check Findings Details [» Contents]
This sections shows all guideline and check descriptions and the respective findings.
Guideline: mes_arch_1301 - Restricted Local Complexity [» Contents] [» Document Structure] [» Heat Map]
Warnings
Status
proposed
Author
Model Engineering Solutions GmbH
Version
1
Priority
strongly recommended
Objective
readability, maintainability
Automatically Checkable
fully
Manual Review Required
no
Description
The 'local complexity' (local MXRAY complexity) of a subsystem is based on the Halstad volume and is a measure of how difficult it is to understand the present subsystem, ignoring the content of subordinate subsystems. This means that the local complexity is calculated from the visible elements of the subsystem only. Subsystems should be easy to understand at the local level, i.e. the local complexity should be low.
Rationale
The local level of a subsystem is the level in which the developer models the system and in which a reviewer has to review the system. It is imperative for both the developer and the reviewer to understand the system at this level. Since the number of elements a human being can process at the same time is limited, the number of elements visible at the local level should be restricted. Therefore, in order to avoid errors in both development and review and to increase the readability and maintainability of the system, the local complexity should be low.


Model Type
functional model
ISO 26262-6 Mapping
T1.1a Enforcement of Low Complexity, T1.1e Use of Established Design Principles, T3.1a Appropriate hierarchical structure of the software components, T3.1b Restricted size and complexity of software components
ISO 25119-3 Mapping
Check: matlab_mxray_1301 - Restricted Local Complexity [» Contents] [» Document Structure] [» Heat Map]
Warnings
Compiled Model Required
no
TargetLink Required
no
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
all
Embedded Coder Versions
irrelevant
Pass-Fail Criteria
The check inspects the 'Complexity (local)' value of each artifact structure component of the analyzed model (block, chart diagram, diagram state, etc.).

  • Passed: The value is below or equal to the configured parameter 'MXRAY.LocalComplexity.UpperBound_Passed'.
  • Warning: The value is greater than the configured parameter 'MXRAY.LocalComplexity.UpperBound_Passed' and below or equal to the parameter 'MXRAY.LocalComplexity.UpperBound_Warning'.
  • Failed: The value is greater than the configured parameter 'MXRAY.LocalComplexity.UpperBound_Warning'.
Technical Notes
Solution
If the local complexity of a subsystem is high, try to simplify the subsystem by using different blocks or by subdividing the subsystem's content into multiple smaller subsystems.
Repair Action
No automatic repair action available.
Example
Prerequisites
Parameter Name
Value
Description
Comment
MXRAY.LocalComplexity.UpperBound_Passed
300
The parameter defines the upper bound for the 'Complexity (local)' metric so that the check result is 'passed'. If an artifact structure component has a higher metric value, the check result is either 'warning' or 'failed'. To deactivate the bound, set the value to 0.
Default Setting
MXRAY.LocalComplexity.UpperBound_Warning
750
The parameter defines the upper bound for the 'Complexity (local)' metric so that the check result is 'warning'. If an artifact structure component has a higher metric value, the check result is 'failed'. To deactivate the bound, set the value to 0.
Default Setting
Findings: ManageVehicleStates_demo_ec | matlab_mxray_1301 [» Contents] [» Document Structure] [» Heat Map]
Warning
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
Name:
Chart
Message:
The local complexity is 306, which is between the configured bounds of 300 and 750.
Guideline: ar_0001 - Filenames [» Contents] [» Document Structure] [» Heat Map]
Failed
Status
released
Author
Model Engineering Solutions GmbH
Version
1
Priority
mandatory
Objective
code generation, readability, workflow, simulation
Source
MAAB 2.1, MAAB 3.0
MATLAB Versions
all
TargetLink Versions
irrelevant
Embedded Coder Versions
irrelevant
Automatically Checkable
partly
Manual Review Required
yes
Description
A filename conforms to the following constraints:

  • FORM

    • filename = name.extension
    • name: no leading digits, no blanks
    • extension: no blanks
  • UNIQUENESS

    • all filenames within the parent project directory
    • cannot conflict with C/C++ or MATLAB keywords
  • ALLOWED CHARACTERS

    • name: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 _
    • extension: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9
  • UNDERSCORES

    • name:

      • can use underscores to separate parts
      • cannot have more than one consecutive underscore
      • cannot start with an underscore
      • cannot end with an underscore
    • extension:

      • should not use underscores


Rationale
Readability, Workflow, Simulation, Code Generation
Review Measures
Each file name within a given project directory does not contain a C/C++ keyword.
Related Guidelines
hisl_0031
Model Type
functional model
ISO 26262-6 Mapping
T1.1d Use of Defensive Implementation Techniques, T1.1h Use of Naming Conventions
ISO 25119-3 Mapping
T3-1.1 Suitable Programming Language, T3-2.2 Defensive Programming
Last Change
3.0
Check: mcheck_ar_0001 - Filenames [» Contents] [» Document Structure] [» Heat Map]
Failed
Compiled Model Required
no
TargetLink Required
no
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
irrelevant
Embedded Coder Versions
irrelevant
Pass-Fail Criteria
The check analyzes the name of each file found within the given root directory and its sub directories. The root directory is defined by the check parameter MAAB.ar_0001.ParentDirectory. The filenames specified in the check parameter MAAB.ar_0001.IgnoredFileNames as well as the files contained in the directories specified in MAAB.ar_0001.IgnoredDirectoryNames are not analyzed.


  • Failed 1: At least one of the following cases hold for a file name:
  • starts with a digit or an underscore
  • has more than one consecutive underscore
  • ends with an underscore
  • contains a MATLAB function name
  • Failed 2: The file name or file extension consists of at least one character that is not allowed or it contains at least one blank.
  • Failed3: The extension contains an underscore.
  • Failed4: The same file name is assigned more than once to a file within the given root directory and its sub directories.
  • Warning: The given root directory does not exist.

The check result is passed if no failed case applies.

The allowed characters are:

  • file name: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 _
  • file extension: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9
Technical Notes
The guideline ar_0001 states that file names should not contain C/C++ keywords. This is not checked automatically.

By default, the root directory is the directory path of the model (artifact).

The check might be time consuming as the analysis depends on the number of files found within the root directory and its sub directories.

Solution
Rename each reported file according to the rules set by the guideline ar_0001.
Repair Action
No automatic repair action available.
Example
Prerequisites
Parameter Name
Value
Description
Comment
MAAB.ar_0001.ParentDirectory
'modelroot'
Defines the root directory from which the check searches for files recursively. Default value 'modelroot' is the directory path of the model (artifact). If the parameter is set to 'pwd' the current directory is analyzed. The parameter must not be empty.
Syntax: '<Full path of the directory, where the files are to be checked>'.
Default Setting
MAAB.ar_0001.IgnoredFileNames
{''}
Defines the names of the files to be ignored.
Syntax: {'file name1','file name2',.....'file nameN'}
Each file name must include the respective file extension.
Default Setting
MAAB.ar_0001.IgnoredDirectoryNames
{'_sfprj','_self','_sfun'}
Defines the names of the directories to be ignored.
Syntax: {'directory name1','directory name2',.....'directory nameN'}
Default Setting
Findings: ManageVehicleStates_demo_ec | mcheck_ar_0001 [» Contents] [» Document Structure] [» Heat Map]
Failed
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
1. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject\MXAM-Report_EV3Control_V1_EV3Control_demo_ec_2019-10-12_12.59
Name:
custom5
Message:
The file name (custom5) violates the following rules:<br>- file extension is empty.
2. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject\MXAM-Report_EV3Control_V1_EV3Control_demo_ec_2019-10-12_12.59
Name:
custom6
Message:
The file name (custom6) violates the following rules:<br>- file extension is empty.
3. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject
Name:
MXAM-Report_EV3Control_V1_EV3Control_demo_ec_2019-10-12_12.59.html
Message:
The file name (MXAM-Report_EV3Control_V1_EV3Control_demo_ec_2019-10-12_12.59.html) violates the following rules:<br>- it contains prohibited characters.
4. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject
Name:
MXAM-Report_EV3Control_V1_EV3Control_demo_ec_2019-10-12_12.59.mxmr
Message:
The file name (MXAM-Report_EV3Control_V1_EV3Control_demo_ec_2019-10-12_12.59.mxmr) violates the following rules:<br>- it contains prohibited characters.
5. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject\MXAM-Report_EV3Control_V1_GlobalPosition_demo_ec_2019-10-12_13.07
Name:
custom20
Message:
The file name (custom20) violates the following rules:<br>- file extension is empty.
6. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject\MXAM-Report_EV3Control_V1_GlobalPosition_demo_ec_2019-10-12_13.07
Name:
custom21
Message:
The file name (custom21) violates the following rules:<br>- file extension is empty.
7. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject
Name:
MXAM-Report_EV3Control_V1_GlobalPosition_demo_ec_2019-10-12_13.07.html
Message:
The file name (MXAM-Report_EV3Control_V1_GlobalPosition_demo_ec_2019-10-12_13.07.html) violates the following rules:<br>- it contains prohibited characters.
8. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject
Name:
MXAM-Report_EV3Control_V1_GlobalPosition_demo_ec_2019-10-12_13.07.mxmr
Message:
The file name (MXAM-Report_EV3Control_V1_GlobalPosition_demo_ec_2019-10-12_13.07.mxmr) violates the following rules:<br>- it contains prohibited characters.
9. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject\MXAM-Report_EV3Control_V1_ManageVehicleStates_demo_ec_2019-10-12_13.10
Name:
custom30
Message:
The file name (custom30) violates the following rules:<br>- file extension is empty.
10. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject\MXAM-Report_EV3Control_V1_ManageVehicleStates_demo_ec_2019-10-12_13.10
Name:
custom31
Message:
The file name (custom31) violates the following rules:<br>- file extension is empty.
11. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject
Name:
MXAM-Report_EV3Control_V1_ManageVehicleStates_demo_ec_2019-10-12_13.10.html
Message:
The file name (MXAM-Report_EV3Control_V1_ManageVehicleStates_demo_ec_2019-10-12_13.10.html) violates the following rules:<br>- it contains prohibited characters.
12. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject
Name:
MXAM-Report_EV3Control_V1_ManageVehicleStates_demo_ec_2019-10-12_13.10.mxmr
Message:
The file name (MXAM-Report_EV3Control_V1_ManageVehicleStates_demo_ec_2019-10-12_13.10.mxmr) violates the following rules:<br>- it contains prohibited characters.
13. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna
Name:
Multiple file names
Message:
The following file names exist more than once in the given parent directory: <br>- checksumOfCache.mat<br>- simulink_cache.xml<br>- varInfo.mat
Guideline: ar_0002 - Directory Names [» Contents] [» Document Structure] [» Heat Map]
Failed
Status
released
Author
Model Engineering Solutions GmbH
Version
1
Priority
mandatory
Scope
MAAB
Objective
code generation, readability, workflow, simulation
Source
MAAB 2.1, MAAB 3.0
MATLAB Versions
all
TargetLink Versions
irrelevant
Embedded Coder Versions
irrelevant
Automatically Checkable
fully
Manual Review Required
no
Description
A directory name conforms to the following constraints:

  • FORM

    • directory name = name
    • name: no leading digits, no blanks
  • UNIQUENESS

    • all directory names within the parent project directory
  • ALLOWED CHARACTERS

    • name: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 _
  • UNDERSCORES

    • name:

      • underscores can be used to separate parts
      • can not have more than one consecutive underscore
      • can not start with an underscore
      • can not end with an underscore
Rationale
Readability, Workflow, Simulation, Code Generation
Related Guidelines
hisl_0031
Model Type
functional model
ISO 26262-6 Mapping
T1.1d Use of Defensive Implementation Techniques, T1.1h Use of Naming Conventions
ISO 25119-3 Mapping
T3-1.1 Suitable Programming Language, T3-2.2 Defensive Programming
Last Change
1.0
Check: mcheck_ar_0002 - Directory Names [» Contents] [» Document Structure] [» Heat Map]
Failed
Compiled Model Required
no
TargetLink Required
no
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
irrelevant
Embedded Coder Versions
irrelevant
Pass-Fail Criteria
The check analyzes the name of each directory found within the given root directory and its sub directories. The root directory is defined by the check parameter MAAB.ar_0002.ParentDirectory. The directory names specified in the check parameter MAAB.ar_0002.IgnoredDirectoryNames are not analyzed.

  • Failed 1: At least one of the following cases hold for a directory name:
  • starts with a digit or an underscore
  • has more than one consecutive underscore
  • ends with an underscore
  • Failed 2: The directory name consists of at least one character that is not allowed or it contains at least one blank.
  • Failed 3: The same directory name is assigned more than once to a directory within the given root directory and its sub directories.
  • Warning: The given root directory does not exist.

The check result is passed if no failed case applies.

The allowed characters are:

  • a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 _
Technical Notes
By default, the parameter is set to 'modelroot'.


The check might be time consuming as the analysis depends on the number of directories found within the root directory and its sub directories.

Solution
Rename each reported directory according to the rules set by the guideline ar_0002.
Repair Action
No automatic repair action available.
Example
Prerequisites
Parameter Name
Value
Description
Comment
MAAB.ar_0002.ParentDirectory
'modelroot'
Defines the root directory from which the check searches recursively. Default value 'modelroot' is the directory path of the model (artifact). If the parameter is set to 'pwd' the current directory is analyzed. The parameter must not be empty.
Syntax:
 '<Full path of the directory to be checked>'
Default Setting
MAAB.ar_0002.IgnoredDirectoryNames
{'_sfprj','_self','_sfun'}
Defines the names of the directories to be ignored.
Syntax: {'directory name1','directory name2',.....'directory nameN'}
Default Setting
Findings: ManageVehicleStates_demo_ec | mcheck_ar_0002 [» Contents] [» Document Structure] [» Heat Map]
Failed
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
1. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject
Name:
MXAM-Report_EV3Control_V1_EV3Control_demo_ec_2019-10-12_12.59
Message:
The directory name (MXAM-Report_EV3Control_V1_EV3Control_demo_ec_2019-10-12_12.59) violates the following rules:<br>- it contains prohibited characters.
2. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject
Name:
MXAM-Report_EV3Control_V1_GlobalPosition_demo_ec_2019-10-12_13.07
Message:
The directory name (MXAM-Report_EV3Control_V1_GlobalPosition_demo_ec_2019-10-12_13.07) violates the following rules:<br>- it contains prohibited characters.
3. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\MXAMProject
Name:
MXAM-Report_EV3Control_V1_ManageVehicleStates_demo_ec_2019-10-12_13.10
Message:
The directory name (MXAM-Report_EV3Control_V1_ManageVehicleStates_demo_ec_2019-10-12_13.10) violates the following rules:<br>- it contains prohibited characters.
4. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna\slprj
Name:
_jitprj
Message:
The directory name (_jitprj) violates the following rules:<br>- its first character is prohibited.
5. D:\Programme\MTestDev\MTest_Autobuilds\EV3Build_Update2020\EV3Control_ec\ModelsAllVersions\V02_statAna
Name:
Multiple directory names
Message:
The following directory names exist more than once in the given parent directory: <br>- tmwinternal
Guideline: sdt_sc005 - Propagation of Signal Names [» Contents] [» Document Structure] [» Heat Map]
Failed
Status
released
Author
Model Engineering Solutions GmbH
Version
1
Priority
recommended
Objective
readability, maintainability
Source
MES_FS_1_3
MATLAB Versions
all
TargetLink Versions
all
Embedded Coder Versions
all
Automatically Checkable
fully
Manual Review Required
no
Description
Signal names should be propagated as far as possible. To this end, the signal propagation mechanism of Simulink should be used to automatically name signals along a sequence of signal lines.

  • If a signal name is used along a sequence of signals, it should be named at the signal directly connected to the signal source, and
  • this name should be propagated to all subsequently connected signal lines by setting the signal property "Show propagated signals" to "on".
Rationale
Signal propagation ensures the consistency of signal naming, shows the data flow clearly, and reduces the effort to rename any signals.
Example


Figure sdt_sc005-1: The signal is explicitly named at its source. That signal name is then propagated to any subsequently connected signal lines.

Figure sdt_sc005-2:The option "Show propagated signals" is set to "on" to show the propagated signal name.

Model Type
functional model
ISO 26262-6 Mapping
T1.1e Use of Established Design Principles
ISO 25119-3 Mapping
T3-3.1 Use of Coding Standard
Check: mcheck_sdt_sc005 - Propagation of Signal Names [» Contents] [» Document Structure] [» Heat Map]
Failed
Compiled Model Required
no
TargetLink Required
no
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
all
Embedded Coder Versions
all
Pass-Fail Criteria
The check inspects every signal line of the model.
Failed: If the signal line of its source block is named, but each subsequent signal in this signal chain that supports signal name and signal name propagation but whose property "Show propagated signals" is set to "off".
The check issues a pass if the failed case does not apply.
Technical Notes
As of Matlab 2018b the model option "Display -> Signals & Ports -> Propagated Signal Labels" is not recommended for use because it is not consistent with the individual signal property "Show Propagated Signals". In addition, it is not updated when single changes in the individual property take place. Therefore, the check analyzes only the individual property and it could return failed findings if only the model option is set to "on".
Solution
Locate the following source blocks in the model.


  • Inport blocks at the top level of the model.
  • Inport blocks at the top level of all non-virtual blocks that directly or indirectly feed into a top-level Outport.
  • Other Simulink source blocks (see Library section "Simulink Library Browser/ Sources") and Data Store Read block.
  • Bus creator blocks.

For each source block, name the signal that is directly connected with its output. Further, set the signal property "Show propagated signals" of all subsequent signals in this signal chain to "on".

Repair Action
If the signal of a source block has a name and subsequent signals are not named, the check sets the signal property "Show propagated signals" of these nameless signals to "on".

Follow these steps to auto-repair:

  1. Name the signal output from its source block.
  2. Delete any other signal names in the subsequent signal lines after the named signal from the source block.
  3. Apply autofix, which sets the signal property "Show propagated signals" of the subsequent signals to 'on'.

Note: In some cases, the number of failed messages may differ from the number of repaired messages. This is because the repair action of setting the property 'Show propagated signals' to 'on' in the complete signal chain from source to destination would have fixed other failed cases.

Example
Prerequisites
Parameter Name
Value
Description
Comment
SDT.sc005.UserSourceBlocks
{'SubSystem','CONSTREAL';...
     'SubSystem','CONSTLOGIC';...
     'Constant','TL_Constant';...
     'Inport','TL_Inport';...
'BusSelector',''}
A list (cell array) of pairs that specifies additional types of sources. Each pair defines a block type and a mask type string. The check additionally checks all those signal lines that originate from these user-defined sources.

Note: If the block has no mask type, leave the second entry of the pair empty, e.g. SDT.sc005.UserSourceBlocks = {{'blocktype',''};{'blocktype2'‚''}}.
Guideline Setting
Findings: ManageVehicleStates_demo_ec | mcheck_sdt_sc005 [» Contents] [» Document Structure] [» Heat Map]
Failed
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
Name:
Message:
Signal name from outport(1) of the source block- 'holdSwitch' does not propagate through signal/s to its destination block -'ManageVehicleStates_demo_ec/ManageVehicleStates/HoldAfterTouch/holdSwitch(inport 3)'. Property 'Show propagated signals' of output signal of the successive block(s) in the signal chain is not 'on'.<br>Source block path: 'ManageVehicleStates_demo_ec/ManageVehicleStates/HoldAfterTouch/holdSwitch'.<br>Destination block path: 'ManageVehicleStates_demo_ec/ManageVehicleStates/HoldAfterTouch/holdSwitch(inport 3)'.<br>Note: Refer the below section 'mBlockPath' for the paths of signal lines of above signal chain, which should be repaired.
Guideline: misra_slsf_006_b - Block Parameters - Calibration Parameters [» Contents] [» Document Structure] [» Heat Map]
Failed
Status
released
Author
Model Engineering Solutions GmbH
Version
1
Priority
required
Objective
maintainability, portability
Source
MISRA AC SLSF 1.0
MATLAB Versions
all
TargetLink Versions
irrelevant
Embedded Coder Versions
irrelevant
Automatically Checkable
fully
Manual Review Required
no
Description
Block parameters intended to be configured or calibrated must be entered as a named constant.
Rationale
Allows configuration of validated subsystems without modifying the underlying model itself.
Related Guidelines
misra_tl_3_2
Model Type
functional model
ISO 26262-6 Mapping
T1.1e Use of Established Design Principles
ISO 25119-3 Mapping
T3-3.1 Use of Coding Standard
Last Change
1.00
Check: mcheck_misra_slsf_006_b - Block Parameters - Calibration Parameters [» Contents] [» Document Structure] [» Heat Map]
Failed
Compiled Model Required
no
TargetLink Required
no
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
irrelevant
Embedded Coder Versions
irrelevant
Pass-Fail Criteria
The check analyzes each calibration parameter of each block in the model.

  • Failed 1: The parameter is entered as numerical value, expression or function call.
The check result is passed if all failed cases do not apply.
Technical Notes
The check considers as calibration parameter every Simulink parameter that can be changed during simulation. For TargetLink models, the check analyzes the Simulink parameters of each block.

The following conventions for the check routine have been made in order to ensure practicability:

  • For TargetLink blocks, the generic mask parameter "data" is ignored.
  • Blocks from the Lookup Tables Library including 1-D, 2-D, n-D and Direct Look-Up Tables as well as Prelookup and Interpolation Using Prelookup blocks are not analyzed.
  • Signed named constants, e.g. '-x', are not reported as failed.
Solution
  • Solution 1: Enter the calibration parameter as named constant.
Repair Action
No automatic repair action available.
Example
Prerequisites
Parameter Name
Value
Description
Comment
MISRA_SLSF.mes_misra_slsf_006_b.AllowZeroOne
false
If the check parameter is set to true, the values 0 and 1 are allowed to be entered as calibration parameters.
If the check parameter is set to false, the values 0 and 1 are not allowed to be entered as calibration parameters.
Default Setting
Findings: ManageVehicleStates_demo_ec | mcheck_misra_slsf_006_b [» Contents] [» Document Structure] [» Heat Map]
Failed
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
Name:
Unit Delay
Message:
The block "Unit Delay" has the parameter "InitialCondition" = "0", which is not a named constant.
Guideline: mes_slsf_9001 - Configuration Parameters for Simulink [» Contents] [» Document Structure] [» Heat Map]
Failed
Status
released
Author
Model Engineering Solutions GmbH
Version
1
Priority
recommended
Scope
MES
Objective
verification/validation, maintainability, simulation
MATLAB Versions
all
TargetLink Versions
all
Embedded Coder Versions
irrelevant
Automatically Checkable
fully
Manual Review Required
no
Description
Each project must define an appropriate setting for each Simulink Configuration parameter. These settings must be used for each model within that project.
Rationale
Conformance to the guideline supports reproducible simulation results and eases the comparison of simulations and tests.
Model Type
functional model
ISO 26262-6 Mapping
T1.1e Use of Established Design Principles
ISO 25119-3 Mapping
T3-3.1 Use of Coding Standard
Check: mcheck_mes_slsf_9001 - Configuration Parameters for Simulink [» Contents] [» Document Structure] [» Heat Map]
Failed
Compiled Model Required
no
TargetLink Required
no
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
all
Embedded Coder Versions
irrelevant
Pass-Fail Criteria
The check analyzes each configuration parameter of the model, which is defined in an Excel file given by MES.mes_slsf_9001.ParameterExcelFile.
  • Failed 1: The configuration parameter is not set to the desired value.
  • Failed 2: The check parameter MES.mes_slsf_9001.minDiagnosticsError is set to true and the configuration parameter from the diagnostics category has a warning/error level less strict than the expected value.
The check result is passed if all failed cases do not apply.
Technical Notes
The configuration parameters and the expected values are defined in an Excel file. The location of the excel file can be configured by the parameter MES.mes_slsf_9001.ParameterExcelFile.

The check parameter MES.mes_slsf_9001.minDiagnosticsError defines if the values of the configuration parameters from the diagnostics category are to be understood as the minimum warning/error level. If the parameter is set to true, the check does not deliver a failed finding for parameters with a more strict warning/error level than the desired value.

This parameter only applies to the diagnostics category in the Simulink model configuration parameters and only to the options none/warning/error, DisableAll/EnableAllAsWarning/EnableAllAsError. If the desired value is 'UseLocalSettings' the parameter does not affect the check.

In the case that there exists a Configuration Reference for the model, neither the Repair Action nor the use of the check parameter MES.mes_slsf_9001.minDiagnosticsError is possible.

Solution
Review the configuration parameters according to guideline.


  • Solution 1: Set the configuration parameter to the desired value given in the Excel file.
  • Solution 2: If the check parameter MES.mes_slsf_9001.minDiagnosticsError is true, make sure the configuration parameters from the diagnostics category have equal or more strict warning/error level than the desired value.
Repair Action
The configuration parameters which received a 'failed' will be set to the value defined in the Excel file.

Since some configuration parameters have dependencies, it might be necessary to rerun the check and repair again.

In the case that there exists a Configuration Reference for the model, the Repair Action is not available.

Example
Prerequisites
Parameter Name
Value
Description
Comment
MES.mes_slsf_9001.ParameterExcelFile
'SL_ParameterList.xlsx'
Either absolute path of the Excel file or name of the Excel file, which must be in the MATLAB path.
Syntax: 'AbsolutePathExcelFile.xls' or 'NameExcelFile.xls'
Default Setting
MES.mes_slsf_9001.minDiagnosticsError
false
Boolean parameter that treats the expected values for diagnostics parameters as the minimum level.
If the parameter is set to true, the check does not deliver a fail finding for parameters with a more strict warning/error level than the desired value.
In the case that there exists a Configuration Reference for the model, the parameter is not available.
Default Setting
Findings: ManageVehicleStates_demo_ec | mcheck_mes_slsf_9001 [» Contents] [» Document Structure] [» Heat Map]
Failed
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
1. ManageVehicleStates_demo_ec
Name:
ModelReferenceVersionMismatchMessage
Message:
The parameter 'Diagnostics:Model Referencing->Model Referencing->Model block version mismatch' (ModelReferenceVersionMismatchMessage)  is set to 'none' but must be set to 'error'.
2. ManageVehicleStates_demo_ec
Name:
ModelReferenceIOMismatchMessage
Message:
The parameter 'Diagnostics:Model Referencing->Model Referencing->Port and parameter mismatch' (ModelReferenceIOMismatchMessage)  is set to 'none' but must be set to 'error'.
3. ManageVehicleStates_demo_ec
Name:
ModelReferenceIOMsg
Message:
The parameter 'Diagnostics:Model Referencing->Model Referencing->Invalid root Inport / Outport block connection' (ModelReferenceIOMsg)  is set to 'none' but must be set to 'error'.
4. ManageVehicleStates_demo_ec
Name:
ModelReferenceDataLoggingMessage
Message:
The parameter 'Diagnostics:Model Referencing->Model Referencing->Unsupported data logging' (ModelReferenceDataLoggingMessage)  is set to 'none' but must be set to 'error'.
Warning
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
5. ManageVehicleStates_demo_ec
Name:
Unknown Parameters
Message:
Several parameters do not exist in used Matlab Version:<br><br>- 'UseIntDivNetSlope' (in Optimization:General->Simulation and code generation->Use integer division to handle net slopes that are reciprocals of integers).
Guideline: misra_slsf_052_b - State Labelling - State Name and Data Items [» Contents] [» Document Structure] [» Heat Map]
Failed
Status
released
Author
Model Engineering Solutions GmbH
Version
1
Priority
required
Objective
usability, maintainability
Source
MISRA AC SLSF 1.0
MATLAB Versions
all
TargetLink Versions
irrelevant
Embedded Coder Versions
irrelevant
Automatically Checkable
fully
Manual Review Required
no
Description
Within a chart, a state must not be given the same name as a data item.
Rationale
All objects should be uniquely named to avoid misinterpretation.
Model Type
functional model
ISO 26262-6 Mapping
T1.1h Use of Naming Conventions, T8.1d No Multiple Use of Variable Names
ISO 25119-3 Mapping
T3-1.1 Suitable Programming Language, T3-3.1 Use of Coding Standard
Last Change
1.00
Check: mcheck_misra_slsf_052_b - State Labelling - State Name and Data Items [» Contents] [» Document Structure] [» Heat Map]
Failed
Compiled Model Required
no
TargetLink Required
no
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
irrelevant
Embedded Coder Versions
irrelevant
Pass-Fail Criteria
The chart analyzes each Stateflow Chart.
Failed: If a state name is the same as the name of a Stateflow data item (including events).
The check result is passed if the failed case does not apply.
Technical Notes
Solution
Rename either the state or the data item to ensure unique naming of Stateflow items.
Repair Action
No automatic repair action available.
Example
Prerequisites
Parameter Name
Value
Description
Comment
MISRA_SL_SF.misra_slsf_052_b.CaseSensitiveAnalysis
true
Defines if the analysis of the state names and item names is case sensitive (true = default) or not (false).
Default Setting
Findings: ManageVehicleStates_demo_ec | mcheck_misra_slsf_052_b [» Contents] [» Document Structure] [» Heat Map]
Failed
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
Name:
VehicleControlOff
Message:
State 'VehicleControlOff' has the same name as a data item in this chart.
Name:
VehicleIdle
Message:
State 'VehicleIdle' has the same name as a data item in this chart.
Name:
VehicleControlOn
Message:
State 'VehicleControlOn' has the same name as a data item in this chart.
Name:
EmergencyStop
Message:
State 'EmergencyStop' has the same name as a data item in this chart.
Guideline: mes_cgtl_4101 - Tolerance Value of TargetLink Constant and Gain Block [» Contents] [» Document Structure] [» Heat Map]
Warnings
Status
accepted
Author
Model Engineering Solutions GmbH
Version
1
Priority
strongly recommended
Objective
code generation, functionality, efficiency
Reference
TargetLink Block and Object Reference > TargetLink Simulation Blocks > Constant/Gain Block > Output Page (Constant/Gain Block)
MATLAB Versions
all
TargetLink Versions
all
Embedded Coder Versions
irrelevant
Automatically Checkable
fully
Manual Review Required
no
Description
If the class defined for the output value of a TargetLink Constant block or a TargetLink Gain block is set to default, a tolerance value can be specified. The default configuration sets this option to 1%. This value defines the maximum deviation (in percent) with which the variable is to be implemented.

To ensure that the code generator does not optimize the output of a TargetLink Constant block or a TargetLink Gain block, the value of the Tolerance option should be set to 0%.

Rationale
Setting the Tolerance value of each TargetLink Constant block and TargetLink Gain block to 0% ensures that the code generator does not optimize the respective output value. An optimization of an output value due to setting the Tolerance value to a value greater than 0% may lead to unwanted functional changes of the code.
Example



Figure mes_cgtl_4101-1: The Tolerance value of the output of the TargetLink Constant block is set to 0%

Counter Example



Figure mes_cgtl_4101-2: The Tolerance value of the output of the TargetLink Constant block is set to 1%.

Model Type
implementation model
ISO 26262-6 Mapping
T1.1d Use of Defensive Implementation Techniques
ISO 25119-3 Mapping
T3-2.2 Defensive Programming
Check: mcheck_mes_cgtl_4101 - Tolerance Value of TargetLink Constant and Gain Block [» Contents] [» Document Structure] [» Heat Map]
Warnings
Compiled Model Required
no
TargetLink Required
yes
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
all
Embedded Coder Versions
irrelevant
Pass-Fail Criteria
The check analyzes each TargetLink Constant and Gain block.
Failed: if the tolerance value is not set to 0.
The check result is passed if the failed case does not apply.
Technical Notes
Solution
Set the tolerance value of each TargetLink block of type 'Constant' and 'Gain' to 0.
Repair Action
The repair action sets the tolerance value of each TargetLink Constant and Gain block to 0.
Example
Prerequisites
Findings: ManageVehicleStates_demo_ec | mcheck_mes_cgtl_4101 [» Contents] [» Document Structure] [» Heat Map]
Warning
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
1.
Name:
Message:
MXAM Warning 007: Not a TargetLink model. This check only applies to TargetLink models or elements thereof.
Guideline: sdt_sc007 - Definition TargetLink Function Interface [» Contents] [» Document Structure] [» Heat Map]
Warnings
Status
proposed
Author
Model Engineering Solutions GmbH
Version
1
Priority
strongly recommended
Objective
verification/validation, workflow, simulation
Source
MES FS_1_3
MATLAB Versions
all
TargetLink Versions
>=2.0
Embedded Coder Versions
irrelevant
Automatically Checkable
partly
Manual Review Required
yes
Description
A proper definition of a TargetLink Function Interface requires the following properties.


The Inports and Outports on the top level of a TargetLink Function Subsystem must be TargetLink ports.

A TargetLink port is considered to be an argument or a return value of a function if its "Class" is set to "FCN_ARG", "FCN_REF_ARG" or "FCN_RETURN".

If one of these classes is set the data type, scaling and value range of the following blocks must be consistent:

  • All TargetLink Inports that provide arguments of a TargetLink function with their respective source.
  • All TargetLink Outports that define a return value of a TargetLink function with their respective destination.

Note that in the case of TargetLink Function Outports it is not always desirable that the destination block has the same data type, scaling or value range. Nevertheless, implicit data type conversion should be avoided whenever possible.

If a TargetLink function is configured as scaling invariant, only the data type of the ports need to be consistent with their respective source, but not the scaling information. 

If a TargetLink port is NOT to be considered as an argument or return value of a function, the class should still be selected explicitly, i.e., the class 'default' should not be used.

Rationale
Inconsistent data types may lead to inefficient code, reduced accuracy or range violations. For function interfaces, strong type consistency of the passed parameters and returned values ensures signal integrity and efficient production code by minimizing the need for type casts and rounding operations. Missing range definitions hinder the detection and control of overflows.
Example


Figure sdt_sc007-1: Equal scaling information, data type and LSB of the TargetLink function Inport and its source

Figure sdt_sc001-2: Equal scaling information, data type and LSB of the TargetLink function Outport and its destination

Review Measures
Some TargetLink blocks such as Saturate, Gain, Fcn, Trigonometry, Math, Sqrt get a review finding, since it might not be reasonable to have the same settings as the TargetLink Function Outport. Consider using a Rescaler block to avoid implicit data type conversion whenever possible.
Model Type
implementation model
ISO 26262-6 Mapping
T1.1c Enforcement of Strong Typing, T8.1g No Implicit Type Conversion
ISO 25119-3 Mapping
T3-1.2 Strongly Typed Programming Language, T3-2.2 Defensive Programming
Check: mcheck_mes_sk_006 - In- and Outports in TargetLink subsystems [» Contents] [» Document Structure] [» Heat Map]
Warnings
Compiled Model Required
no
TargetLink Required
yes
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
all
Embedded Coder Versions
irrelevant
Pass-Fail Criteria
The check returns a fail, if there are Simulink In-/Outports on the top level of TargetLink subsystems or TargetLink functions.
Technical Notes
Solution
Replace all Simulink In-/Outports with TargetLink In-/Outports on the top level of TargetLink subsystems and TargetLink functions.
Repair Action
No automatic repair action available.
Example
Prerequisites
Findings: ManageVehicleStates_demo_ec | mcheck_mes_sk_006 [» Contents] [» Document Structure] [» Heat Map]
Warning
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
1.
Name:
Message:
MXAM Warning 007: Not a TargetLink model. This check only applies to TargetLink models or elements thereof.
Check: mcheck_sdt_sc007_a - Definition TargetLink Function Interface - Inports [» Contents] [» Document Structure] [» Heat Map]
Warnings
Compiled Model Required
no
TargetLink Required
yes
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
>=2.0
Embedded Coder Versions
irrelevant
Pass-Fail Criteria
The check inspects TargetLink inports and bus inports of each TargetLink function whose class is set to "FCN_ARG", "FCN_REF_ARG" or "FCN_RETURN". The data type, scaling (LSB and Offset) and value range of each TargetLink inport is compared with its source block.

While determining the data type of the destination block type inheritance is considered as well.

The following criteria are sequentially checked for each TargetLink inport. If any one criterion does not hold, that inport and its source block are declared as failed or a warning is issued. After an erroneous criterion is detected, the remaining criteria are not further analyzed on that port and its source block.

  • Failed 1: The Inport is not connected to a source block.
  • Failed 2: Matching Output port of Stateflow chart (source block) not found.
  • Failed 3: TargetLink data type is not set for the Inport or its source.
  • Failed 4: The base type of the TargetLink data type of the Inport or its source is not defined.
  • Failed 5: The base type of the Inport and its source are different.
  • Failed 6: The LSB value of the Inport and its source are different.
  • Failed 7: The offsets (biases) of the Inport and its source differ.
  • Failed 8: The LSB types (power of two vs. arbitrary) of the Inport and its source are different.
  • Failed 9: The user-defined value range constraints ("minimum" and/or "maximum") of the Inport and its source are different. Set the check parameter SDT.sc007_a.IgnoreUndefinedRanges to "true" to ignore this criterion.
  • Failed 10: The TargetLink function is configured as scaling invariant but the scaling propagation function is not defined in the scaling propagation edit field.
  • Warning: The source block does not support TargetLink data types. Use the check parameter SDT.sc007_a.IgnoreNonTLSources to deactivate this finding.

Note: TargetLink functions are subsystems which contain a TargetLink Function block.

Technical Notes
  1. For each block, only the first deviation which has been found is reported. Re-run the check after having repaired the deviation to make sure that no further deviations are present.
  2. If the TargetLink function is declared to be scaling invariant, the check evaluates the given scaling propagation function. However, it does not assess its functionality.
  3. The check needs to set the model into compiled mode to access the data type of the TargetLink port and its source block(Simulink / TargetLink), if the data type is not available in the block property dialog. Therefore, the check only compiles the model on demand.
Solution
Adjust the diverging signal properties accordingly. Please note that adjusting the data type of a source block may require further, secondary adjustments involving other blocks. In this case, re-run the check.
  • Solution 1: Connect the Inport to a suitable source block. 
  • Solution 2: Adjust the properties of the Stateflow chart.
  • Solution 3: Specify a suitable TargetLink data type for the Inport or its source.
  • Solution 4: Specify a suitable base type for the Inport or its source.
  • Solution 5: Match the base types of the Inport and its source.
  • Solution 6: Match the LSB values of the Inport and its source.
  • Solution 7: Match the offsets of the Inport and its source.
  • Solution 8: Match the LSB types of the Inport and its source.
  • Solution 9: Match the range constraints of the Inport and its source.
  • Solution 10: Review the implementational specifications of the source block.
Add known range limits to the "min" and "max" values of the TargetLink and Stateflow output variables, whenever possible. Do not use the inheritance mechanism for the size and type of Stateflow data if you are working with TargetLink versions < 2.2.



Repair Action
No automatic repair action available.
Example
Prerequisites
TargetLink 2.0 or higher must be installed. A TargetLink license is not needed for running the check, but hyperlinks to open a faulty TargetLink block require a valid TargetLink license.
Parameter Name
Value
Description
Comment
SDT.sc007_a.IgnoreNonTLSources
false
If set to true, Simulink source blocks that are allowed to be used with TargetLink are not listed in the report. If set to false, the use of these Simulink source blocks raises a note (see point no. 10 in the check description).
Default Setting
SDT.sc007_a.IgnoreTLDefaultDataTypes
false
This parameter determines whether a TargetLink source block with a default class and/or unspecified data type/base type is ignored (parameter is set to true) or not ignored (parameter is set to false).
This applies to TargetLink Constants and Merge blocks whose output class is set to "default". Here, the datatype is specified by TargetLink at run-time/build-time. 
In MIL mode, the output data type of these blocks is set to int16. In SIL mode, the data type is adjusted to match the succeeding block.
Default Setting
SDT.sc007_a.IgnoreUndefinedRanges
false
If set to true, only those ranges are checked for consistency that are defined. 
If set to false, the check considers a pair of ranges to be inconsistent, if at least one range is not defined.
Default Setting
SDT.sc007_a.ValidBaseTypeCombinations
{'Int16','UInt8';...
'Int32','UInt16'}
Use the following format to specify each allowed pair of base types.
{<source base type 1>, <inport base type 1>;<source base type 2>, <inport base type 2>; ... }

The specification of  {'Int16','UInt8'}  states that if the data type of an Inport is defined with base type UInt8, the data type of its source block should be defined with base type Int16 or UInt8.
Default Setting
Findings: ManageVehicleStates_demo_ec | mcheck_sdt_sc007_a [» Contents] [» Document Structure] [» Heat Map]
Warning
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
1.
Name:
Message:
MXAM Warning 007: Not a TargetLink model. This check only applies to TargetLink models or elements thereof.
Check: mcheck_sdt_sc007_b - Definition TargetLink Function Interface - Outports [» Contents] [» Document Structure] [» Heat Map]
Warnings
Compiled Model Required
no
TargetLink Required
yes
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
>=2.0
Embedded Coder Versions
irrelevant
Pass-Fail Criteria
The check inspects TargetLink Outports of each TargetLink function whose class is set to "FCN_ARG", "FCN_REF_ARG" or "FCN_RETURN". The output data type, scaling (LSB and Offset) and value range of each TargetLink Outport is compared with its destination block. TargetLink functions are subsystems which contain a TargetLink Function block.

While determining the data type of the destination block, inheritance is considered as well.

  • Failed 1: The Outport is not connected to a destination block.
  • Failed 2: Matching Input port of Stateflow chart (destination block) not found.
  • Failed 3: There is no TargetLink data type set for the Outport or its destination block.
  • Failed 4: The base type of the TargetLink data type of the Outport or its destination block is not defined.
  • Failed 5: The base types of the Outport and its destination block are different.
  • Failed 6: The LSB values of the Outport and its destination block are different.
  • Failed 7: The offsets of the Outport and its destination block are different.
  • Failed 8: The LSB types (power of two vs. arbitrary) of the Outport and its destination block are different.
  • Failed 9: The user-defined value range constraints ("minimum" and/or "maximum") of the Outport and its destination blocks are different. Set the check parameter SDT.sc007_b.IgnoreUndefinedRanges to true to ignore this criterion.
  • Failed 10: The TargetLink function is configured as scaling invariant, but the scaling propagation function is not defined in the scaling propagation field.
  • Review: The data type, scaling or range of the TargetLink Function Outport is different from its destination block, but this deviation may be justified. See Note 3.
  • Warning: The destination block does not support TargetLink data types. Use the check parameter SDT.sc007_b.IgnoreNonTLSources to deactivate this finding.

Note 1: It is recommended to use the Rescaler block whenever data type conversion is necessary. Therefore, the Rescaler block is not considered a failed case.

Note 2: TargetLink blocks whose output data type or scaling is expected to be different from its input are ignored in the analysis. This concerns the following blocks:
Abs, Sum, Product, Logical and Relational Operator, Look-Up Table (and related ones), Sign, Relay, Discrete Filter, Discrete Transfer Fcn, FIR Filter, Discrete-Time Integrator, Discrete State-Space, Extract Bits, and Preprocessor IF. Additionally, the case when the function Outport is connected to the control port of a Switch or Multiport Switch block is ignored.

Note 3: Some TargetLink blocks such as Saturate, Gain, Fcn, Trigonometry, Math, Sqrt get a review finding, since it might not be reasonable to have the same settings as the TargetLink Function Outport.

Technical Notes
  1. For each block, only the first deviation which has been found is reported. Re-run the check after having repaired the deviation to make sure that no further deviations are present.
  2. If the TargetLink function is declared to be scaling invariant, the check evaluates the given scaling propagation function. However, it does not assess its functionality.
  3. The check needs to set the model into compiled mode to access the data type of the TargetLink port and its source block(Simulink / TargetLink), if the data type is not available in the block property dialog. Therefore, the check only compiles the model on demand.
Solution
Adjust the diverging signal properties accordingly. Consider using a Rescaler block to make the casting explicitly. Please note that adjusting the data type of a destination block may require further, secondary adjustments involving other blocks. In this case, re-run the check.
  • Solution 1: Connect the Outport to a suitable destination block. 
  • Solution 2: Adjust the properties of the Stateflow chart.
  • Solution 3: Specify a suitable TargetLink data type for the Outport or its destination.
  • Solution 4: Specify a suitable base type for the Outport or its destination.
  • Solution 5: Match the base types of the Outport and its destination.
  • Solution 6: Match the LSB values of the Outport and its destination.
  • Solution 7: Match the offsets of the Outport and its destination.
  • Solution 8: Match the LSB types of the Outport and its destination.
  • Solution 9: Match the range constraints of the Outport and its destination.
  • Solution 10: Review the implementational specifications of the destination block.
  • Solution (Review): If possible use a Rescaler block to avoid implicit data type conversion.
Add known range limits to the "min" and "max" values of the TargetLink and Stateflow output variables, whenever possible. Do not use the inheritance mechanism for the size and type of Stateflow data if you are working with TargetLink versions < 2.2.
Repair Action
No automatic repair action available.
Example
Prerequisites
TargetLink 2.0 or higher must be installed. A TargetLink license is not needed for running the check, but hyperlinks to open a faulty TargetLink block require a valid TargetLink license.
Parameter Name
Value
Description
Comment
SDT.sc007_b.IgnoreNonTLSources
false
If set to true, Simulink destination blocks that are allowed to be used with TargetLink are not listed in the report. If set to false, the use of these Simulink destination blocks raises a note (see point no. 10 in the check description).
Default Setting
SDT.sc007_b.IgnoreUndefinedRanges
false
If set to true, only those ranges are checked for consistency that are defined. 
If set to false, the check considers a pair of ranges to be inconsistent, if at least one range is not defined.
Default Setting
SDT.sc007_b.ValidBaseTypeCombinations
{'Int16','UInt8';...
'Int32','UInt16'}
Use the following format to specify each allowed pair of base types.
{<destination base type 1>, <outport base type 1>;<destination base type 2>, <inport base type 2>; ... }

The specification of  {'Int16','UInt8'}  states that if the data type of an Inport is defined with base type UInt8, the data type of its source block should be defined with base type Int16 or UInt8.
Default Setting
Findings: ManageVehicleStates_demo_ec | mcheck_sdt_sc007_b [» Contents] [» Document Structure] [» Heat Map]
Warning
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
1.
Name:
Message:
MXAM Warning 007: Not a TargetLink model. This check only applies to TargetLink models or elements thereof.
Guideline: sdt_sc002 - Strong Data Typing at the Stateflow Interface [» Contents] [» Document Structure] [» Heat Map]
Failed
Status
released
Author
Model Engineering Solutions GmbH
Version
1
Priority
strongly recommended
Scope
SDT
Objective
code generation, functionality
Source
MES_FS_1_3
MATLAB Versions
all
TargetLink Versions
all
Embedded Coder Versions
irrelevant
Automatically Checkable
fully
Manual Review Required
no
Description
The data type, scaling and value range of each signal of the Stateflow interface must be well defined and consistent with its source or destination block. To this end, the following criteria must be met.

  • The Stateflow chart option "Use Strong Data Typing with Simulink I/O" (Chart -> Properties) must be selected.
  • The range of each Stateflow variable must be explicitly defined in the Model Explorer (General -> Limit range). The debug option "Data Range" (Simulation -> Debug -> Debug Chart) assists during a simulation to detect whether the minimum and maximum values you specified for a data item are exceeded. In addition, it is checked whether fixed-point data overflows its base word size.
Note: In Matlab 2015, the Stateflow property setting " Simulation range checking: error" (Simulation-> Configuration Parameters -> Diagnostics -> Data Validity) checks the insufficient data range of a Stateflow data item. The debug option "Data Range" is not valid in Matlab 2015.

If a Stateflow chart resides in a TargetLink system, the data type, scaling, and range

  • of each input signal must be consistent with its source block.
  • of each output signal must be consistent with its destination block.

In a TargetLink model of TargetLink version less than 2.2, the inheritance mechanism for the size and data type properties at the Simulink/Stateflow interface must not be used.

Rationale
If the Stateflow chart option "Use Strong Data Typing with Simulink I/O" is not selected, Stateflow performs implicit data type conversions at the Simulink/Stateflow interface. This may lead to data loss for any variable with scope "Input from Simulink" or "Output to Simulink".

If the range of a Stateflow variable is set as tight as possible, the internal TargetLink Stateflow scaling algorithm can choose an appropriate data type for any intermediate result variable. This leads to operations with small bit sizes. TargetLink uses user defined ranges to optimize the generated code. Missing range definitions hinder the detection and control of overflows.

Inconsistent data types may lead to inefficient code, reduced accuracy or range violations. For function interfaces, strong data type consistency of each passed parameter and each return value ensures signal integrity and efficient production code minimizing the need for type casts and rounding operations.

Between MATLAB versions R2010b and R2012b, the option "Use Strong Data Typing with Simulink I/O" has not been selectable in the GUI. It is set to "true" by default. It is, however, possible to change its value through the API.

Type/size inheritance was introduced with MATLAB Release R14 and is not supported by TargetLink versions prior to 2.2.

Example


Figure sdt_sc002-1: Selection of the chart option "Use Strong Data Typing with Simulink I/O"

Figure sdt_sc002-2: The minimum and maximum values of the Stateflow variable data_local are set

Figure sdt_sc002-3: The Stateflow chart debug option "Data Range" is set

If working with TargetLink versions prior to 2.2.1, the inheritance mechanism for the size and type of Stateflow data needs to be deactivated.

To deactivate this option, open the TargetLink Property Manager (see Figure sdt_sc002-4) and follow the steps below

  1. Select the respective chart input data item
  2. Set the view option "Inherit signal properties" in section "TargetLink properties of Stateflow objects"
  3. Set the property sf.inheritscaling to "off"

Figure sdt_sc002-4: Deactivation of the inheritance of signal properties in the TargetLink Property Manager

Related Guidelines
misra_tl_4_2, dSPACE ds_0058 (2.16.5: Permitted Data Types at the Stateflow Chart Interface), dSPACE ds_0056 (2.16.2: permitted Dimensionality at the Stateflow Chart Interface), dSPACE ds_0072 (2.16.19: Simulink Stateflow Inheritance), dSPACE ds_0112 (12.2: Specification of Range Information for Variables)
Model Type
implementation model
ISO 26262-6 Mapping
T1.1c Enforcement of Strong Typing, T8.1g No Implicit Type Conversion
ISO 25119-3 Mapping
T3-1.2 Strongly Typed Programming Language, T3-2.2 Defensive Programming
Check: mcheck_sdt_sc002_d - Strong Data Typing at the Stateflow Interface - Data Range [» Contents] [» Document Structure] [» Heat Map]
Failed
Compiled Model Required
no
TargetLink Required
no
Model Root Required
no
MATLAB Versions
all
TargetLink Versions
all
Embedded Coder Versions
all
Pass-Fail Criteria
For Matlab versions less than 2015 - The check analyzes the Stateflow chart debug option "Date Range".

For Matlab 2015 - The check analyses the Stateflow setting(Simulation-> Configuration Parameters -> Diagnostics -> Data Validity) - " Simulation range checking" set to "error".
Failed: the option is not selected.
The check issues a passed if the failed case does not apply.


Technical Notes
Solution
For Matlab versions less than 2015 - Enable the Stateflow chart debug option "Data Range" either by selecting it through the corresponding option in the debug window or by using the API by setting parameter "[current Chart].machine.debug.RunTimeCheck.DataRangeChecks" to "true".

For Matlab 2015 - Set the Stateflow setting(Simulation-> Configuration Parameters -> Diagnostics -> Data Validity) - " Simulation range checking" to "error".

Repair Action
For Matlab versions less than 2015 - The Stateflow chart debug option "Data Range" is set to "true".


Note: Selecting the debug option "Data Range" does not set the model into "dirty mode". Therefore, save the model explicitly such that the repair action is actually stored in the model.

For Matlab 2015 - The Stateflow setting(Simulation-> Configuration Parameters -> Diagnostics -> Data Validity) - " Simulation range checking" is set to "error".

Example
Prerequisites
Findings: ManageVehicleStates_demo_ec | mcheck_sdt_sc002_d [» Contents] [» Document Structure] [» Heat Map]
Failed
Open the HTML report in the MATLAB browser to use the model links of MATLAB checks.
Name:
Chart
Message:
The option 'Simulation-> Configuration Parameters -> Diagnostics-> Data Validity-> Simulation range checking' should be set to 'error'.