armodel 1.7.0__py3-none-any.whl → 1.7.2__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.
Files changed (47) hide show
  1. armodel/cli/arxml_dump_cli.py +2 -2
  2. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +53 -16
  3. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +41 -19
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +14 -14
  5. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +22 -11
  6. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +26 -9
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +8 -0
  8. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +711 -27
  9. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +1 -1
  10. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +91 -14
  11. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +17 -4
  12. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +78 -11
  13. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +5 -0
  14. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +41 -3
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -15
  16. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -8
  17. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +44 -1
  18. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +46 -5
  19. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +56 -35
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +1 -1
  21. armodel/models/M2/MSR/AsamHdo/AdminData.py +34 -8
  22. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +170 -23
  23. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +4 -4
  24. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +130 -37
  25. armodel/models/M2/MSR/Documentation/Annotation.py +1 -1
  26. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +54 -0
  27. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +9 -0
  28. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +25 -0
  29. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +33 -5
  30. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +15 -2
  31. armodel/models/M2/MSR/Documentation/__init__.py +1 -1
  32. armodel/models/__init__.py +4 -1
  33. armodel/parser/abstract_arxml_parser.py +31 -15
  34. armodel/parser/arxml_parser.py +456 -237
  35. armodel/tests/test_armodel/models/test_ar_ref.py +7 -4
  36. armodel/tests/test_armodel/models/test_datatype.py +4 -4
  37. armodel/tests/test_armodel/models/test_m2_msr.py +5 -5
  38. armodel/tests/test_armodel/parser/test_sw_components.py +10 -1
  39. armodel/tests/test_armodel/parser/test_system.py +0 -1
  40. armodel/writer/abstract_arxml_writer.py +17 -8
  41. armodel/writer/arxml_writer.py +436 -195
  42. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/METADATA +29 -1
  43. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/RECORD +47 -43
  44. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/LICENSE +0 -0
  45. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/WHEEL +0 -0
  46. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/entry_points.txt +0 -0
  47. {armodel-1.7.0.dist-info → armodel-1.7.2.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 ARBoolean, ARLiteral, RefType
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.used_data_element = None # type: AutosarVariableRef
13
- self.used_parameter_element = None # type: AutosarParameterRef
14
- self.used_pim_ref = None # type: RefType
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,688 @@ 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.calc_ram_block_crc = None # type: ARBoolean
30
- self.check_static_block_id = None # type: ARBoolean
31
- self.n_data_sets = None # type: int
32
- self.n_rom_blocks = None # type: int
33
- self.ram_block_status_control = None # type: str
34
- self.readonly = None # type: ARBoolean
35
- self.reliability = None # type: str
36
- self.resistant_to_changed_sw = None # type: ARBoolean
37
- self.restore_at_start = None # type: ARBoolean
38
- self.select_block_for_first_init_all = None # type: ARBoolean
39
- self.store_at_shutdown = None # type: ARBoolean
40
- self.store_cyclic = None # type: ARBoolean
41
- self.store_emergency = None # type: ARBoolean
42
- self.store_immediate = None # type: ARBoolean
43
- self.store_on_change = None # type: ARBoolean
44
- self.use_auto_validation_at_shut_down = None # type: ARBoolean
45
- self.use_crc_comp_mechanism = None # type: ARBoolean
46
- self.write_only_once = None # type: ARBoolean
47
- self.write_verification = None # type: ARBoolean
48
- self.writing_frequency = None # type: ARBoolean
49
- self.writing_priority = None # type: ARBoolean
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
50
230
 
231
+ def getUseAutoValidationAtShutDown(self):
232
+ return self.useAutoValidationAtShutDown
233
+
234
+ def setUseAutoValidationAtShutDown(self, value):
235
+ self.useAutoValidationAtShutDown = value
236
+ return self
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
+
615
+ class DiagnosticEventNeeds(DiagnosticCapabilityElement):
616
+ def __init__(self, parent: ARObject, short_name: str):
617
+ super().__init__(parent, short_name)
618
+
619
+ self.deferringFidRefs = [] # type: List[RefType]
620
+ self.diagEventDebounceAlgorithm = None # type: DiagEventDebounceAlgorithm
621
+ self.inhibitingFidRef = None # type: RefType
622
+ self.inhibitingSecondaryFidRef = None # type: RefType
623
+ self.prestoredFreezeframeStoredInNvm = None # type: Boolean
624
+ self.usesMonitorData = None # type: Boolean
625
+ self.dtcKind = None # type: ARLiteral
626
+ self.udsDtcNumber = None # type: Integer
627
+
628
+ def getDeferringFidRefs(self):
629
+ return self.deferringFidRefs
630
+
631
+ def addDeferringFidRef(self, value):
632
+ self.deferringFidRefs.append(value)
633
+ return self
634
+
635
+ def getDiagEventDebounceAlgorithm(self):
636
+ return self.diagEventDebounceAlgorithm
637
+
638
+ def createDiagEventDebounceCounterBased(self, short_name: str):
639
+ if (short_name not in self.elements):
640
+ algorithm = DiagEventDebounceCounterBased(self, short_name)
641
+ self.addElement(algorithm)
642
+ self.diagEventDebounceAlgorithm = algorithm
643
+ return self.getElement(short_name)
644
+
645
+ def createDiagEventDebounceMonitorInternal(self, short_name: str):
646
+ if (short_name not in self.elements):
647
+ algorithm = DiagEventDebounceMonitorInternal(self, short_name)
648
+ self.addElement(algorithm)
649
+ self.diagEventDebounceAlgorithm = algorithm
650
+ return self.getElement(short_name)
651
+
652
+ def createDiagEventDebounceTimeBased(self, short_name: str):
653
+ if (short_name not in self.elements):
654
+ algorithm = DiagEventDebounceTimeBased(self, short_name)
655
+ self.addElement(algorithm)
656
+ self.diagEventDebounceAlgorithm = algorithm
657
+ return self.getElement(short_name)
658
+
659
+ def getInhibitingFidRef(self):
660
+ return self.inhibitingFidRef
661
+
662
+ def setInhibitingFidRef(self, value):
663
+ self.inhibitingFidRef = value
664
+ return self
665
+
666
+ def getInhibitingSecondaryFidRef(self):
667
+ return self.inhibitingSecondaryFidRef
668
+
669
+ def setInhibitingSecondaryFidRef(self, value):
670
+ self.inhibitingSecondaryFidRef = value
671
+ return self
672
+
673
+ def getPrestoredFreezeframeStoredInNvm(self):
674
+ return self.prestoredFreezeframeStoredInNvm
675
+
676
+ def setPrestoredFreezeframeStoredInNvm(self, value):
677
+ self.prestoredFreezeframeStoredInNvm = value
678
+ return self
679
+
680
+ def getUsesMonitorData(self):
681
+ return self.usesMonitorData
682
+
683
+ def setUsesMonitorData(self, value):
684
+ self.usesMonitorData = value
685
+ return self
686
+
687
+ def getDtcKind(self):
688
+ return self.dtcKind
689
+
690
+ def setDtcKind(self, value):
691
+ self.dtcKind = value
692
+ return self
693
+
694
+ def getUdsDtcNumber(self):
695
+ return self.udsDtcNumber
696
+
697
+ def setUdsDtcNumber(self, value):
698
+ self.udsDtcNumber = value
699
+ return self
700
+
701
+
702
+
703
+ class CryptoServiceNeeds(ServiceNeeds):
704
+ def __init__(self, parent: ARObject, short_name: str):
705
+ super().__init__(parent, short_name)
706
+
707
+ self.algorithmFamily = None # type: String
708
+ self.algorithmMode = None # type: String
709
+ self.cryptoKeyDescription = None # type: String
710
+ self.maximumKeyLength = None # type: PositiveInteger
711
+
712
+ def getAlgorithmFamily(self):
713
+ return self.algorithmFamily
714
+
715
+ def setAlgorithmFamily(self, value):
716
+ self.algorithmFamily = value
717
+ return self
718
+
719
+ def getAlgorithmMode(self):
720
+ return self.algorithmMode
721
+
722
+ def setAlgorithmMode(self, value):
723
+ self.algorithmMode = value
724
+ return self
725
+
726
+ def getCryptoKeyDescription(self):
727
+ return self.cryptoKeyDescription
728
+
729
+ def setCryptoKeyDescription(self, value):
730
+ self.cryptoKeyDescription = value
731
+ return self
732
+
733
+ def getMaximumKeyLength(self):
734
+ return self.maximumKeyLength
735
+
736
+ def setMaximumKeyLength(self, value):
737
+ self.maximumKeyLength = value
738
+ return self