armodel 1.7.6__py3-none-any.whl → 1.7.7__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/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +41 -2
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +47 -6
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +17 -7
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +1 -1
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +9 -3
- 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 +53 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +2 -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/SwcInternalBehavior/RTEEvents.py +26 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +19 -5
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +29 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/ECUResourceMapping.py +44 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +9 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +483 -54
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +9 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +245 -130
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +27 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +592 -17
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +20 -10
- 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 +4 -0
- armodel/parser/abstract_arxml_parser.py +3 -0
- armodel/parser/arxml_parser.py +614 -123
- 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/parser/test_bsw_module_descriiption.py +218 -0
- armodel/tests/test_armodel/parser/test_sw_components.py +22 -1
- armodel/writer/abstract_arxml_writer.py +7 -6
- armodel/writer/arxml_writer.py +694 -139
- {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/METADATA +41 -3
- {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/RECORD +41 -37
- {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/LICENSE +0 -0
- {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/WHEEL +0 -0
- {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/top_level.txt +0 -0
|
@@ -2,7 +2,7 @@ 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, Integer, RefType, ARBoolean, String, TimeValue, UnlimitedInteger
|
|
5
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, Boolean, Integer, PositiveInteger, RefType, ARBoolean, String, TimeValue, UnlimitedInteger
|
|
6
6
|
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeDeclaration
|
|
7
7
|
class FibexElement(Identifiable, metaclass = ABCMeta):
|
|
8
8
|
def __init__(self, parent: ARObject, short_name: str):
|
|
@@ -227,7 +227,17 @@ class Pdu(FibexElement, metaclass = ABCMeta):
|
|
|
227
227
|
|
|
228
228
|
super().__init__(parent, short_name)
|
|
229
229
|
|
|
230
|
-
self.
|
|
230
|
+
self.hasDynamicLength = None # type: Boolean
|
|
231
|
+
self.length = None # type: UnlimitedInteger
|
|
232
|
+
|
|
233
|
+
def getHasDynamicLength(self):
|
|
234
|
+
return self.hasDynamicLength
|
|
235
|
+
|
|
236
|
+
def setHasDynamicLength(self, value):
|
|
237
|
+
if value is not None:
|
|
238
|
+
self.hasDynamicLength = value
|
|
239
|
+
return self
|
|
240
|
+
|
|
231
241
|
|
|
232
242
|
def getLength(self):
|
|
233
243
|
return self.length
|
|
@@ -243,60 +253,216 @@ class IPdu(Pdu, metaclass = ABCMeta):
|
|
|
243
253
|
|
|
244
254
|
super().__init__(parent, short_name)
|
|
245
255
|
|
|
246
|
-
|
|
256
|
+
# type: ContainedIPduProps
|
|
257
|
+
self.containedIPduProps = None
|
|
258
|
+
|
|
259
|
+
def getContainedIPduProps(self):
|
|
260
|
+
return self.containedIPduProps
|
|
261
|
+
|
|
262
|
+
def setContainedIPduProps(self, value):
|
|
263
|
+
if value is not None:
|
|
264
|
+
self.containedIPduProps = value
|
|
265
|
+
return self
|
|
266
|
+
|
|
267
|
+
class SecureCommunicationProps(ARObject):
|
|
268
|
+
def __init__(self):
|
|
269
|
+
super().__init__()
|
|
270
|
+
|
|
271
|
+
self.authDataFreshnessLength = None # type: PositiveInteger
|
|
272
|
+
self.authDataFreshnessStartPosition = None # type: PositiveInteger
|
|
273
|
+
self.authInfoTxLength = None # type: PositiveInteger
|
|
274
|
+
self.authenticationBuildAttempts = None # type: PositiveInteger
|
|
275
|
+
self.authenticationRetries = None # type: PositiveInteger
|
|
276
|
+
self.dataId = None # type: PositiveInteger
|
|
277
|
+
self.freshnessValueId = None # type: PositiveInteger
|
|
278
|
+
self.freshnessValueLength = None # type: PositiveInteger
|
|
279
|
+
self.freshnessValueTxLength = None # type: PositiveInteger
|
|
280
|
+
self.messageLinkLength = None # type: PositiveInteger
|
|
281
|
+
self.messageLinkPosition = None # type: PositiveInteger
|
|
282
|
+
self.secondaryFreshnessValueId = None # type: PositiveInteger
|
|
283
|
+
self.securedAreaLength = None # type: PositiveInteger
|
|
284
|
+
self.securedAreaOffset = None # type: PositiveInteger
|
|
285
|
+
|
|
286
|
+
def getAuthDataFreshnessLength(self):
|
|
287
|
+
return self.authDataFreshnessLength
|
|
288
|
+
|
|
289
|
+
def setAuthDataFreshnessLength(self, value):
|
|
290
|
+
if value is not None:
|
|
291
|
+
self.authDataFreshnessLength = value
|
|
292
|
+
return self
|
|
293
|
+
|
|
294
|
+
def getAuthDataFreshnessStartPosition(self):
|
|
295
|
+
return self.authDataFreshnessStartPosition
|
|
296
|
+
|
|
297
|
+
def setAuthDataFreshnessStartPosition(self, value):
|
|
298
|
+
if value is not None:
|
|
299
|
+
self.authDataFreshnessStartPosition = value
|
|
300
|
+
return self
|
|
301
|
+
|
|
302
|
+
def getAuthInfoTxLength(self):
|
|
303
|
+
return self.authInfoTxLength
|
|
304
|
+
|
|
305
|
+
def setAuthInfoTxLength(self, value):
|
|
306
|
+
if value is not None:
|
|
307
|
+
self.authInfoTxLength = value
|
|
308
|
+
return self
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
def getAuthenticationBuildAttempts(self):
|
|
312
|
+
return self.authenticationBuildAttempts
|
|
313
|
+
|
|
314
|
+
def setAuthenticationBuildAttempts(self, value):
|
|
315
|
+
if value is not None:
|
|
316
|
+
self.authenticationBuildAttempts = value
|
|
317
|
+
return self
|
|
318
|
+
|
|
319
|
+
def getAuthenticationRetries(self):
|
|
320
|
+
return self.authenticationRetries
|
|
321
|
+
|
|
322
|
+
def setAuthenticationRetries(self, value):
|
|
323
|
+
if value is not None:
|
|
324
|
+
self.authenticationRetries = value
|
|
325
|
+
return self
|
|
326
|
+
|
|
327
|
+
def getDataId(self):
|
|
328
|
+
return self.dataId
|
|
329
|
+
|
|
330
|
+
def setDataId(self, value):
|
|
331
|
+
if value is not None:
|
|
332
|
+
self.dataId = value
|
|
333
|
+
return self
|
|
247
334
|
|
|
248
|
-
def
|
|
249
|
-
return self.
|
|
335
|
+
def getFreshnessValueId(self):
|
|
336
|
+
return self.freshnessValueId
|
|
250
337
|
|
|
251
|
-
def
|
|
252
|
-
|
|
338
|
+
def setFreshnessValueId(self, value):
|
|
339
|
+
if value is not None:
|
|
340
|
+
self.freshnessValueId = value
|
|
253
341
|
return self
|
|
254
342
|
|
|
343
|
+
def getFreshnessValueLength(self):
|
|
344
|
+
return self.freshnessValueLength
|
|
345
|
+
|
|
346
|
+
def setFreshnessValueLength(self, value):
|
|
347
|
+
if value is not None:
|
|
348
|
+
self.freshnessValueLength = value
|
|
349
|
+
return self
|
|
350
|
+
|
|
351
|
+
def getFreshnessValueTxLength(self):
|
|
352
|
+
return self.freshnessValueTxLength
|
|
353
|
+
|
|
354
|
+
def setFreshnessValueTxLength(self, value):
|
|
355
|
+
if value is not None:
|
|
356
|
+
self.freshnessValueTxLength = value
|
|
357
|
+
return self
|
|
358
|
+
|
|
359
|
+
def getMessageLinkLength(self):
|
|
360
|
+
return self.messageLinkLength
|
|
361
|
+
|
|
362
|
+
def setMessageLinkLength(self, value):
|
|
363
|
+
if value is not None:
|
|
364
|
+
self.messageLinkLength = value
|
|
365
|
+
return self
|
|
366
|
+
|
|
367
|
+
def getMessageLinkPosition(self):
|
|
368
|
+
return self.messageLinkPosition
|
|
369
|
+
|
|
370
|
+
def setMessageLinkPosition(self, value):
|
|
371
|
+
if value is not None:
|
|
372
|
+
self.messageLinkPosition = value
|
|
373
|
+
return self
|
|
374
|
+
|
|
375
|
+
def getSecondaryFreshnessValueId(self):
|
|
376
|
+
return self.secondaryFreshnessValueId
|
|
377
|
+
|
|
378
|
+
def setSecondaryFreshnessValueId(self, value):
|
|
379
|
+
if value is not None:
|
|
380
|
+
self.secondaryFreshnessValueId = value
|
|
381
|
+
return self
|
|
382
|
+
|
|
383
|
+
def getSecuredAreaLength(self):
|
|
384
|
+
return self.securedAreaLength
|
|
385
|
+
|
|
386
|
+
def setSecuredAreaLength(self, value):
|
|
387
|
+
if value is not None:
|
|
388
|
+
self.securedAreaLength = value
|
|
389
|
+
return self
|
|
390
|
+
|
|
391
|
+
def getSecuredAreaOffset(self):
|
|
392
|
+
return self.securedAreaOffset
|
|
393
|
+
|
|
394
|
+
def setSecuredAreaOffset(self, value):
|
|
395
|
+
if value is not None:
|
|
396
|
+
self.securedAreaOffset = value
|
|
397
|
+
return self
|
|
398
|
+
|
|
399
|
+
|
|
255
400
|
class SecuredIPdu(IPdu):
|
|
256
401
|
def __init__(self, parent: ARObject, short_name: str):
|
|
257
402
|
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
403
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
404
|
+
self.authenticationPropsRef = None # type: RefType
|
|
405
|
+
self.dynamicRuntimeLengthHandling = None # type: Boolean
|
|
406
|
+
self.freshnessPropsRef = None # type: RefType
|
|
407
|
+
self.payloadRef = None # type: RefType
|
|
408
|
+
self.secureCommunicationProps = None # type: SecureCommunicationProps
|
|
409
|
+
self.useAsCryptographicIPdu = None # type: Boolean
|
|
410
|
+
self.useSecuredPduHeader = None # type: SecuredPduHeaderEnum
|
|
267
411
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
super().__init__(parent, short_name)
|
|
412
|
+
def getAuthenticationPropsRef(self):
|
|
413
|
+
return self.authenticationPropsRef
|
|
271
414
|
|
|
272
|
-
|
|
415
|
+
def setAuthenticationPropsRef(self, value):
|
|
416
|
+
if value is not None:
|
|
417
|
+
self.authenticationPropsRef = value
|
|
418
|
+
return self
|
|
273
419
|
|
|
274
|
-
def
|
|
275
|
-
return self.
|
|
420
|
+
def getDynamicRuntimeLengthHandling(self):
|
|
421
|
+
return self.dynamicRuntimeLengthHandling
|
|
276
422
|
|
|
277
|
-
def
|
|
278
|
-
|
|
423
|
+
def setDynamicRuntimeLengthHandling(self, value):
|
|
424
|
+
if value is not None:
|
|
425
|
+
self.dynamicRuntimeLengthHandling = value
|
|
279
426
|
return self
|
|
280
427
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
super().__init__()
|
|
428
|
+
def getFreshnessPropsRef(self):
|
|
429
|
+
return self.freshnessPropsRef
|
|
284
430
|
|
|
285
|
-
|
|
286
|
-
|
|
431
|
+
def setFreshnessPropsRef(self, value):
|
|
432
|
+
if value is not None:
|
|
433
|
+
self.freshnessPropsRef = value
|
|
434
|
+
return self
|
|
287
435
|
|
|
288
|
-
def
|
|
289
|
-
return self.
|
|
436
|
+
def getPayloadRef(self):
|
|
437
|
+
return self.payloadRef
|
|
290
438
|
|
|
291
|
-
def
|
|
292
|
-
|
|
439
|
+
def setPayloadRef(self, value):
|
|
440
|
+
if value is not None:
|
|
441
|
+
self.payloadRef = value
|
|
293
442
|
return self
|
|
294
443
|
|
|
295
|
-
def
|
|
296
|
-
return self.
|
|
444
|
+
def getSecureCommunicationProps(self):
|
|
445
|
+
return self.secureCommunicationProps
|
|
297
446
|
|
|
298
|
-
def
|
|
299
|
-
|
|
447
|
+
def setSecureCommunicationProps(self, value):
|
|
448
|
+
if value is not None:
|
|
449
|
+
self.secureCommunicationProps = value
|
|
450
|
+
return self
|
|
451
|
+
|
|
452
|
+
def getUseAsCryptographicIPdu(self):
|
|
453
|
+
return self.useAsCryptographicIPdu
|
|
454
|
+
|
|
455
|
+
def setUseAsCryptographicIPdu(self, value):
|
|
456
|
+
if value is not None:
|
|
457
|
+
self.useAsCryptographicIPdu = value
|
|
458
|
+
return self
|
|
459
|
+
|
|
460
|
+
def getUseSecuredPduHeader(self):
|
|
461
|
+
return self.useSecuredPduHeader
|
|
462
|
+
|
|
463
|
+
def setUseSecuredPduHeader(self, value):
|
|
464
|
+
if value is not None:
|
|
465
|
+
self.useSecuredPduHeader = value
|
|
300
466
|
return self
|
|
301
467
|
|
|
302
468
|
class ISignalToIPduMapping(Identifiable):
|
|
@@ -306,10 +472,9 @@ class ISignalToIPduMapping(Identifiable):
|
|
|
306
472
|
self.iSignalRef = None # type: RefType
|
|
307
473
|
self.iSignalGroupRef = None # type: RefType
|
|
308
474
|
self.packingByteOrder = None # type: ByteOrderEnum
|
|
309
|
-
self.startPosition = None # type:
|
|
310
|
-
# type: TransferPropertyEnum
|
|
311
|
-
self.
|
|
312
|
-
self.updateIndicationBitPosition = None # type: ARNumerical
|
|
475
|
+
self.startPosition = None # type: UnlimitedInteger
|
|
476
|
+
self.transferProperty = None # type: TransferPropertyEnum
|
|
477
|
+
self.updateIndicationBitPosition = None # type: UnlimitedInteger
|
|
313
478
|
|
|
314
479
|
def getISignalRef(self):
|
|
315
480
|
return self.iSignalRef
|
|
@@ -353,6 +518,87 @@ class ISignalToIPduMapping(Identifiable):
|
|
|
353
518
|
self.updateIndicationBitPosition = value
|
|
354
519
|
return self
|
|
355
520
|
|
|
521
|
+
class NmPdu(Pdu):
|
|
522
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
523
|
+
super().__init__(parent, short_name)
|
|
524
|
+
|
|
525
|
+
self.iSignalToIPduMappings = [] # type: List[ISignalToIPduMapping]
|
|
526
|
+
self.nmDataInformation = None # type: Boolean
|
|
527
|
+
self.nmVoteInformation = None # type: Boolean
|
|
528
|
+
self.unusedBitPattern = None # type: Integer
|
|
529
|
+
|
|
530
|
+
def getISignalToIPduMappings(self):
|
|
531
|
+
return self.iSignalToIPduMappings
|
|
532
|
+
|
|
533
|
+
def createISignalToIPduMapping(self, short_name: str) -> ISignalToIPduMapping:
|
|
534
|
+
if (not self.IsElementExists(short_name)):
|
|
535
|
+
mapping = ISignalToIPduMapping(self, short_name)
|
|
536
|
+
self.addElement(mapping)
|
|
537
|
+
self.iSignalToIPduMappings.append(mapping)
|
|
538
|
+
return self.getElement(short_name)
|
|
539
|
+
|
|
540
|
+
def getNmDataInformation(self):
|
|
541
|
+
return self.nmDataInformation
|
|
542
|
+
|
|
543
|
+
def setNmDataInformation(self, value):
|
|
544
|
+
if value is not None:
|
|
545
|
+
self.nmDataInformation = value
|
|
546
|
+
return self
|
|
547
|
+
|
|
548
|
+
def getNmVoteInformation(self):
|
|
549
|
+
return self.nmVoteInformation
|
|
550
|
+
|
|
551
|
+
def setNmVoteInformation(self, value):
|
|
552
|
+
if value is not None:
|
|
553
|
+
self.nmVoteInformation = value
|
|
554
|
+
return self
|
|
555
|
+
|
|
556
|
+
def getUnusedBitPattern(self):
|
|
557
|
+
return self.unusedBitPattern
|
|
558
|
+
|
|
559
|
+
def setUnusedBitPattern(self, value):
|
|
560
|
+
if value is not None:
|
|
561
|
+
self.unusedBitPattern = value
|
|
562
|
+
return self
|
|
563
|
+
|
|
564
|
+
|
|
565
|
+
class NPdu(IPdu):
|
|
566
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
567
|
+
super().__init__(parent, short_name)
|
|
568
|
+
|
|
569
|
+
class DcmIPdu(IPdu):
|
|
570
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
571
|
+
super().__init__(parent, short_name)
|
|
572
|
+
|
|
573
|
+
self.diagPduType = None # type: ARLiteral
|
|
574
|
+
|
|
575
|
+
def getDiagPduType(self):
|
|
576
|
+
return self.diagPduType
|
|
577
|
+
|
|
578
|
+
def setDiagPduType(self, value):
|
|
579
|
+
self.diagPduType = value
|
|
580
|
+
return self
|
|
581
|
+
|
|
582
|
+
class IPduTiming(Describable):
|
|
583
|
+
def __init__(self):
|
|
584
|
+
super().__init__()
|
|
585
|
+
|
|
586
|
+
self.minimumDelay = None # type: TimeValue
|
|
587
|
+
self.transmissionModeDeclaration = None # type: TransmissionModeDeclaration
|
|
588
|
+
|
|
589
|
+
def getMinimumDelay(self):
|
|
590
|
+
return self.minimumDelay
|
|
591
|
+
|
|
592
|
+
def setMinimumDelay(self, value):
|
|
593
|
+
self.minimumDelay = value
|
|
594
|
+
return self
|
|
595
|
+
|
|
596
|
+
def getTransmissionModeDeclaration(self):
|
|
597
|
+
return self.transmissionModeDeclaration
|
|
598
|
+
|
|
599
|
+
def setTransmissionModeDeclaration(self, value):
|
|
600
|
+
self.transmissionModeDeclaration = value
|
|
601
|
+
return self
|
|
356
602
|
|
|
357
603
|
class ISignalIPdu(IPdu):
|
|
358
604
|
def __init__(self, parent, short_name):
|
|
@@ -360,7 +606,7 @@ class ISignalIPdu(IPdu):
|
|
|
360
606
|
|
|
361
607
|
self.iPduTimingSpecification = None # type: IPduTiming
|
|
362
608
|
self.iSignalToPduMappings = [] # type: List[ISignalToIPduMapping]
|
|
363
|
-
self.unusedBitPattern = None # type:
|
|
609
|
+
self.unusedBitPattern = None # type: Integer
|
|
364
610
|
|
|
365
611
|
def getIPduTimingSpecification(self):
|
|
366
612
|
return self.iPduTimingSpecification
|
|
@@ -620,6 +866,114 @@ class ISignalTriggering(Identifiable):
|
|
|
620
866
|
def addISignalPortRef(self, value):
|
|
621
867
|
self.iSignalPortRefs.append(value)
|
|
622
868
|
return self
|
|
869
|
+
|
|
870
|
+
class SegmentPosition(ARObject):
|
|
871
|
+
def __init__(self):
|
|
872
|
+
super().__init__()
|
|
873
|
+
|
|
874
|
+
self.segmentByteOrder = None # type: ByteOrderEnum
|
|
875
|
+
self.segmentLength = None # type: Integer
|
|
876
|
+
self.segmentPosition = None # type: Integer
|
|
877
|
+
|
|
878
|
+
def getSegmentByteOrder(self):
|
|
879
|
+
return self.segmentByteOrder
|
|
880
|
+
|
|
881
|
+
def setSegmentByteOrder(self, value):
|
|
882
|
+
if value is not None:
|
|
883
|
+
self.segmentByteOrder = value
|
|
884
|
+
return self
|
|
885
|
+
|
|
886
|
+
def getSegmentLength(self):
|
|
887
|
+
return self.segmentLength
|
|
888
|
+
|
|
889
|
+
def setSegmentLength(self, value):
|
|
890
|
+
if value is not None:
|
|
891
|
+
self.segmentLength = value
|
|
892
|
+
return self
|
|
893
|
+
|
|
894
|
+
def getSegmentPosition(self):
|
|
895
|
+
return self.segmentPosition
|
|
896
|
+
|
|
897
|
+
def setSegmentPosition(self, value):
|
|
898
|
+
if value is not None:
|
|
899
|
+
self.segmentPosition = value
|
|
900
|
+
return self
|
|
901
|
+
|
|
902
|
+
class MultiplexedPart(ARObject, metaclass = ABCMeta):
|
|
903
|
+
def __init__(self):
|
|
904
|
+
if type(self) == MultiplexedPart:
|
|
905
|
+
raise NotImplementedError("MultiplexedPart is an abstract class.")
|
|
906
|
+
|
|
907
|
+
super().__init__()
|
|
908
|
+
|
|
909
|
+
self.segmentPositions = [] # type: List[SegmentPosition]
|
|
910
|
+
|
|
911
|
+
def getSegmentPositions(self):
|
|
912
|
+
return self.segmentPositions
|
|
913
|
+
|
|
914
|
+
def addSegmentPosition(self, value):
|
|
915
|
+
if value is not None:
|
|
916
|
+
self.segmentPositions.append(value)
|
|
917
|
+
return self
|
|
918
|
+
|
|
919
|
+
class StaticPart(MultiplexedPart):
|
|
920
|
+
def __init__(self):
|
|
921
|
+
super().__init__()
|
|
922
|
+
|
|
923
|
+
self.iPduRef = None # type: RefType
|
|
924
|
+
|
|
925
|
+
def getIPduRef(self):
|
|
926
|
+
return self.iPduRef
|
|
927
|
+
|
|
928
|
+
def setIPduRef(self, value):
|
|
929
|
+
if value is not None:
|
|
930
|
+
self.iPduRef = value
|
|
931
|
+
return self
|
|
932
|
+
class DynamicPartAlternative(ARObject):
|
|
933
|
+
def __init__(self):
|
|
934
|
+
super().__init__()
|
|
935
|
+
|
|
936
|
+
self.initialDynamicPart = None # type: Boolean
|
|
937
|
+
self.iPduRef = None # type: RefType
|
|
938
|
+
self.selectorFieldCode = None # type: Integer
|
|
939
|
+
|
|
940
|
+
def getInitialDynamicPart(self):
|
|
941
|
+
return self.initialDynamicPart
|
|
942
|
+
|
|
943
|
+
def setInitialDynamicPart(self, value):
|
|
944
|
+
if value is not None:
|
|
945
|
+
self.initialDynamicPart = value
|
|
946
|
+
return self
|
|
947
|
+
|
|
948
|
+
def getIPduRef(self):
|
|
949
|
+
return self.iPduRef
|
|
950
|
+
|
|
951
|
+
def setIPduRef(self, value):
|
|
952
|
+
if value is not None:
|
|
953
|
+
self.iPduRef = value
|
|
954
|
+
return self
|
|
955
|
+
|
|
956
|
+
def getSelectorFieldCode(self):
|
|
957
|
+
return self.selectorFieldCode
|
|
958
|
+
|
|
959
|
+
def setSelectorFieldCode(self, value):
|
|
960
|
+
if value is not None:
|
|
961
|
+
self.selectorFieldCode = value
|
|
962
|
+
return self
|
|
963
|
+
|
|
964
|
+
class DynamicPart(MultiplexedPart):
|
|
965
|
+
def __init__(self):
|
|
966
|
+
super().__init__()
|
|
967
|
+
|
|
968
|
+
self.dynamicPartAlternatives = [] # type: List[DynamicPartAlternative]
|
|
969
|
+
|
|
970
|
+
def getDynamicPartAlternatives(self):
|
|
971
|
+
return self.dynamicPartAlternatives
|
|
972
|
+
|
|
973
|
+
def addDynamicPartAlternative(self, value):
|
|
974
|
+
if value is not None:
|
|
975
|
+
self.dynamicPartAlternatives.append(value)
|
|
976
|
+
return self
|
|
623
977
|
|
|
624
978
|
class MultiplexedIPdu(IPdu):
|
|
625
979
|
def __init__(self, parent, short_name):
|
|
@@ -743,28 +1097,103 @@ class GeneralPurposePdu(Pdu):
|
|
|
743
1097
|
if value is not None:
|
|
744
1098
|
self.length = value
|
|
745
1099
|
return self
|
|
1100
|
+
|
|
1101
|
+
class SecureCommunicationAuthenticationProps(Identifiable):
|
|
1102
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
1103
|
+
super().__init__(parent, short_name)
|
|
746
1104
|
|
|
747
|
-
|
|
1105
|
+
self.authAlgorithm = None # type: String
|
|
1106
|
+
self.authInfoTxLength = None # type: PositiveInteger
|
|
1107
|
+
|
|
1108
|
+
def getAuthAlgorithm(self):
|
|
1109
|
+
return self.authAlgorithm
|
|
1110
|
+
|
|
1111
|
+
def setAuthAlgorithm(self, value):
|
|
1112
|
+
if value is not None:
|
|
1113
|
+
self.authAlgorithm = value
|
|
1114
|
+
return self
|
|
1115
|
+
|
|
1116
|
+
def getAuthInfoTxLength(self):
|
|
1117
|
+
return self.authInfoTxLength
|
|
1118
|
+
|
|
1119
|
+
def setAuthInfoTxLength(self, value):
|
|
1120
|
+
if value is not None:
|
|
1121
|
+
self.authInfoTxLength = value
|
|
1122
|
+
return self
|
|
1123
|
+
|
|
1124
|
+
class SecureCommunicationFreshnessProps(Identifiable):
|
|
748
1125
|
def __init__(self, parent: ARObject, short_name: str):
|
|
749
1126
|
super().__init__(parent, short_name)
|
|
750
1127
|
|
|
751
|
-
# type:
|
|
752
|
-
self.
|
|
753
|
-
# type:
|
|
754
|
-
self.
|
|
1128
|
+
self.freshnessCounterSyncAttempts = None # type: PositiveInteger
|
|
1129
|
+
self.freshnessTimestampTimePeriodFactor = None # type: PositiveInteger
|
|
1130
|
+
self.freshnessValueLength = None # type: PositiveInteger
|
|
1131
|
+
self.freshnessValueTxLength = None # type: PositiveInteger
|
|
1132
|
+
self.useFreshnessTimestamp = None # type: Boolean
|
|
755
1133
|
|
|
756
|
-
def
|
|
757
|
-
return self.
|
|
1134
|
+
def getFreshnessCounterSyncAttempts(self):
|
|
1135
|
+
return self.freshnessCounterSyncAttempts
|
|
758
1136
|
|
|
759
|
-
def
|
|
1137
|
+
def setFreshnessCounterSyncAttempts(self, value):
|
|
760
1138
|
if value is not None:
|
|
761
|
-
self.
|
|
1139
|
+
self.freshnessCounterSyncAttempts = value
|
|
762
1140
|
return self
|
|
763
1141
|
|
|
764
|
-
def
|
|
765
|
-
return self.
|
|
1142
|
+
def getFreshnessTimestampTimePeriodFactor(self):
|
|
1143
|
+
return self.freshnessTimestampTimePeriodFactor
|
|
1144
|
+
|
|
1145
|
+
def setFreshnessTimestampTimePeriodFactor(self, value):
|
|
1146
|
+
if value is not None:
|
|
1147
|
+
self.freshnessTimestampTimePeriodFactor = value
|
|
1148
|
+
return self
|
|
1149
|
+
|
|
1150
|
+
def getFreshnessValueLength(self):
|
|
1151
|
+
return self.freshnessValueLength
|
|
1152
|
+
|
|
1153
|
+
def setFreshnessValueLength(self, value):
|
|
1154
|
+
if value is not None:
|
|
1155
|
+
self.freshnessValueLength = value
|
|
1156
|
+
return self
|
|
1157
|
+
|
|
1158
|
+
def getFreshnessValueTxLength(self):
|
|
1159
|
+
return self.freshnessValueTxLength
|
|
766
1160
|
|
|
767
|
-
def
|
|
1161
|
+
def setFreshnessValueTxLength(self, value):
|
|
768
1162
|
if value is not None:
|
|
769
|
-
self.
|
|
1163
|
+
self.freshnessValueTxLength = value
|
|
770
1164
|
return self
|
|
1165
|
+
|
|
1166
|
+
def getUseFreshnessTimestamp(self):
|
|
1167
|
+
return self.useFreshnessTimestamp
|
|
1168
|
+
|
|
1169
|
+
def setUseFreshnessTimestamp(self, value):
|
|
1170
|
+
if value is not None:
|
|
1171
|
+
self.useFreshnessTimestamp = value
|
|
1172
|
+
return self
|
|
1173
|
+
|
|
1174
|
+
class SecureCommunicationPropsSet(Identifiable):
|
|
1175
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
1176
|
+
super().__init__(parent, short_name)
|
|
1177
|
+
|
|
1178
|
+
self.authenticationProps = [] # type: List[SecureCommunicationAuthenticationProps]
|
|
1179
|
+
self.freshnessProps = [] # type: List[SecureCommunicationFreshnessProps]
|
|
1180
|
+
|
|
1181
|
+
def getAuthenticationProps(self):
|
|
1182
|
+
return self.authenticationProps
|
|
1183
|
+
|
|
1184
|
+
def createSecureCommunicationAuthenticationProps(self, short_name: str) -> SecureCommunicationAuthenticationProps:
|
|
1185
|
+
if (not self.IsElementExists(short_name)):
|
|
1186
|
+
props = SecureCommunicationAuthenticationProps(self, short_name)
|
|
1187
|
+
self.addElement(props)
|
|
1188
|
+
self.authenticationProps.append(props)
|
|
1189
|
+
return self.getElement(short_name)
|
|
1190
|
+
|
|
1191
|
+
def getFreshnessProps(self):
|
|
1192
|
+
return self.freshnessProps
|
|
1193
|
+
|
|
1194
|
+
def createSecureCommunicationFreshnessProps(self, short_name: str) -> SecureCommunicationFreshnessProps:
|
|
1195
|
+
if (not self.IsElementExists(short_name)):
|
|
1196
|
+
props = SecureCommunicationFreshnessProps(self, short_name)
|
|
1197
|
+
self.addElement(props)
|
|
1198
|
+
self.freshnessProps.append(props)
|
|
1199
|
+
return self.getElement(short_name)
|
|
@@ -22,6 +22,7 @@ class EcuInstance(FibexElement):
|
|
|
22
22
|
self.comEnableMDTForCyclicTransmission = None # type: Boolean
|
|
23
23
|
self.commControllers = [] # type: List[CommunicationController]
|
|
24
24
|
self.connectors = [] # type: List[CommunicationConnector]
|
|
25
|
+
self.diagnosticAddress = None # type: Integer ## Only AR 4.3.1
|
|
25
26
|
self.dltConfig = None # type: DltConfig
|
|
26
27
|
self.doIpConfig = None # type: DoIpConfig
|
|
27
28
|
self.ecuTaskProxyRefs = [] # type: List[RefType]
|
|
@@ -142,6 +143,14 @@ class EcuInstance(FibexElement):
|
|
|
142
143
|
connector = LinCommunicationConnector(self, short_name)
|
|
143
144
|
self.addElement(connector)
|
|
144
145
|
return self.getElement(short_name)
|
|
146
|
+
|
|
147
|
+
def getDiagnosticAddress(self):
|
|
148
|
+
return self.diagnosticAddress
|
|
149
|
+
|
|
150
|
+
def setDiagnosticAddress(self, value):
|
|
151
|
+
if value is not None:
|
|
152
|
+
self.diagnosticAddress = value
|
|
153
|
+
return self
|
|
145
154
|
|
|
146
155
|
def getDltConfig(self):
|
|
147
156
|
return self.dltConfig
|