forked from sagatowski/PML_Base_PLC
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Base_Static_Analysis.csa
266 lines (266 loc) · 20.7 KB
/
Base_Static_Analysis.csa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
<CoDeSysStaticAnalysisTool>
<Settings AutoPerform="FALSE" />
<Rules>
<Rule Name="Rules" Id="0" Activated="FALSE" Warning="FALSE">
<Rule Name="Detect unreachable code" Id="1" Activated="TRUE" Warning="FALSE" />
<Rule Name="Find empty objects" Id="2" Activated="FALSE" Warning="FALSE" />
<Rule Name="Find empty statements" Id="3" Activated="FALSE" Warning="FALSE" />
<Rule Name="Multiple write access on output" Id="4" Activated="TRUE" Warning="TRUE" />
<Rule Name="Write access from several tasks" Id="6" Activated="FALSE" Warning="FALSE" />
<Rule Name="Address to constant variables" Id="7" Activated="TRUE" Warning="FALSE" />
<Rule Name="Check subrange types" Id="8" Activated="TRUE" Warning="FALSE" />
<Rule Name="Ignoring return value" Id="9" Activated="FALSE" Warning="FALSE" />
<Rule Name="Vacuous array elements" Id="10" Activated="TRUE" Warning="FALSE" />
<Rule Name="Useless declarations" Id="11" Activated="TRUE" Warning="FALSE" />
<Rule Name="Variable could be declared as constant" Id="12" Activated="FALSE" Warning="FALSE" />
<Rule Name="Declaration hides symbol" Id="13" Activated="TRUE" Warning="FALSE" />
<Rule Name="Prohibit the assignment of instances" Id="14" Activated="TRUE" Warning="FALSE" />
<Rule Name="FB_Init method accesses global data" Id="15" Activated="TRUE" Warning="FALSE" />
<Rule Name="Report necessary padding of structures" Id="16" Activated="FALSE" Warning="FALSE" />
<Rule Name="Suspicious assign" Id="17" Activated="FALSE" Warning="FALSE" />
<Rule Name="Unusual bit access" Id="18" Activated="TRUE" Warning="FALSE" />
<Rule Name="Possible truncated operation promoted to REAL" Id="20" Activated="TRUE" Warning="FALSE" />
<Rule Name="Transporting address of temporary variable" Id="21" Activated="TRUE" Warning="FALSE" />
<Rule Name="Return value (possibly) unassigned" Id="22" Activated="FALSE" Warning="FALSE" />
<Rule Name="Omit complex return values" Id="23" Activated="FALSE" Warning="FALSE" />
<Rule Name="Typed literals only" Id="24" Activated="FALSE" Warning="FALSE" />
<Rule Name="Use qualified enumeration constants" Id="25" Activated="TRUE" Warning="FALSE" />
<Rule Name="Possible truncation of Strings" Id="26" Activated="FALSE" Warning="FALSE" />
<Rule Name="Multiple uses of identifiers" Id="27" Activated="TRUE" Warning="TRUE" />
<Rule Name="Overlapping memory areas" Id="28" Activated="TRUE" Warning="FALSE" />
<Rule Name="Notation in code must equal declaration" Id="29" Activated="FALSE" Warning="FALSE" />
<Rule Name="List unused objects" Id="30" Activated="FALSE" Warning="FALSE">
<Rule Name="Unused signatures" Id="31" Activated="FALSE" Warning="FALSE" />
<Rule Name="Unused enumeration constants" Id="32" Activated="FALSE" Warning="FALSE" />
<Rule Name="Unused variables" Id="33" Activated="FALSE" Warning="FALSE" />
<Rule Name="Unused input" Id="35" Activated="FALSE" Warning="FALSE" />
<Rule Name="Unused output" Id="36" Activated="FALSE" Warning="FALSE" />
</Rule>
<Rule Name="Use enumeration value for assignment to enumerations" Id="34" Activated="FALSE" Warning="FALSE" />
<Rule Name="Write access to input variable " Id="37" Activated="TRUE" Warning="FALSE" />
<Rule Name="Read access to output variable" Id="38" Activated="TRUE" Warning="FALSE" />
<Rule Name="Possible division by zero" Id="40" Activated="TRUE" Warning="TRUE" />
<Rule Name="Detect possible loop-invariant code" Id="41" Activated="FALSE" Warning="FALSE" />
<Rule Name="Usage of different access paths" Id="42" Activated="TRUE" Warning="FALSE" />
<Rule Name="Global variable only used in one POU" Id="43" Activated="FALSE" Warning="FALSE" />
<Rule Name="References to interface" Id="44" Activated="TRUE" Warning="FALSE" />
<Rule Name="Conversions" Id="45" Activated="FALSE" Warning="FALSE">
<Rule Name="Implicit pointer conversions" Id="19" Activated="TRUE" Warning="FALSE" />
<Rule Name="Implicit widening conversions" Id="130" Activated="TRUE" Warning="FALSE" />
<Rule Name="Implicit narrowing conversions" Id="131" Activated="TRUE" Warning="FALSE" />
<Rule Name="Implicit signed/unsigned conversions" Id="132" Activated="TRUE" Warning="TRUE" />
<Rule Name="Explicit narrowing conversions" Id="133" Activated="FALSE" Warning="FALSE" />
<Rule Name="Explicit signed/unsigned conversions" Id="134" Activated="FALSE" Warning="FALSE" />
</Rule>
<Rule Name="Usage of direct addresses" Id="49" Activated="TRUE" Warning="FALSE">
<Rule Name="Check address and data type" Id="5" Activated="TRUE" Warning="FALSE" />
<Rule Name="Forbid access to direct addresses" Id="47" Activated="TRUE" Warning="FALSE" />
<Rule Name="Report declarations AT direct addresses" Id="48" Activated="TRUE" Warning="FALSE" />
</Rule>
<Rule Name="Rules for operators" Id="50" Activated="FALSE" Warning="FALSE">
<Rule Name="Boolean argument to relational" Id="51" Activated="TRUE" Warning="FALSE" />
<Rule Name="Unusual shift operation" Id="52" Activated="TRUE" Warning="FALSE" />
<Rule Name="Excessive shift value" Id="53" Activated="TRUE" Warning="FALSE" />
<Rule Name="Testing REAL/LREAL for equality" Id="54" Activated="TRUE" Warning="FALSE" />
<Rule Name="Unsigned type is never less than zero" Id="55" Activated="TRUE" Warning="FALSE" />
<Rule Name="Constant out of range for operator" Id="56" Activated="TRUE" Warning="FALSE" />
<Rule Name="Possible loss of fraction" Id="57" Activated="FALSE" Warning="FALSE" />
<Rule Name="Operation uses enumeration" Id="58" Activated="TRUE" Warning="FALSE" />
<Rule Name="Relational operator always evaluates to true or false" Id="59" Activated="TRUE" Warning="FALSE" />
<Rule Name="Zero used as operand" Id="60" Activated="TRUE" Warning="FALSE" />
<Rule Name="Unusual operation on pointer" Id="61" Activated="FALSE" Warning="FALSE" />
<Rule Name="Constant value boolean" Id="62" Activated="TRUE" Warning="FALSE" />
<Rule Name="Check for 16 bit compatibility" Id="63" Activated="TRUE" Warning="FALSE" />
<Rule Name="Addition of pointer" Id="64" Activated="FALSE" Warning="FALSE" />
<Rule Name="Pointer addition don't match base size" Id="65" Activated="TRUE" Warning="FALSE" />
<Rule Name="Use of temporary results" Id="66" Activated="FALSE" Warning="FALSE" />
</Rule>
<Rule Name="Rules for statements" Id="70" Activated="FALSE" Warning="FALSE">
<Rule Name="FOR statements" Id="71" Activated="FALSE" Warning="FALSE">
<Rule Name="Invalid use of counter variable" Id="72" Activated="TRUE" Warning="FALSE" />
<Rule Name="Use an adequate counter variable" Id="73" Activated="FALSE" Warning="FALSE" />
<Rule Name="Loop index range exeeds array range" Id="80" Activated="TRUE" Warning="FALSE" />
<Rule Name="Upper border must be a constant value" Id="81" Activated="FALSE" Warning="FALSE" />
</Rule>
<Rule Name="CASE statement" Id="74" Activated="FALSE" Warning="FALSE">
<Rule Name="Missing ELSE" Id="75" Activated="FALSE" Warning="FALSE" />
<Rule Name="Missing enumeration constant" Id="76" Activated="TRUE" Warning="FALSE" />
<Rule Name="Type mismatch with CASE expression" Id="77" Activated="TRUE" Warning="FALSE" />
<Rule Name="CASE statement does not have a case" Id="78" Activated="TRUE" Warning="FALSE" />
</Rule>
<Rule Name="Return statement before end of function" Id="90" Activated="FALSE" Warning="FALSE" />
</Rule>
<Rule Name="Assignment in conditions" Id="95" Activated="TRUE" Warning="FALSE" />
<Rule Name="Variable greater 1024 bytes..." Id="100" Activated="FALSE" Warning="FALSE">
<UpperLimit>1024</UpperLimit>
</Rule>
<Rule Name="Length of names..." Id="101" Activated="FALSE" Warning="FALSE">
<MinChars>5</MinChars>
<MaxChars>30</MaxChars>
<Exceptions />
</Rule>
<Rule Name="Access to program/fb variables from the outside" Id="102" Activated="TRUE" Warning="FALSE" />
<Rule Name="Concurrent access on not atomic data" Id="103" Activated="TRUE" Warning="FALSE" />
<Rule Name="Report multiple instance calls" Id="105" Activated="FALSE" Warning="FALSE" />
<Rule Name="Virtual method calls in FB_INIT" Id="106" Activated="FALSE" Warning="FALSE" />
<Rule Name="Use formal parameters" Id="107" Activated="FALSE" Warning="FALSE" />
<Rule Name="Check strict IEC rules" Id="110" Activated="FALSE" Warning="FALSE">
<Rule Name="Pointer variables" Id="111" Activated="FALSE" Warning="FALSE" />
<Rule Name="Reference variables" Id="112" Activated="FALSE" Warning="FALSE" />
<Rule Name="WSTRING data type" Id="113" Activated="FALSE" Warning="FALSE" />
<Rule Name="LTIME data type" Id="114" Activated="FALSE" Warning="FALSE" />
<Rule Name="Unions" Id="115" Activated="FALSE" Warning="FALSE" />
<Rule Name="BIT data type" Id="117" Activated="FALSE" Warning="FALSE" />
<Rule Name="Object-oriented features" Id="119" Activated="FALSE" Warning="FALSE" />
<Rule Name="Prohibit program calls" Id="120" Activated="FALSE" Warning="FALSE" />
<Rule Name="EXTERNAL declaration required" Id="121" Activated="FALSE" Warning="FALSE" />
<Rule Name="Only constants for array definition" Id="122" Activated="FALSE" Warning="FALSE" />
<Rule Name="Prohibit INI, ADR, BITADR" Id="123" Activated="FALSE" Warning="FALSE" />
<Rule Name="Unusual shift operation - strict" Id="147" Activated="FALSE" Warning="FALSE" />
<Rule Name="Unusual bit access - strict" Id="148" Activated="FALSE" Warning="FALSE" />
<Rule Name="Rules for initialisations" Id="149" Activated="FALSE" Warning="FALSE">
<Rule Name="Only constant initialisation" Id="118" Activated="FALSE" Warning="FALSE" />
<Rule Name="Prohibit dereference access in initialisations" Id="124" Activated="FALSE" Warning="FALSE" />
<Rule Name="Prohibit references in initialisations" Id="125" Activated="FALSE" Warning="FALSE" />
</Rule>
</Rule>
<Rule Name="Outcommented statements" Id="140" Activated="FALSE" Warning="FALSE" />
<Rule Name="Possible use of uninitialised variables" Id="146" Activated="FALSE" Warning="FALSE">
<Rule Name="Possible null-pointer dereference" Id="39" Activated="FALSE" Warning="FALSE" />
<Rule Name="Possible use of not initialised interface" Id="46" Activated="FALSE" Warning="FALSE" />
<Rule Name="Possible use of not initialised reference" Id="145" Activated="FALSE" Warning="FALSE" />
</Rule>
<Rule Name="Report metric violations" Id="150" Activated="FALSE" Warning="FALSE" />
<Rule Name="Detect recursive calls" Id="160" Activated="FALSE" Warning="FALSE" />
<Rule Name="Unpacked structure in packed structure" Id="161" Activated="TRUE" Warning="FALSE" />
<Rule Name="Check for comments" Id="162" Activated="FALSE" Warning="FALSE" />
<Rule Name="Report nested comments" Id="163" Activated="FALSE" Warning="FALSE" />
<Rule Name="Use single line comments" Id="164" Activated="FALSE" Warning="FALSE" />
<Rule Name="Max. number of input/output/in-out variables..." Id="166" Activated="FALSE" Warning="FALSE">
<MaxInputs>10</MaxInputs>
<MaxOutputs>10</MaxOutputs>
<MaxInOuts>10</MaxInOuts>
</Rule>
<Rule Name="Report temporary FunctionBlock instances" Id="167" Activated="FALSE" Warning="FALSE" />
</Rule>
</Rules>
<NamingConventions>
<NamingConvention Name="Prefixes for variables" Id="1">
<NamingConvention Name="Prefixes for types" Id="2">
<NamingConvention Name="BOOL" Id="3" Prefix="b" />
<NamingConvention Name="BIT" Id="4" Prefix="b" />
<NamingConvention Name="BYTE" Id="5" Prefix="n" />
<NamingConvention Name="WORD" Id="6" Prefix="n" />
<NamingConvention Name="DWORD" Id="7" Prefix="n" />
<NamingConvention Name="LWORD" Id="8" Prefix="n" />
<NamingConvention Name="SINT" Id="13" Prefix="n" />
<NamingConvention Name="INT" Id="14" Prefix="n" />
<NamingConvention Name="DINT" Id="15" Prefix="" />
<NamingConvention Name="LINT" Id="16" Prefix="n" />
<NamingConvention Name="USINT" Id="9" Prefix="n" />
<NamingConvention Name="UINT" Id="10" Prefix="n" />
<NamingConvention Name="UDINT" Id="11" Prefix="" />
<NamingConvention Name="ULINT" Id="12" Prefix="n" />
<NamingConvention Name="REAL" Id="17" Prefix="f" />
<NamingConvention Name="LREAL" Id="18" Prefix="f" />
<NamingConvention Name="STRING" Id="19" Prefix="s" />
<NamingConvention Name="WSTRING" Id="20" Prefix="ws" />
<NamingConvention Name="TIME" Id="21" Prefix="t" />
<NamingConvention Name="LTIME" Id="22" Prefix="t" />
<NamingConvention Name="DATE" Id="23" Prefix="d" />
<NamingConvention Name="DATE_AND_TIME" Id="24" Prefix="dt" />
<NamingConvention Name="TIME_OF_DAY" Id="25" Prefix="td" />
<NamingConvention Name="POINTER" Id="26" Prefix="p" />
<NamingConvention Name="REFERENCE" Id="27" Prefix="" />
<NamingConvention Name="SUBRANGE" Id="28" Prefix="" />
<NamingConvention Name="ARRAY" Id="30" Prefix="a" />
<NamingConvention Name="Functionblock Instance" Id="31" Prefix="fb" />
<NamingConvention Name="Interface" Id="36" Prefix="ip" />
<NamingConvention Name="Structure" Id="32" Prefix="st" />
<NamingConvention Name="ENUM" Id="29" Prefix="e" />
<NamingConvention Name="Alias" Id="33" Prefix="" />
<NamingConvention Name="Union" Id="34" Prefix="u" />
<NamingConvention Name="__XWORD" Id="35" Prefix="n" />
<NamingConvention Name="__UXINT" Id="37" Prefix="n" />
<NamingConvention Name="__XINT" Id="38" Prefix="n" />
</NamingConvention>
<NamingConvention Name="Prefixes for scopes" Id="50">
<NamingConvention Name="VAR_GLOBAL" Id="51" Prefix="" />
<NamingConvention Name="VAR_GLOBAL CONSTANT" Id="70" Prefix="" />
<NamingConvention Name="VAR_GLOBAL RETAIN" Id="71" Prefix="" />
<NamingConvention Name="VAR_GLOBAL PERSISTENT" Id="72" Prefix="" />
<NamingConvention Name="VAR_GLOBAL RETAIN PERSISTENT" Id="73" Prefix="" />
<NamingConvention Name="VAR" Id="52">
<NamingConvention Name="Program variables" Id="53" Prefix="" />
<NamingConvention Name="Functionblock variables" Id="54" Prefix="" />
<NamingConvention Name="Function\Method variables" Id="55" Prefix="" />
</NamingConvention>
<NamingConvention Name="VAR_INPUT" Id="56" Prefix="" />
<NamingConvention Name="VAR_OUTPUT" Id="57" Prefix="" />
<NamingConvention Name="VAR_IN_OUT" Id="58" Prefix="" />
<NamingConvention Name="VAR_STAT" Id="59" Prefix="" />
<NamingConvention Name="VAR_TEMP" Id="61" Prefix="" />
<NamingConvention Name="VAR CONSTANT" Id="62" Prefix="" />
<NamingConvention Name="VAR PERSISTENT" Id="63" Prefix="" />
<NamingConvention Name="VAR RETAIN" Id="64" Prefix="" />
<NamingConvention Name="IO Variables" Id="65" Prefix="" />
</NamingConvention>
</NamingConvention>
<NamingConvention Name="Prefixes for POUs" Id="100">
<NamingConvention Name="Prefixes for POU type" Id="101">
<NamingConvention Name="PROGRAM" Id="102" Prefix="" />
<NamingConvention Name="FUNCTIONBLOCK" Id="103" Prefix="FB_" />
<NamingConvention Name="FUNCTION" Id="104" Prefix="F_" />
<NamingConvention Name="METHOD" Id="105" Prefix="" />
<NamingConvention Name="ACTION" Id="106" Prefix="" />
<NamingConvention Name="PROPERTY" Id="107" Prefix="" />
<NamingConvention Name="INTERFACE" Id="108" Prefix="ITF_" />
</NamingConvention>
<NamingConvention Name="Method scope" Id="120">
<NamingConvention Name="PRIVATE" Id="121" Prefix="" />
<NamingConvention Name="PROTECTED" Id="122" Prefix="" />
<NamingConvention Name="INTERNAL" Id="123" Prefix="" />
<NamingConvention Name="PUBLIC" Id="124" Prefix="" />
</NamingConvention>
</NamingConvention>
<NamingConvention Name="Prefixes for DUTs" Id="150">
<NamingConvention Name="Structure" Id="151" Prefix="ST_" />
<NamingConvention Name="Enumeration" Id="152" Prefix="E_" />
<NamingConvention Name="Union" Id="153" Prefix="U_" />
<NamingConvention Name="Alias" Id="154" Prefix="T_" />
</NamingConvention>
</NamingConventions>
<Metrics>
<Metric Name="Code size (number of bytes)" Guid="62b98ef9-b4c6-4777-bc0a-29245bb8b9f3" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Variables size (number of bytes)" Guid="6c74d656-f35f-41b9-b449-eae882ed12fe" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Stack size (number of bytes)" Guid="daa3e89b-a727-4bc9-bd38-29afc6024f90" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Number of calls" Guid="e58378e8-a2fb-4a33-8013-8a91270388d0" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Called in tasks" Guid="aebdfc4d-fc4f-4fac-bf2e-22b603bc1880" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="Used different global Variables" Guid="15c07c54-9586-460c-802f-b3b4a408e3c7" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Number of direct address accesses" Guid="19fab17a-876c-4a8d-9d74-3e5d92b63dc8" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Number of local variables" Guid="87b20586-90da-40d8-82ce-62a7dd0ba8af" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="Number of inputs variables" Guid="2a5d0bd7-5767-43e1-92ab-90d924ade69e" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="Number of output variables" Guid="6cb1bfb1-4d4a-43ed-96f4-cd0254fc33b5" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="NOS - Number Of Statements" Guid="0ade9a3b-311c-4293-bc26-bcf994cdbbdc" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Percentage of comment" Guid="9b526466-3bbe-40a9-b5a5-1cfadd791459" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Complexity (McCabe)" Guid="0ba696f2-ce22-4330-931f-4ddd5c597896" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Complexity of nesting (Prather)" Guid="c20d083b-41ea-4867-b762-015491579932" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="DIT - Depth of Inheritance Tree" Guid="c4137578-73e0-4a9c-ad9c-7773a1cff401" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="NOC - Number of Children" Guid="f6dd9a78-1e71-4d9c-9e61-394eb38f3809" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="RFC - Response for Class" Guid="b42720b9-b152-4b52-ad89-630e0f5acab1" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="CBO - Coupling between Objects" Guid="6549803a-9e82-4b28-aff1-2425cbec813b" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Complexity of reference (Elshof)" Guid="571980c1-792d-4355-a9cb-4c3a8f254ab0" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="Lack of cohesion in methods - LCOM" Guid="3fb5ac29-8ac7-4ca4-863e-49c3c89643b9" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="Number of different used operators - Halstead (n1)" Guid="209f2982-bd60-4988-9cf9-9ff21cbf643f" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="Number of operators - Halstead (N1)" Guid="bb1ff1d3-b0bc-4909-9034-11d7c6edb61f" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="Number of different used operands - Halstead (n2)" Guid="8360c2b5-e762-4cc0-935b-fb129cda1b4a" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="Number of operands - Halstead (N2)" Guid="1a004255-b771-48b6-aa33-ea35ce4d37ea" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="Length - Halstead (HL)" Guid="827ae15d-4cb9-4177-b870-6bea1db8ee44" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Volume - Halstead (HV)" Guid="eb349b41-54d8-47ed-ab7d-b5dbbc17709f" Activated="TRUE" LowerLimit="" UpperLimit="" />
<Metric Name="Difficulty - Halstead (D)" Guid="ca51b834-cb16-4517-8b02-4807ce263107" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="Number of SFC branches" Guid="40f104a2-99f0-486d-9c44-47e8c759ca07" Activated="FALSE" LowerLimit="" UpperLimit="" />
<Metric Name="Number of SFC steps" Guid="2ee16325-7a34-4109-82cd-e99144bdbf43" Activated="FALSE" LowerLimit="" UpperLimit="" />
</Metrics>
<SuppressedSymbols />
<NamingConventionsSettings FirstCharUppercase="TRUE" CombinedDataTypesRecursive="FALSE" CombineScopeWithDataTypePrefix="FALSE" />
</CoDeSysStaticAnalysisTool>