armodel 1.7.5__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.
Files changed (48) hide show
  1. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +41 -2
  2. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +47 -6
  3. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +17 -7
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +2 -2
  5. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +4 -0
  6. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +8 -2
  7. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +9 -3
  8. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +30 -1
  9. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +19 -5
  10. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -0
  11. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +2 -2
  12. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +41 -16
  13. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +10 -3
  14. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +26 -8
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +19 -5
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +29 -0
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/ECUResourceMapping.py +44 -0
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +165 -4
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +409 -17
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +356 -8
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +2 -4
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +76 -10
  23. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +483 -54
  24. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +45 -23
  25. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +10 -0
  26. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +245 -130
  27. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +27 -0
  28. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +633 -5
  29. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +22 -11
  30. armodel/models/M2/MSR/AsamHdo/AdminData.py +1 -2
  31. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +3 -1
  32. armodel/models/M2/MSR/AsamHdo/SpecialData.py +35 -8
  33. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +0 -3
  34. armodel/models/__init__.py +4 -0
  35. armodel/parser/abstract_arxml_parser.py +8 -5
  36. armodel/parser/arxml_parser.py +1229 -572
  37. armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -3
  38. armodel/tests/test_armodel/models/test_datatype.py +1 -1
  39. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +218 -0
  40. armodel/tests/test_armodel/parser/test_sw_components.py +22 -1
  41. armodel/writer/abstract_arxml_writer.py +7 -6
  42. armodel/writer/arxml_writer.py +1037 -187
  43. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/METADATA +62 -3
  44. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/RECORD +48 -44
  45. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/LICENSE +0 -0
  46. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/WHEEL +0 -0
  47. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/entry_points.txt +0 -0
  48. {armodel-1.7.5.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.length = None # type: ARNumerical
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
- self.containedOpduProps = None # type: ContainedIPduProps
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 getContainedOpduProps(self):
249
- return self.containedOpduProps
335
+ def getFreshnessValueId(self):
336
+ return self.freshnessValueId
250
337
 
251
- def setContainedOpduProps(self, value):
252
- self.containedOpduProps = value
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
- class NPdu(IPdu):
265
- def __init__(self, parent: ARObject, short_name: str):
266
- super().__init__(parent, short_name)
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
- class DcmIPdu(IPdu):
269
- def __init__(self, parent: ARObject, short_name: str):
270
- super().__init__(parent, short_name)
412
+ def getAuthenticationPropsRef(self):
413
+ return self.authenticationPropsRef
271
414
 
272
- self.diagPduType = None # type: ARLiteral
415
+ def setAuthenticationPropsRef(self, value):
416
+ if value is not None:
417
+ self.authenticationPropsRef = value
418
+ return self
273
419
 
274
- def getDiagPduType(self):
275
- return self.diagPduType
420
+ def getDynamicRuntimeLengthHandling(self):
421
+ return self.dynamicRuntimeLengthHandling
276
422
 
277
- def setDiagPduType(self, value):
278
- self.diagPduType = value
423
+ def setDynamicRuntimeLengthHandling(self, value):
424
+ if value is not None:
425
+ self.dynamicRuntimeLengthHandling = value
279
426
  return self
280
427
 
281
- class IPduTiming(Describable):
282
- def __init__(self):
283
- super().__init__()
428
+ def getFreshnessPropsRef(self):
429
+ return self.freshnessPropsRef
284
430
 
285
- self.minimumDelay = None # type: TimeValue
286
- self.transmissionModeDeclaration = None # type: TransmissionModeDeclaration
431
+ def setFreshnessPropsRef(self, value):
432
+ if value is not None:
433
+ self.freshnessPropsRef = value
434
+ return self
287
435
 
288
- def getMinimumDelay(self):
289
- return self.minimumDelay
436
+ def getPayloadRef(self):
437
+ return self.payloadRef
290
438
 
291
- def setMinimumDelay(self, value):
292
- self.minimumDelay = value
439
+ def setPayloadRef(self, value):
440
+ if value is not None:
441
+ self.payloadRef = value
293
442
  return self
294
443
 
295
- def getTransmissionModeDeclaration(self):
296
- return self.transmissionModeDeclaration
444
+ def getSecureCommunicationProps(self):
445
+ return self.secureCommunicationProps
297
446
 
298
- def setTransmissionModeDeclaration(self, value):
299
- self.transmissionModeDeclaration = value
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: ARNumerical
310
- # type: TransferPropertyEnum
311
- self.transferProperty = None
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: ARNumerical
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
- class SecureCommunicationPropsSet(Identifiable):
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: List[SecureCommunicationAuthenticationProps]
752
- self.authenticationProps = []
753
- # type: List[SecureCommunicationFreshnessProps]
754
- self.freshnessProps = []
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 getAuthenticationProps(self):
757
- return self.authenticationProps
1134
+ def getFreshnessCounterSyncAttempts(self):
1135
+ return self.freshnessCounterSyncAttempts
758
1136
 
759
- def addAuthenticationProp(self, value):
1137
+ def setFreshnessCounterSyncAttempts(self, value):
760
1138
  if value is not None:
761
- self.authenticationProps.append(value)
1139
+ self.freshnessCounterSyncAttempts = value
762
1140
  return self
763
1141
 
764
- def getFreshnessProps(self):
765
- return self.freshnessProps
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 addFreshnessProp(self, value):
1161
+ def setFreshnessValueTxLength(self, value):
768
1162
  if value is not None:
769
- self.freshnessProps.append(value)
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)