armodel 1.7.6__py3-none-any.whl → 1.7.8__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 +33 -22
- armodel/cli/arxml_format_cli.py +25 -13
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +95 -21
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +359 -59
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +134 -35
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +17 -7
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +10 -1
- armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +18 -2
- armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +20 -19
- armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +59 -0
- armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +145 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +215 -157
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +69 -35
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +17 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +19 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +113 -39
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +3 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +41 -16
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +10 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +13 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +111 -38
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +9 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +5 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +26 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +28 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +167 -5
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +29 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/EcuResourceMapping.py +45 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +31 -21
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +5 -3
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +9 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +76 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +654 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +539 -77
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +158 -40
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +28 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +2 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +245 -130
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +27 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +524 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +592 -17
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +33 -21
- armodel/models/M2/MSR/AsamHdo/AdminData.py +1 -2
- armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +3 -1
- armodel/models/M2/MSR/AsamHdo/SpecialData.py +35 -8
- armodel/models/M2/MSR/DataDictionary/RecordLayout.py +0 -3
- armodel/models/__init__.py +8 -0
- armodel/parser/abstract_arxml_parser.py +34 -27
- armodel/parser/arxml_parser.py +1778 -616
- armodel/parser/file_parser.py +5 -3
- armodel/tests/test_armodel/models/test_ar_package.py +6 -11
- armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -3
- armodel/tests/test_armodel/models/test_datatype.py +1 -1
- armodel/tests/test_armodel/models/test_port_interface.py +116 -117
- armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +218 -0
- armodel/tests/test_armodel/parser/test_sw_components.py +54 -22
- armodel/tests/test_armodel/parser/test_system.py +2 -8
- armodel/transformer/__init__.py +0 -0
- armodel/transformer/abstract.py +6 -0
- armodel/transformer/admin_data.py +31 -0
- armodel/writer/abstract_arxml_writer.py +27 -33
- armodel/writer/arxml_writer.py +1875 -599
- {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/METADATA +81 -3
- {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/RECORD +69 -56
- {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/LICENSE +0 -0
- {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/WHEEL +0 -0
- {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/top_level.txt +0 -0
|
@@ -2,11 +2,15 @@ from abc import ABCMeta
|
|
|
2
2
|
from typing import List
|
|
3
3
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, Describable
|
|
4
4
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
5
|
-
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, Boolean
|
|
5
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, Boolean
|
|
6
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, PositiveInteger, RefType, ARBoolean, String
|
|
7
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import TimeValue, UnlimitedInteger
|
|
6
8
|
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeDeclaration
|
|
7
|
-
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class FibexElement(Identifiable, metaclass=ABCMeta):
|
|
8
12
|
def __init__(self, parent: ARObject, short_name: str):
|
|
9
|
-
if type(self)
|
|
13
|
+
if type(self) is FibexElement:
|
|
10
14
|
raise NotImplementedError("FibexElement is an abstract class.")
|
|
11
15
|
|
|
12
16
|
super().__init__(parent, short_name)
|
|
@@ -49,9 +53,10 @@ class PduToFrameMapping(Identifiable):
|
|
|
49
53
|
self.updateIndicationBitPosition = value
|
|
50
54
|
return self
|
|
51
55
|
|
|
52
|
-
|
|
56
|
+
|
|
57
|
+
class Frame(Identifiable, metaclass=ABCMeta):
|
|
53
58
|
def __init__(self, parent: ARObject, short_name: str):
|
|
54
|
-
if type(self)
|
|
59
|
+
if type(self) is Frame:
|
|
55
60
|
raise NotImplementedError("Frame is an abstract class.")
|
|
56
61
|
|
|
57
62
|
super().__init__(parent, short_name)
|
|
@@ -74,8 +79,9 @@ class Frame(Identifiable, metaclass = ABCMeta):
|
|
|
74
79
|
return self.elements[short_name]
|
|
75
80
|
|
|
76
81
|
def getPduToFrameMappings(self) -> List[PduToFrameMapping]:
|
|
77
|
-
return list(sorted(filter(lambda a: isinstance(a, PduToFrameMapping), self.elements.values()), key=
|
|
78
|
-
|
|
82
|
+
return list(sorted(filter(lambda a: isinstance(a, PduToFrameMapping), self.elements.values()), key=lambda o: o.short_name))
|
|
83
|
+
|
|
84
|
+
|
|
79
85
|
class ContainedIPduProps(ARObject):
|
|
80
86
|
def __init__(self):
|
|
81
87
|
super().__init__()
|
|
@@ -137,20 +143,22 @@ class ContainedIPduProps(ARObject):
|
|
|
137
143
|
self.updateIndicationBitPosition = value
|
|
138
144
|
return self
|
|
139
145
|
|
|
146
|
+
|
|
140
147
|
class ISignalGroup(FibexElement):
|
|
141
148
|
def __init__(self, parent, short_name):
|
|
142
149
|
super().__init__(parent, short_name)
|
|
143
150
|
|
|
144
|
-
self.
|
|
151
|
+
self.comBasedSignalGroupTransformationRefs = [] # type: List[RefType]
|
|
145
152
|
self.iSignalRefs = [] # type: List[RefType]
|
|
146
153
|
self.systemSignalGroupRef = None
|
|
147
154
|
self.transformationISignalProps = None
|
|
148
155
|
|
|
149
|
-
def
|
|
150
|
-
return self.
|
|
156
|
+
def getComBasedSignalGroupTransformationRefs(self):
|
|
157
|
+
return self.comBasedSignalGroupTransformationRefs
|
|
151
158
|
|
|
152
|
-
def
|
|
153
|
-
|
|
159
|
+
def addComBasedSignalGroupTransformationRef(self, value):
|
|
160
|
+
if value is not None:
|
|
161
|
+
self.comBasedSignalGroupTransformationRefs.append(value)
|
|
154
162
|
return self
|
|
155
163
|
|
|
156
164
|
def getISignalRefs(self):
|
|
@@ -219,15 +227,25 @@ class ISignalIPduGroup(FibexElement):
|
|
|
219
227
|
def addNmPduRef(self, value):
|
|
220
228
|
self.nmPduRefs.append(value)
|
|
221
229
|
return self
|
|
222
|
-
|
|
223
|
-
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
class Pdu(FibexElement, metaclass=ABCMeta):
|
|
224
233
|
def __init__(self, parent: ARObject, short_name: str):
|
|
225
|
-
if type(self)
|
|
234
|
+
if type(self) is Pdu:
|
|
226
235
|
raise NotImplementedError("Pdu is an abstract class.")
|
|
227
236
|
|
|
228
237
|
super().__init__(parent, short_name)
|
|
229
238
|
|
|
230
|
-
self.
|
|
239
|
+
self.hasDynamicLength = None # type: Boolean
|
|
240
|
+
self.length = None # type: UnlimitedInteger
|
|
241
|
+
|
|
242
|
+
def getHasDynamicLength(self):
|
|
243
|
+
return self.hasDynamicLength
|
|
244
|
+
|
|
245
|
+
def setHasDynamicLength(self, value):
|
|
246
|
+
if value is not None:
|
|
247
|
+
self.hasDynamicLength = value
|
|
248
|
+
return self
|
|
231
249
|
|
|
232
250
|
def getLength(self):
|
|
233
251
|
return self.length
|
|
@@ -236,69 +254,227 @@ class Pdu(FibexElement, metaclass = ABCMeta):
|
|
|
236
254
|
self.length = value
|
|
237
255
|
return self
|
|
238
256
|
|
|
239
|
-
|
|
257
|
+
|
|
258
|
+
class IPdu(Pdu, metaclass=ABCMeta):
|
|
240
259
|
def __init__(self, parent: ARObject, short_name: str):
|
|
241
|
-
if type(self)
|
|
260
|
+
if type(self) is IPdu:
|
|
242
261
|
raise NotImplementedError("IPdu is an abstract class.")
|
|
243
262
|
|
|
244
263
|
super().__init__(parent, short_name)
|
|
245
264
|
|
|
246
|
-
|
|
265
|
+
# type: ContainedIPduProps
|
|
266
|
+
self.containedIPduProps = None
|
|
267
|
+
|
|
268
|
+
def getContainedIPduProps(self):
|
|
269
|
+
return self.containedIPduProps
|
|
270
|
+
|
|
271
|
+
def setContainedIPduProps(self, value):
|
|
272
|
+
if value is not None:
|
|
273
|
+
self.containedIPduProps = value
|
|
274
|
+
return self
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
class SecureCommunicationProps(ARObject):
|
|
278
|
+
def __init__(self):
|
|
279
|
+
super().__init__()
|
|
280
|
+
|
|
281
|
+
self.authDataFreshnessLength = None # type: PositiveInteger
|
|
282
|
+
self.authDataFreshnessStartPosition = None # type: PositiveInteger
|
|
283
|
+
self.authInfoTxLength = None # type: PositiveInteger
|
|
284
|
+
self.authenticationBuildAttempts = None # type: PositiveInteger
|
|
285
|
+
self.authenticationRetries = None # type: PositiveInteger
|
|
286
|
+
self.dataId = None # type: PositiveInteger
|
|
287
|
+
self.freshnessValueId = None # type: PositiveInteger
|
|
288
|
+
self.freshnessValueLength = None # type: PositiveInteger
|
|
289
|
+
self.freshnessValueTxLength = None # type: PositiveInteger
|
|
290
|
+
self.messageLinkLength = None # type: PositiveInteger
|
|
291
|
+
self.messageLinkPosition = None # type: PositiveInteger
|
|
292
|
+
self.secondaryFreshnessValueId = None # type: PositiveInteger
|
|
293
|
+
self.securedAreaLength = None # type: PositiveInteger
|
|
294
|
+
self.securedAreaOffset = None # type: PositiveInteger
|
|
295
|
+
|
|
296
|
+
def getAuthDataFreshnessLength(self):
|
|
297
|
+
return self.authDataFreshnessLength
|
|
298
|
+
|
|
299
|
+
def setAuthDataFreshnessLength(self, value):
|
|
300
|
+
if value is not None:
|
|
301
|
+
self.authDataFreshnessLength = value
|
|
302
|
+
return self
|
|
303
|
+
|
|
304
|
+
def getAuthDataFreshnessStartPosition(self):
|
|
305
|
+
return self.authDataFreshnessStartPosition
|
|
306
|
+
|
|
307
|
+
def setAuthDataFreshnessStartPosition(self, value):
|
|
308
|
+
if value is not None:
|
|
309
|
+
self.authDataFreshnessStartPosition = value
|
|
310
|
+
return self
|
|
311
|
+
|
|
312
|
+
def getAuthInfoTxLength(self):
|
|
313
|
+
return self.authInfoTxLength
|
|
314
|
+
|
|
315
|
+
def setAuthInfoTxLength(self, value):
|
|
316
|
+
if value is not None:
|
|
317
|
+
self.authInfoTxLength = value
|
|
318
|
+
return self
|
|
319
|
+
|
|
320
|
+
def getAuthenticationBuildAttempts(self):
|
|
321
|
+
return self.authenticationBuildAttempts
|
|
247
322
|
|
|
248
|
-
def
|
|
249
|
-
|
|
323
|
+
def setAuthenticationBuildAttempts(self, value):
|
|
324
|
+
if value is not None:
|
|
325
|
+
self.authenticationBuildAttempts = value
|
|
326
|
+
return self
|
|
327
|
+
|
|
328
|
+
def getAuthenticationRetries(self):
|
|
329
|
+
return self.authenticationRetries
|
|
330
|
+
|
|
331
|
+
def setAuthenticationRetries(self, value):
|
|
332
|
+
if value is not None:
|
|
333
|
+
self.authenticationRetries = value
|
|
334
|
+
return self
|
|
335
|
+
|
|
336
|
+
def getDataId(self):
|
|
337
|
+
return self.dataId
|
|
338
|
+
|
|
339
|
+
def setDataId(self, value):
|
|
340
|
+
if value is not None:
|
|
341
|
+
self.dataId = value
|
|
342
|
+
return self
|
|
250
343
|
|
|
251
|
-
def
|
|
252
|
-
self.
|
|
344
|
+
def getFreshnessValueId(self):
|
|
345
|
+
return self.freshnessValueId
|
|
346
|
+
|
|
347
|
+
def setFreshnessValueId(self, value):
|
|
348
|
+
if value is not None:
|
|
349
|
+
self.freshnessValueId = value
|
|
253
350
|
return self
|
|
254
351
|
|
|
352
|
+
def getFreshnessValueLength(self):
|
|
353
|
+
return self.freshnessValueLength
|
|
354
|
+
|
|
355
|
+
def setFreshnessValueLength(self, value):
|
|
356
|
+
if value is not None:
|
|
357
|
+
self.freshnessValueLength = value
|
|
358
|
+
return self
|
|
359
|
+
|
|
360
|
+
def getFreshnessValueTxLength(self):
|
|
361
|
+
return self.freshnessValueTxLength
|
|
362
|
+
|
|
363
|
+
def setFreshnessValueTxLength(self, value):
|
|
364
|
+
if value is not None:
|
|
365
|
+
self.freshnessValueTxLength = value
|
|
366
|
+
return self
|
|
367
|
+
|
|
368
|
+
def getMessageLinkLength(self):
|
|
369
|
+
return self.messageLinkLength
|
|
370
|
+
|
|
371
|
+
def setMessageLinkLength(self, value):
|
|
372
|
+
if value is not None:
|
|
373
|
+
self.messageLinkLength = value
|
|
374
|
+
return self
|
|
375
|
+
|
|
376
|
+
def getMessageLinkPosition(self):
|
|
377
|
+
return self.messageLinkPosition
|
|
378
|
+
|
|
379
|
+
def setMessageLinkPosition(self, value):
|
|
380
|
+
if value is not None:
|
|
381
|
+
self.messageLinkPosition = value
|
|
382
|
+
return self
|
|
383
|
+
|
|
384
|
+
def getSecondaryFreshnessValueId(self):
|
|
385
|
+
return self.secondaryFreshnessValueId
|
|
386
|
+
|
|
387
|
+
def setSecondaryFreshnessValueId(self, value):
|
|
388
|
+
if value is not None:
|
|
389
|
+
self.secondaryFreshnessValueId = value
|
|
390
|
+
return self
|
|
391
|
+
|
|
392
|
+
def getSecuredAreaLength(self):
|
|
393
|
+
return self.securedAreaLength
|
|
394
|
+
|
|
395
|
+
def setSecuredAreaLength(self, value):
|
|
396
|
+
if value is not None:
|
|
397
|
+
self.securedAreaLength = value
|
|
398
|
+
return self
|
|
399
|
+
|
|
400
|
+
def getSecuredAreaOffset(self):
|
|
401
|
+
return self.securedAreaOffset
|
|
402
|
+
|
|
403
|
+
def setSecuredAreaOffset(self, value):
|
|
404
|
+
if value is not None:
|
|
405
|
+
self.securedAreaOffset = value
|
|
406
|
+
return self
|
|
407
|
+
|
|
408
|
+
|
|
255
409
|
class SecuredIPdu(IPdu):
|
|
256
410
|
def __init__(self, parent: ARObject, short_name: str):
|
|
257
411
|
super().__init__(parent, short_name)
|
|
258
|
-
|
|
259
|
-
class NmPdu(Pdu):
|
|
260
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
261
|
-
super().__init__(parent, short_name)
|
|
262
|
-
|
|
263
412
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
413
|
+
self.authenticationPropsRef = None # type: RefType
|
|
414
|
+
self.dynamicRuntimeLengthHandling = None # type: Boolean
|
|
415
|
+
self.freshnessPropsRef = None # type: RefType
|
|
416
|
+
self.payloadRef = None # type: RefType
|
|
417
|
+
self.secureCommunicationProps = None # type: SecureCommunicationProps
|
|
418
|
+
self.useAsCryptographicIPdu = None # type: Boolean
|
|
419
|
+
self.useSecuredPduHeader = None # type: SecuredPduHeaderEnum
|
|
267
420
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
super().__init__(parent, short_name)
|
|
421
|
+
def getAuthenticationPropsRef(self):
|
|
422
|
+
return self.authenticationPropsRef
|
|
271
423
|
|
|
272
|
-
|
|
424
|
+
def setAuthenticationPropsRef(self, value):
|
|
425
|
+
if value is not None:
|
|
426
|
+
self.authenticationPropsRef = value
|
|
427
|
+
return self
|
|
273
428
|
|
|
274
|
-
def
|
|
275
|
-
return self.
|
|
429
|
+
def getDynamicRuntimeLengthHandling(self):
|
|
430
|
+
return self.dynamicRuntimeLengthHandling
|
|
276
431
|
|
|
277
|
-
def
|
|
278
|
-
|
|
432
|
+
def setDynamicRuntimeLengthHandling(self, value):
|
|
433
|
+
if value is not None:
|
|
434
|
+
self.dynamicRuntimeLengthHandling = value
|
|
279
435
|
return self
|
|
280
436
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
super().__init__()
|
|
437
|
+
def getFreshnessPropsRef(self):
|
|
438
|
+
return self.freshnessPropsRef
|
|
284
439
|
|
|
285
|
-
|
|
286
|
-
|
|
440
|
+
def setFreshnessPropsRef(self, value):
|
|
441
|
+
if value is not None:
|
|
442
|
+
self.freshnessPropsRef = value
|
|
443
|
+
return self
|
|
287
444
|
|
|
288
|
-
def
|
|
289
|
-
return self.
|
|
445
|
+
def getPayloadRef(self):
|
|
446
|
+
return self.payloadRef
|
|
290
447
|
|
|
291
|
-
def
|
|
292
|
-
|
|
448
|
+
def setPayloadRef(self, value):
|
|
449
|
+
if value is not None:
|
|
450
|
+
self.payloadRef = value
|
|
293
451
|
return self
|
|
294
452
|
|
|
295
|
-
def
|
|
296
|
-
return self.
|
|
453
|
+
def getSecureCommunicationProps(self):
|
|
454
|
+
return self.secureCommunicationProps
|
|
297
455
|
|
|
298
|
-
def
|
|
299
|
-
|
|
456
|
+
def setSecureCommunicationProps(self, value):
|
|
457
|
+
if value is not None:
|
|
458
|
+
self.secureCommunicationProps = value
|
|
300
459
|
return self
|
|
301
|
-
|
|
460
|
+
|
|
461
|
+
def getUseAsCryptographicIPdu(self):
|
|
462
|
+
return self.useAsCryptographicIPdu
|
|
463
|
+
|
|
464
|
+
def setUseAsCryptographicIPdu(self, value):
|
|
465
|
+
if value is not None:
|
|
466
|
+
self.useAsCryptographicIPdu = value
|
|
467
|
+
return self
|
|
468
|
+
|
|
469
|
+
def getUseSecuredPduHeader(self):
|
|
470
|
+
return self.useSecuredPduHeader
|
|
471
|
+
|
|
472
|
+
def setUseSecuredPduHeader(self, value):
|
|
473
|
+
if value is not None:
|
|
474
|
+
self.useSecuredPduHeader = value
|
|
475
|
+
return self
|
|
476
|
+
|
|
477
|
+
|
|
302
478
|
class ISignalToIPduMapping(Identifiable):
|
|
303
479
|
def __init__(self, parent, short_name):
|
|
304
480
|
super().__init__(parent, short_name)
|
|
@@ -306,10 +482,9 @@ class ISignalToIPduMapping(Identifiable):
|
|
|
306
482
|
self.iSignalRef = None # type: RefType
|
|
307
483
|
self.iSignalGroupRef = None # type: RefType
|
|
308
484
|
self.packingByteOrder = None # type: ByteOrderEnum
|
|
309
|
-
self.startPosition = None # type:
|
|
310
|
-
# type: TransferPropertyEnum
|
|
311
|
-
self.
|
|
312
|
-
self.updateIndicationBitPosition = None # type: ARNumerical
|
|
485
|
+
self.startPosition = None # type: UnlimitedInteger
|
|
486
|
+
self.transferProperty = None # type: TransferPropertyEnum
|
|
487
|
+
self.updateIndicationBitPosition = None # type: UnlimitedInteger
|
|
313
488
|
|
|
314
489
|
def getISignalRef(self):
|
|
315
490
|
return self.iSignalRef
|
|
@@ -353,14 +528,99 @@ class ISignalToIPduMapping(Identifiable):
|
|
|
353
528
|
self.updateIndicationBitPosition = value
|
|
354
529
|
return self
|
|
355
530
|
|
|
356
|
-
|
|
531
|
+
|
|
532
|
+
class NmPdu(Pdu):
|
|
533
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
534
|
+
super().__init__(parent, short_name)
|
|
535
|
+
|
|
536
|
+
self.iSignalToIPduMappings = [] # type: List[ISignalToIPduMapping]
|
|
537
|
+
self.nmDataInformation = None # type: Boolean
|
|
538
|
+
self.nmVoteInformation = None # type: Boolean
|
|
539
|
+
self.unusedBitPattern = None # type: Integer
|
|
540
|
+
|
|
541
|
+
def getISignalToIPduMappings(self):
|
|
542
|
+
return self.iSignalToIPduMappings
|
|
543
|
+
|
|
544
|
+
def createISignalToIPduMapping(self, short_name: str) -> ISignalToIPduMapping:
|
|
545
|
+
if (not self.IsElementExists(short_name)):
|
|
546
|
+
mapping = ISignalToIPduMapping(self, short_name)
|
|
547
|
+
self.addElement(mapping)
|
|
548
|
+
self.iSignalToIPduMappings.append(mapping)
|
|
549
|
+
return self.getElement(short_name)
|
|
550
|
+
|
|
551
|
+
def getNmDataInformation(self):
|
|
552
|
+
return self.nmDataInformation
|
|
553
|
+
|
|
554
|
+
def setNmDataInformation(self, value):
|
|
555
|
+
if value is not None:
|
|
556
|
+
self.nmDataInformation = value
|
|
557
|
+
return self
|
|
558
|
+
|
|
559
|
+
def getNmVoteInformation(self):
|
|
560
|
+
return self.nmVoteInformation
|
|
561
|
+
|
|
562
|
+
def setNmVoteInformation(self, value):
|
|
563
|
+
if value is not None:
|
|
564
|
+
self.nmVoteInformation = value
|
|
565
|
+
return self
|
|
566
|
+
|
|
567
|
+
def getUnusedBitPattern(self):
|
|
568
|
+
return self.unusedBitPattern
|
|
569
|
+
|
|
570
|
+
def setUnusedBitPattern(self, value):
|
|
571
|
+
if value is not None:
|
|
572
|
+
self.unusedBitPattern = value
|
|
573
|
+
return self
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
class NPdu(IPdu):
|
|
577
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
578
|
+
super().__init__(parent, short_name)
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
class DcmIPdu(IPdu):
|
|
582
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
583
|
+
super().__init__(parent, short_name)
|
|
584
|
+
|
|
585
|
+
self.diagPduType = None # type: ARLiteral
|
|
586
|
+
|
|
587
|
+
def getDiagPduType(self):
|
|
588
|
+
return self.diagPduType
|
|
589
|
+
|
|
590
|
+
def setDiagPduType(self, value):
|
|
591
|
+
self.diagPduType = value
|
|
592
|
+
return self
|
|
593
|
+
|
|
594
|
+
|
|
595
|
+
class IPduTiming(Describable):
|
|
596
|
+
def __init__(self):
|
|
597
|
+
super().__init__()
|
|
598
|
+
|
|
599
|
+
self.minimumDelay = None # type: TimeValue
|
|
600
|
+
self.transmissionModeDeclaration = None # type: TransmissionModeDeclaration
|
|
601
|
+
|
|
602
|
+
def getMinimumDelay(self):
|
|
603
|
+
return self.minimumDelay
|
|
604
|
+
|
|
605
|
+
def setMinimumDelay(self, value):
|
|
606
|
+
self.minimumDelay = value
|
|
607
|
+
return self
|
|
608
|
+
|
|
609
|
+
def getTransmissionModeDeclaration(self):
|
|
610
|
+
return self.transmissionModeDeclaration
|
|
611
|
+
|
|
612
|
+
def setTransmissionModeDeclaration(self, value):
|
|
613
|
+
self.transmissionModeDeclaration = value
|
|
614
|
+
return self
|
|
615
|
+
|
|
616
|
+
|
|
357
617
|
class ISignalIPdu(IPdu):
|
|
358
618
|
def __init__(self, parent, short_name):
|
|
359
619
|
super().__init__(parent, short_name)
|
|
360
620
|
|
|
361
621
|
self.iPduTimingSpecification = None # type: IPduTiming
|
|
362
622
|
self.iSignalToPduMappings = [] # type: List[ISignalToIPduMapping]
|
|
363
|
-
self.unusedBitPattern = None # type:
|
|
623
|
+
self.unusedBitPattern = None # type: Integer
|
|
364
624
|
|
|
365
625
|
def getIPduTimingSpecification(self):
|
|
366
626
|
return self.iPduTimingSpecification
|
|
@@ -471,7 +731,8 @@ class ISignal(FibexElement):
|
|
|
471
731
|
def addTransformationISignalProps(self, value):
|
|
472
732
|
self.transformationISignalProps.append(value)
|
|
473
733
|
return self
|
|
474
|
-
|
|
734
|
+
|
|
735
|
+
|
|
475
736
|
class PduTriggering(Identifiable):
|
|
476
737
|
def __init__(self, parent, short_name):
|
|
477
738
|
super().__init__(parent, short_name)
|
|
@@ -497,7 +758,8 @@ class PduTriggering(Identifiable):
|
|
|
497
758
|
return self
|
|
498
759
|
|
|
499
760
|
def getISignalTriggeringRefs(self):
|
|
500
|
-
return sorted(self.iSignalTriggeringRefs, key = lambda i: i.getShortValue())
|
|
761
|
+
# return sorted(self.iSignalTriggeringRefs, key = lambda i: i.getShortValue())
|
|
762
|
+
return self.iSignalTriggeringRefs
|
|
501
763
|
|
|
502
764
|
def addISignalTriggeringRef(self, value):
|
|
503
765
|
self.iSignalTriggeringRefs.append(value)
|
|
@@ -518,9 +780,9 @@ class PduTriggering(Identifiable):
|
|
|
518
780
|
return self
|
|
519
781
|
|
|
520
782
|
|
|
521
|
-
class FrameTriggering(Identifiable, metaclass
|
|
783
|
+
class FrameTriggering(Identifiable, metaclass=ABCMeta):
|
|
522
784
|
def __init__(self, parent, short_name):
|
|
523
|
-
if type(self)
|
|
785
|
+
if type(self) is FrameTriggering:
|
|
524
786
|
raise NotImplementedError("FrameTriggering is an abstract class.")
|
|
525
787
|
|
|
526
788
|
super().__init__(parent, short_name)
|
|
@@ -550,6 +812,7 @@ class FrameTriggering(Identifiable, metaclass = ABCMeta):
|
|
|
550
812
|
self.pduTriggeringRefs.append(value)
|
|
551
813
|
return self
|
|
552
814
|
|
|
815
|
+
|
|
553
816
|
class SystemSignal(ARElement):
|
|
554
817
|
def __init__(self, parent, short_name):
|
|
555
818
|
super().__init__(parent, short_name)
|
|
@@ -571,6 +834,7 @@ class SystemSignal(ARElement):
|
|
|
571
834
|
self.physicalProps = value
|
|
572
835
|
return self
|
|
573
836
|
|
|
837
|
+
|
|
574
838
|
class SystemSignalGroup(ARElement):
|
|
575
839
|
def __init__(self, parent, short_name):
|
|
576
840
|
super().__init__(parent, short_name)
|
|
@@ -581,7 +845,7 @@ class SystemSignalGroup(ARElement):
|
|
|
581
845
|
def getSystemSignalRefs(self):
|
|
582
846
|
return self.systemSignalRefs
|
|
583
847
|
|
|
584
|
-
def addSystemSignalRefs(self, value:RefType):
|
|
848
|
+
def addSystemSignalRefs(self, value: RefType):
|
|
585
849
|
self.systemSignalRefs.append(value)
|
|
586
850
|
return self
|
|
587
851
|
|
|
@@ -592,6 +856,7 @@ class SystemSignalGroup(ARElement):
|
|
|
592
856
|
self.transformingSystemSignalRef = value
|
|
593
857
|
return self
|
|
594
858
|
|
|
859
|
+
|
|
595
860
|
class ISignalTriggering(Identifiable):
|
|
596
861
|
def __init__(self, parent, short_name):
|
|
597
862
|
super().__init__(parent, short_name)
|
|
@@ -621,6 +886,121 @@ class ISignalTriggering(Identifiable):
|
|
|
621
886
|
self.iSignalPortRefs.append(value)
|
|
622
887
|
return self
|
|
623
888
|
|
|
889
|
+
|
|
890
|
+
class SegmentPosition(ARObject):
|
|
891
|
+
def __init__(self):
|
|
892
|
+
super().__init__()
|
|
893
|
+
|
|
894
|
+
self.segmentByteOrder = None # type: ByteOrderEnum
|
|
895
|
+
self.segmentLength = None # type: Integer
|
|
896
|
+
self.segmentPosition = None # type: Integer
|
|
897
|
+
|
|
898
|
+
def getSegmentByteOrder(self):
|
|
899
|
+
return self.segmentByteOrder
|
|
900
|
+
|
|
901
|
+
def setSegmentByteOrder(self, value):
|
|
902
|
+
if value is not None:
|
|
903
|
+
self.segmentByteOrder = value
|
|
904
|
+
return self
|
|
905
|
+
|
|
906
|
+
def getSegmentLength(self):
|
|
907
|
+
return self.segmentLength
|
|
908
|
+
|
|
909
|
+
def setSegmentLength(self, value):
|
|
910
|
+
if value is not None:
|
|
911
|
+
self.segmentLength = value
|
|
912
|
+
return self
|
|
913
|
+
|
|
914
|
+
def getSegmentPosition(self):
|
|
915
|
+
return self.segmentPosition
|
|
916
|
+
|
|
917
|
+
def setSegmentPosition(self, value):
|
|
918
|
+
if value is not None:
|
|
919
|
+
self.segmentPosition = value
|
|
920
|
+
return self
|
|
921
|
+
|
|
922
|
+
|
|
923
|
+
class MultiplexedPart(ARObject, metaclass=ABCMeta):
|
|
924
|
+
def __init__(self):
|
|
925
|
+
if type(self) is MultiplexedPart:
|
|
926
|
+
raise NotImplementedError("MultiplexedPart is an abstract class.")
|
|
927
|
+
|
|
928
|
+
super().__init__()
|
|
929
|
+
|
|
930
|
+
self.segmentPositions = [] # type: List[SegmentPosition]
|
|
931
|
+
|
|
932
|
+
def getSegmentPositions(self):
|
|
933
|
+
return self.segmentPositions
|
|
934
|
+
|
|
935
|
+
def addSegmentPosition(self, value):
|
|
936
|
+
if value is not None:
|
|
937
|
+
self.segmentPositions.append(value)
|
|
938
|
+
return self
|
|
939
|
+
|
|
940
|
+
|
|
941
|
+
class StaticPart(MultiplexedPart):
|
|
942
|
+
def __init__(self):
|
|
943
|
+
super().__init__()
|
|
944
|
+
|
|
945
|
+
self.iPduRef = None # type: RefType
|
|
946
|
+
|
|
947
|
+
def getIPduRef(self):
|
|
948
|
+
return self.iPduRef
|
|
949
|
+
|
|
950
|
+
def setIPduRef(self, value):
|
|
951
|
+
if value is not None:
|
|
952
|
+
self.iPduRef = value
|
|
953
|
+
return self
|
|
954
|
+
|
|
955
|
+
|
|
956
|
+
class DynamicPartAlternative(ARObject):
|
|
957
|
+
def __init__(self):
|
|
958
|
+
super().__init__()
|
|
959
|
+
|
|
960
|
+
self.initialDynamicPart = None # type: Boolean
|
|
961
|
+
self.iPduRef = None # type: RefType
|
|
962
|
+
self.selectorFieldCode = None # type: Integer
|
|
963
|
+
|
|
964
|
+
def getInitialDynamicPart(self):
|
|
965
|
+
return self.initialDynamicPart
|
|
966
|
+
|
|
967
|
+
def setInitialDynamicPart(self, value):
|
|
968
|
+
if value is not None:
|
|
969
|
+
self.initialDynamicPart = value
|
|
970
|
+
return self
|
|
971
|
+
|
|
972
|
+
def getIPduRef(self):
|
|
973
|
+
return self.iPduRef
|
|
974
|
+
|
|
975
|
+
def setIPduRef(self, value):
|
|
976
|
+
if value is not None:
|
|
977
|
+
self.iPduRef = value
|
|
978
|
+
return self
|
|
979
|
+
|
|
980
|
+
def getSelectorFieldCode(self):
|
|
981
|
+
return self.selectorFieldCode
|
|
982
|
+
|
|
983
|
+
def setSelectorFieldCode(self, value):
|
|
984
|
+
if value is not None:
|
|
985
|
+
self.selectorFieldCode = value
|
|
986
|
+
return self
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
class DynamicPart(MultiplexedPart):
|
|
990
|
+
def __init__(self):
|
|
991
|
+
super().__init__()
|
|
992
|
+
|
|
993
|
+
self.dynamicPartAlternatives = [] # type: List[DynamicPartAlternative]
|
|
994
|
+
|
|
995
|
+
def getDynamicPartAlternatives(self):
|
|
996
|
+
return self.dynamicPartAlternatives
|
|
997
|
+
|
|
998
|
+
def addDynamicPartAlternative(self, value):
|
|
999
|
+
if value is not None:
|
|
1000
|
+
self.dynamicPartAlternatives.append(value)
|
|
1001
|
+
return self
|
|
1002
|
+
|
|
1003
|
+
|
|
624
1004
|
class MultiplexedIPdu(IPdu):
|
|
625
1005
|
def __init__(self, parent, short_name):
|
|
626
1006
|
super().__init__(parent, short_name)
|
|
@@ -689,6 +1069,7 @@ class MultiplexedIPdu(IPdu):
|
|
|
689
1069
|
self.unusedBitPattern = value
|
|
690
1070
|
return self
|
|
691
1071
|
|
|
1072
|
+
|
|
692
1073
|
class UserDefinedIPdu(IPdu):
|
|
693
1074
|
def __init__(self, parent, short_name):
|
|
694
1075
|
super().__init__(parent, short_name)
|
|
@@ -703,10 +1084,12 @@ class UserDefinedIPdu(IPdu):
|
|
|
703
1084
|
self.cddType = value
|
|
704
1085
|
return self
|
|
705
1086
|
|
|
1087
|
+
|
|
706
1088
|
class GeneralPurposeIPdu(IPdu):
|
|
707
1089
|
def __init__(self, parent: ARObject, short_name: str):
|
|
708
1090
|
super().__init__(parent, short_name)
|
|
709
1091
|
|
|
1092
|
+
|
|
710
1093
|
class UserDefinedPdu(Pdu):
|
|
711
1094
|
def __init__(self, parent: ARObject, short_name: str):
|
|
712
1095
|
super().__init__(parent, short_name)
|
|
@@ -721,6 +1104,7 @@ class UserDefinedPdu(Pdu):
|
|
|
721
1104
|
self.cddType = value
|
|
722
1105
|
return self
|
|
723
1106
|
|
|
1107
|
+
|
|
724
1108
|
class GeneralPurposePdu(Pdu):
|
|
725
1109
|
def __init__(self, parent: ARObject, short_name: str):
|
|
726
1110
|
super().__init__(parent, short_name)
|
|
@@ -744,27 +1128,105 @@ class GeneralPurposePdu(Pdu):
|
|
|
744
1128
|
self.length = value
|
|
745
1129
|
return self
|
|
746
1130
|
|
|
747
|
-
|
|
1131
|
+
|
|
1132
|
+
class SecureCommunicationAuthenticationProps(Identifiable):
|
|
748
1133
|
def __init__(self, parent: ARObject, short_name: str):
|
|
749
1134
|
super().__init__(parent, short_name)
|
|
750
1135
|
|
|
751
|
-
# type:
|
|
752
|
-
self.
|
|
753
|
-
# type: List[SecureCommunicationFreshnessProps]
|
|
754
|
-
self.freshnessProps = []
|
|
1136
|
+
self.authAlgorithm = None # type: String
|
|
1137
|
+
self.authInfoTxLength = None # type: PositiveInteger
|
|
755
1138
|
|
|
756
|
-
def
|
|
757
|
-
return self.
|
|
1139
|
+
def getAuthAlgorithm(self):
|
|
1140
|
+
return self.authAlgorithm
|
|
758
1141
|
|
|
759
|
-
def
|
|
1142
|
+
def setAuthAlgorithm(self, value):
|
|
760
1143
|
if value is not None:
|
|
761
|
-
self.
|
|
1144
|
+
self.authAlgorithm = value
|
|
762
1145
|
return self
|
|
763
1146
|
|
|
764
|
-
def
|
|
765
|
-
return self.
|
|
1147
|
+
def getAuthInfoTxLength(self):
|
|
1148
|
+
return self.authInfoTxLength
|
|
1149
|
+
|
|
1150
|
+
def setAuthInfoTxLength(self, value):
|
|
1151
|
+
if value is not None:
|
|
1152
|
+
self.authInfoTxLength = value
|
|
1153
|
+
return self
|
|
1154
|
+
|
|
1155
|
+
|
|
1156
|
+
class SecureCommunicationFreshnessProps(Identifiable):
|
|
1157
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
1158
|
+
super().__init__(parent, short_name)
|
|
1159
|
+
|
|
1160
|
+
self.freshnessCounterSyncAttempts = None # type: PositiveInteger
|
|
1161
|
+
self.freshnessTimestampTimePeriodFactor = None # type: PositiveInteger
|
|
1162
|
+
self.freshnessValueLength = None # type: PositiveInteger
|
|
1163
|
+
self.freshnessValueTxLength = None # type: PositiveInteger
|
|
1164
|
+
self.useFreshnessTimestamp = None # type: Boolean
|
|
1165
|
+
|
|
1166
|
+
def getFreshnessCounterSyncAttempts(self):
|
|
1167
|
+
return self.freshnessCounterSyncAttempts
|
|
1168
|
+
|
|
1169
|
+
def setFreshnessCounterSyncAttempts(self, value):
|
|
1170
|
+
if value is not None:
|
|
1171
|
+
self.freshnessCounterSyncAttempts = value
|
|
1172
|
+
return self
|
|
1173
|
+
|
|
1174
|
+
def getFreshnessTimestampTimePeriodFactor(self):
|
|
1175
|
+
return self.freshnessTimestampTimePeriodFactor
|
|
1176
|
+
|
|
1177
|
+
def setFreshnessTimestampTimePeriodFactor(self, value):
|
|
1178
|
+
if value is not None:
|
|
1179
|
+
self.freshnessTimestampTimePeriodFactor = value
|
|
1180
|
+
return self
|
|
1181
|
+
|
|
1182
|
+
def getFreshnessValueLength(self):
|
|
1183
|
+
return self.freshnessValueLength
|
|
1184
|
+
|
|
1185
|
+
def setFreshnessValueLength(self, value):
|
|
1186
|
+
if value is not None:
|
|
1187
|
+
self.freshnessValueLength = value
|
|
1188
|
+
return self
|
|
1189
|
+
|
|
1190
|
+
def getFreshnessValueTxLength(self):
|
|
1191
|
+
return self.freshnessValueTxLength
|
|
1192
|
+
|
|
1193
|
+
def setFreshnessValueTxLength(self, value):
|
|
1194
|
+
if value is not None:
|
|
1195
|
+
self.freshnessValueTxLength = value
|
|
1196
|
+
return self
|
|
766
1197
|
|
|
767
|
-
def
|
|
1198
|
+
def getUseFreshnessTimestamp(self):
|
|
1199
|
+
return self.useFreshnessTimestamp
|
|
1200
|
+
|
|
1201
|
+
def setUseFreshnessTimestamp(self, value):
|
|
768
1202
|
if value is not None:
|
|
769
|
-
self.
|
|
1203
|
+
self.useFreshnessTimestamp = value
|
|
770
1204
|
return self
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
class SecureCommunicationPropsSet(Identifiable):
|
|
1208
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
1209
|
+
super().__init__(parent, short_name)
|
|
1210
|
+
|
|
1211
|
+
self.authenticationProps = [] # type: List[SecureCommunicationAuthenticationProps]
|
|
1212
|
+
self.freshnessProps = [] # type: List[SecureCommunicationFreshnessProps]
|
|
1213
|
+
|
|
1214
|
+
def getAuthenticationProps(self):
|
|
1215
|
+
return self.authenticationProps
|
|
1216
|
+
|
|
1217
|
+
def createSecureCommunicationAuthenticationProps(self, short_name: str) -> SecureCommunicationAuthenticationProps:
|
|
1218
|
+
if (not self.IsElementExists(short_name)):
|
|
1219
|
+
props = SecureCommunicationAuthenticationProps(self, short_name)
|
|
1220
|
+
self.addElement(props)
|
|
1221
|
+
self.authenticationProps.append(props)
|
|
1222
|
+
return self.getElement(short_name)
|
|
1223
|
+
|
|
1224
|
+
def getFreshnessProps(self):
|
|
1225
|
+
return self.freshnessProps
|
|
1226
|
+
|
|
1227
|
+
def createSecureCommunicationFreshnessProps(self, short_name: str) -> SecureCommunicationFreshnessProps:
|
|
1228
|
+
if (not self.IsElementExists(short_name)):
|
|
1229
|
+
props = SecureCommunicationFreshnessProps(self, short_name)
|
|
1230
|
+
self.addElement(props)
|
|
1231
|
+
self.freshnessProps.append(props)
|
|
1232
|
+
return self.getElement(short_name)
|