armodel 1.7.1__py3-none-any.whl → 1.7.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- armodel/cli/arxml_dump_cli.py +3 -3
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +3 -3
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +81 -36
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +104 -30
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +12 -16
- armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +70 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +12 -9
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +22 -11
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +29 -22
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +26 -9
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +33 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +10 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +8 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +23 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +93 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +39 -5
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +735 -27
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +48 -6
- armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +5 -5
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +20 -3
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +3 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +55 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +41 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -15
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +8 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +239 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +56 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +91 -55
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +10 -1
- armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +186 -24
- armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +34 -3
- armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +4 -4
- armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +7 -0
- armodel/models/M2/MSR/DataDictionary/RecordLayout.py +130 -37
- armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +33 -0
- armodel/models/__init__.py +4 -0
- armodel/parser/abstract_arxml_parser.py +30 -27
- armodel/parser/arxml_parser.py +683 -371
- armodel/tests/test_armodel/models/test_ar_object.py +6 -2
- armodel/tests/test_armodel/models/test_datatype.py +4 -4
- armodel/tests/test_armodel/models/test_m2_msr.py +5 -5
- armodel/tests/test_armodel/models/test_port_interface.py +4 -4
- armodel/tests/test_armodel/parser/test_parse_bswmd.py +48 -48
- armodel/tests/test_armodel/parser/test_sw_components.py +1 -1
- armodel/tests/test_armodel/parser/test_system.py +0 -1
- armodel/writer/abstract_arxml_writer.py +10 -0
- armodel/writer/arxml_writer.py +668 -358
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/METADATA +34 -1
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/RECORD +54 -48
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/LICENSE +0 -0
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/WHEEL +0 -0
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/top_level.txt +0 -0
|
@@ -1,17 +1,47 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
|
+
from typing import List
|
|
3
|
+
|
|
2
4
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
3
5
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
4
|
-
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import
|
|
5
|
-
from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef, AutosarVariableRef
|
|
6
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Identifier, RefType, AREnum, Boolean, ARLiteral, DiagRequirementIdString, Integer, PositiveInteger, RefType, String, TimeValue
|
|
6
7
|
|
|
7
8
|
class RoleBasedDataAssignment(ARObject):
|
|
8
9
|
def __init__(self):
|
|
9
10
|
super().__init__()
|
|
10
11
|
|
|
11
12
|
self.role = None # type: ARLiteral
|
|
12
|
-
self.
|
|
13
|
-
self.
|
|
14
|
-
self.
|
|
13
|
+
self.usedDataElement = None # type: RefType # AutosarVariableRef
|
|
14
|
+
self.usedParameterElement = None # type: RefType # AutosarParameterRef
|
|
15
|
+
self.usedPimRef = None # type: RefType
|
|
16
|
+
|
|
17
|
+
def getRole(self):
|
|
18
|
+
return self.role
|
|
19
|
+
|
|
20
|
+
def setRole(self, value):
|
|
21
|
+
self.role = value
|
|
22
|
+
return self
|
|
23
|
+
|
|
24
|
+
def getUsedDataElement(self):
|
|
25
|
+
return self.usedDataElement
|
|
26
|
+
|
|
27
|
+
def setUsedDataElement(self, value):
|
|
28
|
+
self.usedDataElement = value
|
|
29
|
+
return self
|
|
30
|
+
|
|
31
|
+
def getUsedParameterElement(self):
|
|
32
|
+
return self.usedParameterElement
|
|
33
|
+
|
|
34
|
+
def setUsedParameterElement(self, value):
|
|
35
|
+
self.usedParameterElement = value
|
|
36
|
+
return self
|
|
37
|
+
|
|
38
|
+
def getUsedPimRef(self):
|
|
39
|
+
return self.usedPimRef
|
|
40
|
+
|
|
41
|
+
def setUsedPimRef(self, value):
|
|
42
|
+
self.usedPimRef = value
|
|
43
|
+
return self
|
|
44
|
+
|
|
15
45
|
|
|
16
46
|
|
|
17
47
|
class ServiceNeeds(Identifiable, metaclass = ABCMeta):
|
|
@@ -21,34 +51,712 @@ class ServiceNeeds(Identifiable, metaclass = ABCMeta):
|
|
|
21
51
|
|
|
22
52
|
super().__init__(parent, short_name)
|
|
23
53
|
|
|
54
|
+
class RamBlockStatusControlEnum(AREnum):
|
|
55
|
+
API = "api"
|
|
56
|
+
NV_RAM_MANAGER = "nvRamManager"
|
|
57
|
+
|
|
58
|
+
def __init__(self):
|
|
59
|
+
super().__init__((
|
|
60
|
+
RamBlockStatusControlEnum.API,
|
|
61
|
+
RamBlockStatusControlEnum.NV_RAM_MANAGER,
|
|
62
|
+
))
|
|
63
|
+
|
|
64
|
+
class NvBlockNeedsReliabilityEnum(AREnum):
|
|
65
|
+
ERROR_CORRECTION = "errorCorrection"
|
|
66
|
+
ERROR_DETECTION = "errorDetection"
|
|
67
|
+
NO_PROTECTION = "noProtection"
|
|
68
|
+
|
|
69
|
+
def __init__(self):
|
|
70
|
+
super().__init__((
|
|
71
|
+
NvBlockNeedsReliabilityEnum.ERROR_CORRECTION,
|
|
72
|
+
NvBlockNeedsReliabilityEnum.ERROR_DETECTION,
|
|
73
|
+
NvBlockNeedsReliabilityEnum.NO_PROTECTION,
|
|
74
|
+
))
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class NvBlockNeedsWritingPriorityEnum(AREnum):
|
|
78
|
+
HIGH = "high"
|
|
79
|
+
LOW = "low"
|
|
80
|
+
MEDIUM = "medium"
|
|
81
|
+
|
|
82
|
+
def __init__(self):
|
|
83
|
+
super().__init__((
|
|
84
|
+
NvBlockNeedsWritingPriorityEnum.HIGH,
|
|
85
|
+
NvBlockNeedsWritingPriorityEnum.LOW,
|
|
86
|
+
NvBlockNeedsWritingPriorityEnum.MEDIUM,
|
|
87
|
+
))
|
|
24
88
|
|
|
25
89
|
class NvBlockNeeds(ServiceNeeds):
|
|
26
90
|
def __init__(self, parent: ARObject, short_name: str):
|
|
27
91
|
super().__init__(parent, short_name)
|
|
28
92
|
|
|
29
|
-
self.
|
|
30
|
-
self.
|
|
31
|
-
self.
|
|
32
|
-
self.
|
|
33
|
-
self.
|
|
34
|
-
|
|
35
|
-
self.
|
|
36
|
-
self.
|
|
37
|
-
|
|
38
|
-
self.
|
|
39
|
-
self.
|
|
40
|
-
self.
|
|
41
|
-
self.
|
|
42
|
-
self.
|
|
43
|
-
self.
|
|
44
|
-
self.
|
|
45
|
-
self.
|
|
46
|
-
self.
|
|
47
|
-
self.
|
|
48
|
-
self.
|
|
49
|
-
self.
|
|
93
|
+
self.calcRamBlockCrc = None # type: Boolean
|
|
94
|
+
self.checkStaticBlockId = None # type: Boolean
|
|
95
|
+
self.cyclicWritingPeriod = None # type: TimeValue
|
|
96
|
+
self.nDataSets = None # type: PositiveInteger
|
|
97
|
+
self.nRomBlocks = None # type: PositiveInteger
|
|
98
|
+
# type: RamBlockStatusControlEnum
|
|
99
|
+
self.ramBlockStatusControl = None
|
|
100
|
+
self.readonly = None # type: Boolean
|
|
101
|
+
# type: NvBlockNeedsReliabilityEnum
|
|
102
|
+
self.reliability = None
|
|
103
|
+
self.resistantToChangedSw = None # type: Boolean
|
|
104
|
+
self.restoreAtStart = None # type: Boolean
|
|
105
|
+
self.selectBlockForFirstInitAll = None # type: Boolean
|
|
106
|
+
self.storeAtShutdown = None # type: Boolean
|
|
107
|
+
self.storeCyclic = None # type: Boolean
|
|
108
|
+
self.storeEmergency = None # type: Boolean
|
|
109
|
+
self.storeImmediate = None # type: Boolean
|
|
110
|
+
self.storeOnChange = None # type: Boolean
|
|
111
|
+
self.useAutoValidationAtShutDown = None # type: Boolean
|
|
112
|
+
self.useCRCCompMechanism = None # type: Boolean
|
|
113
|
+
self.writeOnlyOnce = None # type: Boolean
|
|
114
|
+
self.writeVerification = None # type: Boolean
|
|
115
|
+
self.writingFrequency = None # type: PositiveInteger
|
|
116
|
+
# type: NvBlockNeedsWritingPriorityEnum
|
|
117
|
+
self.writingPriority = None
|
|
118
|
+
|
|
119
|
+
def getCalcRamBlockCrc(self):
|
|
120
|
+
return self.calcRamBlockCrc
|
|
121
|
+
|
|
122
|
+
def setCalcRamBlockCrc(self, value):
|
|
123
|
+
self.calcRamBlockCrc = value
|
|
124
|
+
return self
|
|
125
|
+
|
|
126
|
+
def getCheckStaticBlockId(self):
|
|
127
|
+
return self.checkStaticBlockId
|
|
128
|
+
|
|
129
|
+
def setCheckStaticBlockId(self, value):
|
|
130
|
+
self.checkStaticBlockId = value
|
|
131
|
+
return self
|
|
132
|
+
|
|
133
|
+
def getCyclicWritingPeriod(self):
|
|
134
|
+
return self.cyclicWritingPeriod
|
|
135
|
+
|
|
136
|
+
def setCyclicWritingPeriod(self, value):
|
|
137
|
+
self.cyclicWritingPeriod = value
|
|
138
|
+
return self
|
|
139
|
+
|
|
140
|
+
def getNDataSets(self):
|
|
141
|
+
return self.nDataSets
|
|
142
|
+
|
|
143
|
+
def setNDataSets(self, value):
|
|
144
|
+
self.nDataSets = value
|
|
145
|
+
return self
|
|
146
|
+
|
|
147
|
+
def getNRomBlocks(self):
|
|
148
|
+
return self.nRomBlocks
|
|
149
|
+
|
|
150
|
+
def setNRomBlocks(self, value):
|
|
151
|
+
self.nRomBlocks = value
|
|
152
|
+
return self
|
|
153
|
+
|
|
154
|
+
def getRamBlockStatusControl(self):
|
|
155
|
+
return self.ramBlockStatusControl
|
|
156
|
+
|
|
157
|
+
def setRamBlockStatusControl(self, value):
|
|
158
|
+
self.ramBlockStatusControl = value
|
|
159
|
+
return self
|
|
160
|
+
|
|
161
|
+
def getReadonly(self):
|
|
162
|
+
return self.readonly
|
|
163
|
+
|
|
164
|
+
def setReadonly(self, value):
|
|
165
|
+
self.readonly = value
|
|
166
|
+
return self
|
|
167
|
+
|
|
168
|
+
def getReliability(self):
|
|
169
|
+
return self.reliability
|
|
170
|
+
|
|
171
|
+
def setReliability(self, value):
|
|
172
|
+
self.reliability = value
|
|
173
|
+
return self
|
|
174
|
+
|
|
175
|
+
def getResistantToChangedSw(self):
|
|
176
|
+
return self.resistantToChangedSw
|
|
177
|
+
|
|
178
|
+
def setResistantToChangedSw(self, value):
|
|
179
|
+
self.resistantToChangedSw = value
|
|
180
|
+
return self
|
|
181
|
+
|
|
182
|
+
def getRestoreAtStart(self):
|
|
183
|
+
return self.restoreAtStart
|
|
184
|
+
|
|
185
|
+
def setRestoreAtStart(self, value):
|
|
186
|
+
self.restoreAtStart = value
|
|
187
|
+
return self
|
|
188
|
+
|
|
189
|
+
def getSelectBlockForFirstInitAll(self):
|
|
190
|
+
return self.selectBlockForFirstInitAll
|
|
191
|
+
|
|
192
|
+
def setSelectBlockForFirstInitAll(self, value):
|
|
193
|
+
self.selectBlockForFirstInitAll = value
|
|
194
|
+
return self
|
|
195
|
+
|
|
196
|
+
def getStoreAtShutdown(self):
|
|
197
|
+
return self.storeAtShutdown
|
|
198
|
+
|
|
199
|
+
def setStoreAtShutdown(self, value):
|
|
200
|
+
self.storeAtShutdown = value
|
|
201
|
+
return self
|
|
202
|
+
|
|
203
|
+
def getStoreCyclic(self):
|
|
204
|
+
return self.storeCyclic
|
|
205
|
+
|
|
206
|
+
def setStoreCyclic(self, value):
|
|
207
|
+
self.storeCyclic = value
|
|
208
|
+
return self
|
|
209
|
+
|
|
210
|
+
def getStoreEmergency(self):
|
|
211
|
+
return self.storeEmergency
|
|
212
|
+
|
|
213
|
+
def setStoreEmergency(self, value):
|
|
214
|
+
self.storeEmergency = value
|
|
215
|
+
return self
|
|
216
|
+
|
|
217
|
+
def getStoreImmediate(self):
|
|
218
|
+
return self.storeImmediate
|
|
219
|
+
|
|
220
|
+
def setStoreImmediate(self, value):
|
|
221
|
+
self.storeImmediate = value
|
|
222
|
+
return self
|
|
223
|
+
|
|
224
|
+
def getStoreOnChange(self):
|
|
225
|
+
return self.storeOnChange
|
|
226
|
+
|
|
227
|
+
def setStoreOnChange(self, value):
|
|
228
|
+
self.storeOnChange = value
|
|
229
|
+
return self
|
|
230
|
+
|
|
231
|
+
def getUseAutoValidationAtShutDown(self):
|
|
232
|
+
return self.useAutoValidationAtShutDown
|
|
233
|
+
|
|
234
|
+
def setUseAutoValidationAtShutDown(self, value):
|
|
235
|
+
self.useAutoValidationAtShutDown = value
|
|
236
|
+
return self
|
|
50
237
|
|
|
238
|
+
def getUseCRCCompMechanism(self):
|
|
239
|
+
return self.useCRCCompMechanism
|
|
240
|
+
|
|
241
|
+
def setUseCRCCompMechanism(self, value):
|
|
242
|
+
self.useCRCCompMechanism = value
|
|
243
|
+
return self
|
|
244
|
+
|
|
245
|
+
def getWriteOnlyOnce(self):
|
|
246
|
+
return self.writeOnlyOnce
|
|
247
|
+
|
|
248
|
+
def setWriteOnlyOnce(self, value):
|
|
249
|
+
self.writeOnlyOnce = value
|
|
250
|
+
return self
|
|
251
|
+
|
|
252
|
+
def getWriteVerification(self):
|
|
253
|
+
return self.writeVerification
|
|
254
|
+
|
|
255
|
+
def setWriteVerification(self, value):
|
|
256
|
+
self.writeVerification = value
|
|
257
|
+
return self
|
|
258
|
+
|
|
259
|
+
def getWritingFrequency(self):
|
|
260
|
+
return self.writingFrequency
|
|
261
|
+
|
|
262
|
+
def setWritingFrequency(self, value):
|
|
263
|
+
self.writingFrequency = value
|
|
264
|
+
return self
|
|
265
|
+
|
|
266
|
+
def getWritingPriority(self):
|
|
267
|
+
return self.writingPriority
|
|
268
|
+
|
|
269
|
+
def setWritingPriority(self, value):
|
|
270
|
+
self.writingPriority = value
|
|
271
|
+
return self
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
class RoleBasedDataTypeAssignment(ARObject):
|
|
275
|
+
def __init__(self):
|
|
276
|
+
super().__init__()
|
|
277
|
+
|
|
278
|
+
self.role = None # type: Identifier
|
|
279
|
+
self.usedImplementationDataTypeRef = None # type: RefType
|
|
280
|
+
|
|
281
|
+
def getRole(self):
|
|
282
|
+
return self.role
|
|
283
|
+
|
|
284
|
+
def setRole(self, value):
|
|
285
|
+
self.role = value
|
|
286
|
+
return self
|
|
287
|
+
|
|
288
|
+
def getUsedImplementationDataTypeRef(self):
|
|
289
|
+
return self.usedImplementationDataTypeRef
|
|
290
|
+
|
|
291
|
+
def setUsedImplementationDataTypeRef(self, value):
|
|
292
|
+
self.usedImplementationDataTypeRef = value
|
|
293
|
+
return self
|
|
51
294
|
|
|
52
295
|
class ServiceDependency(Identifiable):
|
|
53
296
|
def __init__(self, parent: ARObject, short_name: str):
|
|
54
|
-
super().__init__(parent, short_name)
|
|
297
|
+
super().__init__(parent, short_name)
|
|
298
|
+
|
|
299
|
+
self.assignedDataTypes = [] # type: List[RoleBasedDataTypeAssignment]
|
|
300
|
+
self.diagnosticRelevance = None # type: ServiceDiagnosticRelevanceEnum
|
|
301
|
+
self.symbolicNameProps = None # type: SymbolicNameProps
|
|
302
|
+
|
|
303
|
+
def getAssignedDataTypes(self):
|
|
304
|
+
return self.assignedDataTypes
|
|
305
|
+
|
|
306
|
+
def addAssignedDataType(self, value):
|
|
307
|
+
self.assignedDataTypes.append(value)
|
|
308
|
+
return self
|
|
309
|
+
|
|
310
|
+
def getDiagnosticRelevance(self):
|
|
311
|
+
return self.diagnosticRelevance
|
|
312
|
+
|
|
313
|
+
def setDiagnosticRelevance(self, value):
|
|
314
|
+
self.diagnosticRelevance = value
|
|
315
|
+
return self
|
|
316
|
+
|
|
317
|
+
def getSymbolicNameProps(self):
|
|
318
|
+
return self.symbolicNameProps
|
|
319
|
+
|
|
320
|
+
def setSymbolicNameProps(self, value):
|
|
321
|
+
self.symbolicNameProps = value
|
|
322
|
+
return self
|
|
323
|
+
|
|
324
|
+
class DiagnosticAudienceEnum(AREnum):
|
|
325
|
+
AFTER_MARKET = "aftermarket"
|
|
326
|
+
AFTER_SALES = "afterSales"
|
|
327
|
+
DEVELOPMENT = "development"
|
|
328
|
+
MANUFACTURING = "manufacturing"
|
|
329
|
+
SUPPLIER = "supplier"
|
|
330
|
+
|
|
331
|
+
def __init__(self):
|
|
332
|
+
super().__init__((
|
|
333
|
+
DiagnosticAudienceEnum.AFTER_MARKET,
|
|
334
|
+
DiagnosticAudienceEnum.AFTER_SALES,
|
|
335
|
+
DiagnosticAudienceEnum.DEVELOPMENT,
|
|
336
|
+
DiagnosticAudienceEnum.MANUFACTURING,
|
|
337
|
+
DiagnosticAudienceEnum.SUPPLIER,
|
|
338
|
+
))
|
|
339
|
+
|
|
340
|
+
class DiagnosticServiceRequestCallbackTypeEnum(AREnum):
|
|
341
|
+
REQUEST_CALLBACK_TYPE_MANUFACTURER = "requestCallbackTypeManufacturer"
|
|
342
|
+
REQUEST_CALLBACK_TYPE_SUPPLIER = "requestCallbackTypeSupplier"
|
|
343
|
+
|
|
344
|
+
def __init__(self):
|
|
345
|
+
super().__init__((
|
|
346
|
+
DiagnosticServiceRequestCallbackTypeEnum.REQUEST_CALLBACK_TYPE_MANUFACTURER,
|
|
347
|
+
DiagnosticServiceRequestCallbackTypeEnum.REQUEST_CALLBACK_TYPE_SUPPLIER,
|
|
348
|
+
))
|
|
349
|
+
|
|
350
|
+
class DiagnosticCapabilityElement(ServiceNeeds, metaclass = ABCMeta):
|
|
351
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
352
|
+
if type(self) == DiagnosticCapabilityElement:
|
|
353
|
+
raise NotImplementedError("DiagnosticCapabilityElement is an abstract class.")
|
|
354
|
+
|
|
355
|
+
super().__init__(parent, short_name)
|
|
356
|
+
|
|
357
|
+
self.audiences = [] # type: List[DiagnosticAudienceEnum]
|
|
358
|
+
self.diagRequirement = None # type: DiagRequirementIdString
|
|
359
|
+
self.securityAccessLevel = None # type: PositiveInteger
|
|
360
|
+
|
|
361
|
+
def getAudiences(self):
|
|
362
|
+
return self.audiences
|
|
363
|
+
|
|
364
|
+
def addAudience(self, value):
|
|
365
|
+
self.audiences.append(value)
|
|
366
|
+
return self
|
|
367
|
+
|
|
368
|
+
def getDiagRequirement(self):
|
|
369
|
+
return self.diagRequirement
|
|
370
|
+
|
|
371
|
+
def setDiagRequirement(self, value):
|
|
372
|
+
self.diagRequirement = value
|
|
373
|
+
return self
|
|
374
|
+
|
|
375
|
+
def getSecurityAccessLevel(self):
|
|
376
|
+
return self.securityAccessLevel
|
|
377
|
+
|
|
378
|
+
def setSecurityAccessLevel(self, value):
|
|
379
|
+
self.securityAccessLevel = value
|
|
380
|
+
return self
|
|
381
|
+
|
|
382
|
+
class DiagnosticRoutineTypeEnum(AREnum):
|
|
383
|
+
ASYNCHRONOUS = "asynchronous"
|
|
384
|
+
SYNCHRONOUS = "synchronous"
|
|
385
|
+
|
|
386
|
+
def __init__(self):
|
|
387
|
+
super().__init__((
|
|
388
|
+
DiagnosticRoutineTypeEnum.ASYNCHRONOUS,
|
|
389
|
+
DiagnosticRoutineTypeEnum.SYNCHRONOUS,
|
|
390
|
+
))
|
|
391
|
+
|
|
392
|
+
class DiagnosticCommunicationManagerNeeds(DiagnosticCapabilityElement):
|
|
393
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
394
|
+
super().__init__(parent, short_name)
|
|
395
|
+
|
|
396
|
+
self.serviceRequestCallbackType = None # type: DiagnosticServiceRequestCallbackTypeEnum
|
|
397
|
+
|
|
398
|
+
def getServiceRequestCallbackType(self):
|
|
399
|
+
return self.serviceRequestCallbackType
|
|
400
|
+
|
|
401
|
+
def setServiceRequestCallbackType(self, value):
|
|
402
|
+
self.serviceRequestCallbackType = value
|
|
403
|
+
return self
|
|
404
|
+
|
|
405
|
+
class DiagnosticRoutineNeeds(DiagnosticCapabilityElement):
|
|
406
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
407
|
+
super().__init__(parent, short_name)
|
|
408
|
+
|
|
409
|
+
self.diagRoutineType = None # type: DiagnosticRoutineTypeEnum
|
|
410
|
+
self.RidNumber = None # type: PositiveInteger
|
|
411
|
+
|
|
412
|
+
def getDiagRoutineType(self):
|
|
413
|
+
return self.diagRoutineType
|
|
414
|
+
|
|
415
|
+
def setDiagRoutineType(self, value):
|
|
416
|
+
self.diagRoutineType = value
|
|
417
|
+
return self
|
|
418
|
+
|
|
419
|
+
def getRidNumber(self):
|
|
420
|
+
return self.RidNumber
|
|
421
|
+
|
|
422
|
+
def setRidNumber(self, value):
|
|
423
|
+
self.RidNumber = value
|
|
424
|
+
return self
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
class DiagnosticValueAccessEnum(AREnum):
|
|
428
|
+
READ_ONLY = "readOnly"
|
|
429
|
+
READ_WRITE = "readWrite"
|
|
430
|
+
WRITE_ONLY = "writeOnly"
|
|
431
|
+
|
|
432
|
+
def __init__(self):
|
|
433
|
+
super().__init__((
|
|
434
|
+
DiagnosticValueAccessEnum.READ_ONLY,
|
|
435
|
+
DiagnosticValueAccessEnum.READ_WRITE,
|
|
436
|
+
DiagnosticValueAccessEnum.WRITE_ONLY,
|
|
437
|
+
))
|
|
438
|
+
|
|
439
|
+
class DiagnosticProcessingStyleEnum(AREnum):
|
|
440
|
+
PROCESSING_STYLE_ASYNCHRONOUS = "processingStyleAsynchronous"
|
|
441
|
+
PROCESSING_STYLE_ASYNCHRONOUS_WITH_ERROR = "processingStyleAsynchronousWithError"
|
|
442
|
+
PROCESSING_STYLE_SYNCHRONOUS = "processingStyleSynchronous"
|
|
443
|
+
|
|
444
|
+
def __init__(self):
|
|
445
|
+
super().__init__((
|
|
446
|
+
DiagnosticProcessingStyleEnum.PROCESSING_STYLE_ASYNCHRONOUS,
|
|
447
|
+
DiagnosticProcessingStyleEnum.PROCESSING_STYLE_ASYNCHRONOUS_WITH_ERROR,
|
|
448
|
+
DiagnosticProcessingStyleEnum.PROCESSING_STYLE_SYNCHRONOUS,
|
|
449
|
+
))
|
|
450
|
+
|
|
451
|
+
class DiagnosticValueNeeds(DiagnosticCapabilityElement):
|
|
452
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
453
|
+
super().__init__(parent, short_name)
|
|
454
|
+
|
|
455
|
+
self.dataLength = None # type: PositiveInteger
|
|
456
|
+
self.diagnosticValueAccess = None # type: DiagnosticValueAccessEnum
|
|
457
|
+
self.DidNumber = None # type: Integer
|
|
458
|
+
self.fixedLength = None # type: Boolean
|
|
459
|
+
self.processingStyle = None # type: DiagnosticProcessingStyleEnum
|
|
460
|
+
|
|
461
|
+
def getDataLength(self):
|
|
462
|
+
return self.dataLength
|
|
463
|
+
|
|
464
|
+
def setDataLength(self, value):
|
|
465
|
+
self.dataLength = value
|
|
466
|
+
return self
|
|
467
|
+
|
|
468
|
+
def getDiagnosticValueAccess(self):
|
|
469
|
+
return self.diagnosticValueAccess
|
|
470
|
+
|
|
471
|
+
def setDiagnosticValueAccess(self, value):
|
|
472
|
+
self.diagnosticValueAccess = value
|
|
473
|
+
return self
|
|
474
|
+
|
|
475
|
+
def getDidNumber(self):
|
|
476
|
+
return self.DidNumber
|
|
477
|
+
|
|
478
|
+
def setDidNumber(self, value):
|
|
479
|
+
self.DidNumber = value
|
|
480
|
+
return self
|
|
481
|
+
|
|
482
|
+
def getFixedLength(self):
|
|
483
|
+
return self.fixedLength
|
|
484
|
+
|
|
485
|
+
def setFixedLength(self, value):
|
|
486
|
+
self.fixedLength = value
|
|
487
|
+
return self
|
|
488
|
+
|
|
489
|
+
def getProcessingStyle(self):
|
|
490
|
+
return self.processingStyle
|
|
491
|
+
|
|
492
|
+
def setProcessingStyle(self, value):
|
|
493
|
+
self.processingStyle = value
|
|
494
|
+
return self
|
|
495
|
+
|
|
496
|
+
class DiagEventDebounceAlgorithm(Identifiable, metaclass = ABCMeta):
|
|
497
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
498
|
+
if type(self) == ServiceNeeds:
|
|
499
|
+
raise NotImplementedError("DiagEventDebounceAlgorithm is an abstract class.")
|
|
500
|
+
|
|
501
|
+
super().__init__(parent, short_name)
|
|
502
|
+
|
|
503
|
+
class DiagEventDebounceCounterBased(DiagEventDebounceAlgorithm):
|
|
504
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
505
|
+
super().__init__(parent, short_name)
|
|
506
|
+
|
|
507
|
+
self.counterBasedFdcThresholdStorageValue = None # type: Integer
|
|
508
|
+
self.counterDecrementStepSize = None # type: Integer
|
|
509
|
+
self.counterFailedThreshold = None # type: Integer
|
|
510
|
+
self.counterIncrementStepSize = None # type: Integer
|
|
511
|
+
self.counterJumpDown = None # type: Integer
|
|
512
|
+
self.counterJumpDownValue = None # type: Integer
|
|
513
|
+
self.counterJumpUp = None # type: Integer
|
|
514
|
+
self.counterJumpUpValue = None # type: Integer
|
|
515
|
+
self.counterPassedThreshold = None # type: Integer
|
|
516
|
+
|
|
517
|
+
def getCounterBasedFdcThresholdStorageValue(self):
|
|
518
|
+
return self.counterBasedFdcThresholdStorageValue
|
|
519
|
+
|
|
520
|
+
def setCounterBasedFdcThresholdStorageValue(self, value):
|
|
521
|
+
self.counterBasedFdcThresholdStorageValue = value
|
|
522
|
+
return self
|
|
523
|
+
|
|
524
|
+
def getCounterDecrementStepSize(self):
|
|
525
|
+
return self.counterDecrementStepSize
|
|
526
|
+
|
|
527
|
+
def setCounterDecrementStepSize(self, value):
|
|
528
|
+
self.counterDecrementStepSize = value
|
|
529
|
+
return self
|
|
530
|
+
|
|
531
|
+
def getCounterFailedThreshold(self):
|
|
532
|
+
return self.counterFailedThreshold
|
|
533
|
+
|
|
534
|
+
def setCounterFailedThreshold(self, value):
|
|
535
|
+
self.counterFailedThreshold = value
|
|
536
|
+
return self
|
|
537
|
+
|
|
538
|
+
def getCounterIncrementStepSize(self):
|
|
539
|
+
return self.counterIncrementStepSize
|
|
540
|
+
|
|
541
|
+
def setCounterIncrementStepSize(self, value):
|
|
542
|
+
self.counterIncrementStepSize = value
|
|
543
|
+
return self
|
|
544
|
+
|
|
545
|
+
def getCounterJumpDown(self):
|
|
546
|
+
return self.counterJumpDown
|
|
547
|
+
|
|
548
|
+
def setCounterJumpDown(self, value):
|
|
549
|
+
self.counterJumpDown = value
|
|
550
|
+
return self
|
|
551
|
+
|
|
552
|
+
def getCounterJumpDownValue(self):
|
|
553
|
+
return self.counterJumpDownValue
|
|
554
|
+
|
|
555
|
+
def setCounterJumpDownValue(self, value):
|
|
556
|
+
self.counterJumpDownValue = value
|
|
557
|
+
return self
|
|
558
|
+
|
|
559
|
+
def getCounterJumpUp(self):
|
|
560
|
+
return self.counterJumpUp
|
|
561
|
+
|
|
562
|
+
def setCounterJumpUp(self, value):
|
|
563
|
+
self.counterJumpUp = value
|
|
564
|
+
return self
|
|
565
|
+
|
|
566
|
+
def getCounterJumpUpValue(self):
|
|
567
|
+
return self.counterJumpUpValue
|
|
568
|
+
|
|
569
|
+
def setCounterJumpUpValue(self, value):
|
|
570
|
+
self.counterJumpUpValue = value
|
|
571
|
+
return self
|
|
572
|
+
|
|
573
|
+
def getCounterPassedThreshold(self):
|
|
574
|
+
return self.counterPassedThreshold
|
|
575
|
+
|
|
576
|
+
def setCounterPassedThreshold(self, value):
|
|
577
|
+
self.counterPassedThreshold = value
|
|
578
|
+
return self
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
class DiagEventDebounceMonitorInternal(DiagEventDebounceAlgorithm):
|
|
582
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
583
|
+
super().__init__(parent, short_name)
|
|
584
|
+
|
|
585
|
+
class DiagEventDebounceTimeBased(DiagEventDebounceAlgorithm):
|
|
586
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
587
|
+
super().__init__(parent, short_name)
|
|
588
|
+
|
|
589
|
+
self.timeBasedFdcThresholdStorageValue = None # type: TimeValue
|
|
590
|
+
self.timeFailedThreshold = None # type: TimeValue
|
|
591
|
+
self.timePassedThreshold = None # type: TimeValue
|
|
592
|
+
|
|
593
|
+
def getTimeBasedFdcThresholdStorageValue(self):
|
|
594
|
+
return self.timeBasedFdcThresholdStorageValue
|
|
595
|
+
|
|
596
|
+
def setTimeBasedFdcThresholdStorageValue(self, value):
|
|
597
|
+
self.timeBasedFdcThresholdStorageValue = value
|
|
598
|
+
return self
|
|
599
|
+
|
|
600
|
+
def getTimeFailedThreshold(self):
|
|
601
|
+
return self.timeFailedThreshold
|
|
602
|
+
|
|
603
|
+
def setTimeFailedThreshold(self, value):
|
|
604
|
+
self.timeFailedThreshold = value
|
|
605
|
+
return self
|
|
606
|
+
|
|
607
|
+
def getTimePassedThreshold(self):
|
|
608
|
+
return self.timePassedThreshold
|
|
609
|
+
|
|
610
|
+
def setTimePassedThreshold(self, value):
|
|
611
|
+
self.timePassedThreshold = value
|
|
612
|
+
return self
|
|
613
|
+
|
|
614
|
+
class DiagnosticEventInfoNeeds(DiagnosticCapabilityElement):
|
|
615
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
616
|
+
super().__init__(parent, short_name)
|
|
617
|
+
|
|
618
|
+
# type: PositiveInteger
|
|
619
|
+
self.obdDtcNumber = None
|
|
620
|
+
# type: PositiveInteger
|
|
621
|
+
self.udsDtcNumber = None
|
|
622
|
+
|
|
623
|
+
def getObdDtcNumber(self):
|
|
624
|
+
return self.obdDtcNumber
|
|
625
|
+
|
|
626
|
+
def setObdDtcNumber(self, value):
|
|
627
|
+
self.obdDtcNumber = value
|
|
628
|
+
return self
|
|
629
|
+
|
|
630
|
+
def getUdsDtcNumber(self):
|
|
631
|
+
return self.udsDtcNumber
|
|
632
|
+
|
|
633
|
+
def setUdsDtcNumber(self, value):
|
|
634
|
+
self.udsDtcNumber = value
|
|
635
|
+
return self
|
|
636
|
+
|
|
637
|
+
class DiagnosticEventNeeds(DiagnosticCapabilityElement):
|
|
638
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
639
|
+
super().__init__(parent, short_name)
|
|
640
|
+
|
|
641
|
+
self.deferringFidRefs = [] # type: List[RefType]
|
|
642
|
+
self.diagEventDebounceAlgorithm = None # type: DiagEventDebounceAlgorithm
|
|
643
|
+
self.inhibitingFidRef = None # type: RefType
|
|
644
|
+
self.inhibitingSecondaryFidRef = None # type: RefType
|
|
645
|
+
self.prestoredFreezeframeStoredInNvm = None # type: Boolean
|
|
646
|
+
self.usesMonitorData = None # type: Boolean
|
|
647
|
+
self.dtcKind = None # type: ARLiteral
|
|
648
|
+
self.udsDtcNumber = None # type: Integer
|
|
649
|
+
|
|
650
|
+
def getDeferringFidRefs(self):
|
|
651
|
+
return self.deferringFidRefs
|
|
652
|
+
|
|
653
|
+
def addDeferringFidRef(self, value):
|
|
654
|
+
self.deferringFidRefs.append(value)
|
|
655
|
+
return self
|
|
656
|
+
|
|
657
|
+
def getDiagEventDebounceAlgorithm(self):
|
|
658
|
+
return self.diagEventDebounceAlgorithm
|
|
659
|
+
|
|
660
|
+
def createDiagEventDebounceCounterBased(self, short_name: str):
|
|
661
|
+
if (short_name not in self.elements):
|
|
662
|
+
algorithm = DiagEventDebounceCounterBased(self, short_name)
|
|
663
|
+
self.addElement(algorithm)
|
|
664
|
+
self.diagEventDebounceAlgorithm = algorithm
|
|
665
|
+
return self.getElement(short_name)
|
|
666
|
+
|
|
667
|
+
def createDiagEventDebounceMonitorInternal(self, short_name: str):
|
|
668
|
+
if (short_name not in self.elements):
|
|
669
|
+
algorithm = DiagEventDebounceMonitorInternal(self, short_name)
|
|
670
|
+
self.addElement(algorithm)
|
|
671
|
+
self.diagEventDebounceAlgorithm = algorithm
|
|
672
|
+
return self.getElement(short_name)
|
|
673
|
+
|
|
674
|
+
def createDiagEventDebounceTimeBased(self, short_name: str):
|
|
675
|
+
if (short_name not in self.elements):
|
|
676
|
+
algorithm = DiagEventDebounceTimeBased(self, short_name)
|
|
677
|
+
self.addElement(algorithm)
|
|
678
|
+
self.diagEventDebounceAlgorithm = algorithm
|
|
679
|
+
return self.getElement(short_name)
|
|
680
|
+
|
|
681
|
+
def getInhibitingFidRef(self):
|
|
682
|
+
return self.inhibitingFidRef
|
|
683
|
+
|
|
684
|
+
def setInhibitingFidRef(self, value):
|
|
685
|
+
self.inhibitingFidRef = value
|
|
686
|
+
return self
|
|
687
|
+
|
|
688
|
+
def getInhibitingSecondaryFidRef(self):
|
|
689
|
+
return self.inhibitingSecondaryFidRef
|
|
690
|
+
|
|
691
|
+
def setInhibitingSecondaryFidRef(self, value):
|
|
692
|
+
self.inhibitingSecondaryFidRef = value
|
|
693
|
+
return self
|
|
694
|
+
|
|
695
|
+
def getPrestoredFreezeframeStoredInNvm(self):
|
|
696
|
+
return self.prestoredFreezeframeStoredInNvm
|
|
697
|
+
|
|
698
|
+
def setPrestoredFreezeframeStoredInNvm(self, value):
|
|
699
|
+
self.prestoredFreezeframeStoredInNvm = value
|
|
700
|
+
return self
|
|
701
|
+
|
|
702
|
+
def getUsesMonitorData(self):
|
|
703
|
+
return self.usesMonitorData
|
|
704
|
+
|
|
705
|
+
def setUsesMonitorData(self, value):
|
|
706
|
+
self.usesMonitorData = value
|
|
707
|
+
return self
|
|
708
|
+
|
|
709
|
+
def getDtcKind(self):
|
|
710
|
+
return self.dtcKind
|
|
711
|
+
|
|
712
|
+
def setDtcKind(self, value):
|
|
713
|
+
self.dtcKind = value
|
|
714
|
+
return self
|
|
715
|
+
|
|
716
|
+
def getUdsDtcNumber(self):
|
|
717
|
+
return self.udsDtcNumber
|
|
718
|
+
|
|
719
|
+
def setUdsDtcNumber(self, value):
|
|
720
|
+
self.udsDtcNumber = value
|
|
721
|
+
return self
|
|
722
|
+
|
|
723
|
+
class CryptoServiceNeeds(ServiceNeeds):
|
|
724
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
725
|
+
super().__init__(parent, short_name)
|
|
726
|
+
|
|
727
|
+
self.algorithmFamily = None # type: String
|
|
728
|
+
self.algorithmMode = None # type: String
|
|
729
|
+
self.cryptoKeyDescription = None # type: String
|
|
730
|
+
self.maximumKeyLength = None # type: PositiveInteger
|
|
731
|
+
|
|
732
|
+
def getAlgorithmFamily(self):
|
|
733
|
+
return self.algorithmFamily
|
|
734
|
+
|
|
735
|
+
def setAlgorithmFamily(self, value):
|
|
736
|
+
self.algorithmFamily = value
|
|
737
|
+
return self
|
|
738
|
+
|
|
739
|
+
def getAlgorithmMode(self):
|
|
740
|
+
return self.algorithmMode
|
|
741
|
+
|
|
742
|
+
def setAlgorithmMode(self, value):
|
|
743
|
+
self.algorithmMode = value
|
|
744
|
+
return self
|
|
745
|
+
|
|
746
|
+
def getCryptoKeyDescription(self):
|
|
747
|
+
return self.cryptoKeyDescription
|
|
748
|
+
|
|
749
|
+
def setCryptoKeyDescription(self, value):
|
|
750
|
+
self.cryptoKeyDescription = value
|
|
751
|
+
return self
|
|
752
|
+
|
|
753
|
+
def getMaximumKeyLength(self):
|
|
754
|
+
return self.maximumKeyLength
|
|
755
|
+
|
|
756
|
+
def setMaximumKeyLength(self, value):
|
|
757
|
+
self.maximumKeyLength = value
|
|
758
|
+
return self
|
|
759
|
+
|
|
760
|
+
class EcuStateMgrUserNeeds(ServiceNeeds):
|
|
761
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
762
|
+
super().__init__(parent, short_name)
|