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
@@ -1,11 +1,11 @@
1
1
  from abc import ABCMeta
2
2
  from typing import List
3
3
 
4
- from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SocketConnection, SocketConnectionBundle
5
4
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, PositiveInteger, RefType, String, TimeValue
6
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
5
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable, Referrable
7
6
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
8
-
7
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import RequestResponseDelay
8
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SocketConnection, SocketConnectionBundle
9
9
 
10
10
  class TransportProtocolConfiguration(ARObject, metaclass = ABCMeta):
11
11
  def __init__(self):
@@ -413,7 +413,221 @@ class ConsumedServiceInstance(AbstractServiceInstance):
413
413
  if value is not None:
414
414
  self.versionDrivenFindBehavior = value
415
415
  return self
416
-
416
+
417
+ class InitialSdDelayConfig(ARObject):
418
+ def __init__(self):
419
+ super().__init__()
420
+
421
+ self.initialDelayMaxValue = None # type: TimeValue
422
+ self.initialDelayMinValue = None # type: TimeValue
423
+ self.initialRepetitionsBaseDelay = None # type: TimeValue
424
+ self.initialRepetitionsMax = None # type: PositiveInteger
425
+
426
+ def getInitialDelayMaxValue(self):
427
+ return self.initialDelayMaxValue
428
+
429
+ def setInitialDelayMaxValue(self, value):
430
+ if value is not None:
431
+ self.initialDelayMaxValue = value
432
+ return self
433
+
434
+ def getInitialDelayMinValue(self):
435
+ return self.initialDelayMinValue
436
+
437
+ def setInitialDelayMinValue(self, value):
438
+ if value is not None:
439
+ self.initialDelayMinValue = value
440
+ return self
441
+
442
+ def getInitialRepetitionsBaseDelay(self):
443
+ return self.initialRepetitionsBaseDelay
444
+
445
+ def setInitialRepetitionsBaseDelay(self, value):
446
+ if value is not None:
447
+ self.initialRepetitionsBaseDelay = value
448
+ return self
449
+
450
+ def getInitialRepetitionsMax(self):
451
+ return self.initialRepetitionsMax
452
+
453
+ def setInitialRepetitionsMax(self, value):
454
+ if value is not None:
455
+ self.initialRepetitionsMax = value
456
+ return self
457
+
458
+
459
+ class SdServerConfig(ARObject):
460
+ def __init__(self):
461
+ super().__init__()
462
+
463
+ self.capabilityRecords = [] # type:List[TagWithOptionalValue]
464
+ self.initialOfferBehavior = None # type: InitialSdDelayConfig
465
+ self.offerCyclicDelay = None # type: TimeValue
466
+ self.requestResponseDelay = None # type: RequestResponseDelay
467
+ self.serverServiceMajorVersion = None # type: PositiveInteger
468
+ self.serverServiceMinorVersion = None # type: PositiveInteger
469
+ self.ttl = None # type: PositiveInteger
470
+
471
+ def getCapabilityRecords(self):
472
+ return self.capabilityRecords
473
+
474
+ def setCapabilityRecords(self, value):
475
+ if value is not None:
476
+ self.capabilityRecords = value
477
+ return self
478
+
479
+ def getInitialOfferBehavior(self):
480
+ return self.initialOfferBehavior
481
+
482
+ def setInitialOfferBehavior(self, value):
483
+ if value is not None:
484
+ self.initialOfferBehavior = value
485
+ return self
486
+
487
+ def getOfferCyclicDelay(self):
488
+ return self.offerCyclicDelay
489
+
490
+ def setOfferCyclicDelay(self, value):
491
+ if value is not None:
492
+ self.offerCyclicDelay = value
493
+ return self
494
+
495
+ def getRequestResponseDelay(self):
496
+ return self.requestResponseDelay
497
+
498
+ def setRequestResponseDelay(self, value):
499
+ if value is not None:
500
+ self.requestResponseDelay = value
501
+ return self
502
+
503
+ def getServerServiceMajorVersion(self):
504
+ return self.serverServiceMajorVersion
505
+
506
+ def setServerServiceMajorVersion(self, value):
507
+ if value is not None:
508
+ self.serverServiceMajorVersion = value
509
+ return self
510
+
511
+ def getServerServiceMinorVersion(self):
512
+ return self.serverServiceMinorVersion
513
+
514
+ def setServerServiceMinorVersion(self, value):
515
+ if value is not None:
516
+ self.serverServiceMinorVersion = value
517
+ return self
518
+
519
+ def getTtl(self):
520
+ return self.ttl
521
+
522
+ def setTtl(self, value):
523
+ if value is not None:
524
+ self.ttl = value
525
+ return self
526
+
527
+
528
+ class EventHandler(Identifiable):
529
+ def __init__(self, parent: ARObject, short_name: str):
530
+ super().__init__(parent, short_name)
531
+
532
+ self.applicationEndpointRef = None # type: RefType
533
+ self.consumedEventGroupRefs = [] # type: List[RefType]
534
+ self.multicastThreshold = None # type: PositiveInteger
535
+ self.routingGroupRefs = [] # type: List[RefType]
536
+ self.sdServerConfig = None # type: SdServerConfig
537
+
538
+ def getApplicationEndpointRef(self):
539
+ return self.applicationEndpointRef
540
+
541
+ def setApplicationEndpointRef(self, value):
542
+ if value is not None:
543
+ self.applicationEndpointRef = value
544
+ return self
545
+
546
+ def getConsumedEventGroupRefs(self):
547
+ return self.consumedEventGroupRefs
548
+
549
+ def addConsumedEventGroupRef(self, value):
550
+ if value is not None:
551
+ self.consumedEventGroupRefs.append(value)
552
+ return self
553
+
554
+ def getMulticastThreshold(self):
555
+ return self.multicastThreshold
556
+
557
+ def setMulticastThreshold(self, value):
558
+ if value is not None:
559
+ self.multicastThreshold = value
560
+ return self
561
+
562
+ def getRoutingGroupRefs(self):
563
+ return self.routingGroupRefs
564
+
565
+ def addRoutingGroupRef(self, value):
566
+ if value is not None:
567
+ self.routingGroupRefs.append(value)
568
+ return self
569
+
570
+ def getSdServerConfig(self):
571
+ return self.sdServerConfig
572
+
573
+ def setSdServerConfig(self, value):
574
+ if value is not None:
575
+ self.sdServerConfig = value
576
+ return self
577
+
578
+
579
+ class ProvidedServiceInstance(AbstractServiceInstance):
580
+ def __init__(self, parent: ARObject, short_name: str):
581
+ super().__init__(parent, short_name)
582
+
583
+ self.eventHandlers = [] # type: List[EventHandler]
584
+ self.instanceIdentifier = None # type: PositiveInteger
585
+ self.priority = None # type: PositiveInteger
586
+ self.sdServerConfig = None # type:SdServerConfig
587
+ self.serviceIdentifier = None # type: PositiveInteger
588
+
589
+ def getEventHandlers(self):
590
+ return self.eventHandlers
591
+
592
+ def createEventHandler(self, short_name:str) -> EventHandler:
593
+ if short_name not in self.elements:
594
+ instance = EventHandler(self, short_name)
595
+ self.addElement(instance)
596
+ self.eventHandlers.append(instance)
597
+ return self.getElement(short_name)
598
+
599
+ def getInstanceIdentifier(self):
600
+ return self.instanceIdentifier
601
+
602
+ def setInstanceIdentifier(self, value):
603
+ if value is not None:
604
+ self.instanceIdentifier = value
605
+ return self
606
+
607
+ def getPriority(self):
608
+ return self.priority
609
+
610
+ def setPriority(self, value):
611
+ if value is not None:
612
+ self.priority = value
613
+ return self
614
+
615
+ def getSdServerConfig(self):
616
+ return self.sdServerConfig
617
+
618
+ def setSdServerConfig(self, value):
619
+ if value is not None:
620
+ self.sdServerConfig = value
621
+ return self
622
+
623
+ def getServiceIdentifier(self):
624
+ return self.serviceIdentifier
625
+
626
+ def setServiceIdentifier(self, value):
627
+ if value is not None:
628
+ self.serviceIdentifier = value
629
+ return self
630
+
417
631
 
418
632
  class ApplicationEndpoint(Identifiable):
419
633
  def __init__(self, parent: ARObject, short_name: str):
@@ -461,10 +675,13 @@ class ApplicationEndpoint(Identifiable):
461
675
  def getProvidedServiceInstances(self):
462
676
  return self.providedServiceInstances
463
677
 
464
- def addProvidedServiceInstance(self, value):
465
- self.providedServiceInstances.append(value)
466
- return self
467
-
678
+ def createProvidedServiceInstance(self, short_name:str) -> ProvidedServiceInstance:
679
+ if short_name not in self.elements:
680
+ instance = ProvidedServiceInstance(self, short_name)
681
+ self.addElement(instance)
682
+ self.providedServiceInstances.append(instance)
683
+ return self.getElement(short_name)
684
+
468
685
  def getTlsCryptoMappingRef(self):
469
686
  return self.tlsCryptoMappingRef
470
687
 
@@ -624,4 +841,135 @@ class SoAdConfig(ARObject):
624
841
  self.socketAddresses.append(address)
625
842
  return address
626
843
 
844
+ class ProvidedServiceInstance(AbstractServiceInstance):
845
+ def __init__(self, parent: ARObject, short_name: str):
846
+ super().__init__(parent, short_name)
847
+
848
+ self.allowedServiceConsumerRefs = [] # type: List[RefType]
849
+ self.ProvidedServiceInstance = None # type: Boolean
850
+ self.eventHandlers = [] # type: List[EventHandler]
851
+ self.instanceIdentifier = None # type: PositiveInteger
852
+ self.loadBalancingPriority = None # type: PositiveInteger
853
+ self.loadBalancingWeight = None # type: PositiveInteger
854
+ self.localUnicastAddressRefs = [] # type: List[RefType]
855
+ self.minorVersion = None # type: PositiveInteger
856
+ self.priority = None # type: PositiveInteger
857
+ self.remoteMulticastSubscriptionAddressRefs = [] # type: List[RefType]
858
+ self.remoteUnicastAddressRefs = [] # type: List[RefType]
859
+ self.sdServerConfig = None # type: SdServerConfig
860
+ self.sdServerTimerConfigRef = None # type: RefType
861
+ self.serviceIdentifier = None # type: PositiveInteger
862
+
863
+ def getAllowedServiceConsumerRefs(self):
864
+ return self.allowedServiceConsumerRefs
865
+
866
+ def setAllowedServiceConsumerRefs(self, value):
867
+ if value is not None:
868
+ self.allowedServiceConsumerRefs = value
869
+ return self
870
+
871
+ def getProvidedServiceInstance(self):
872
+ return self.ProvidedServiceInstance
873
+
874
+ def setProvidedServiceInstance(self, value):
875
+ if value is not None:
876
+ self.ProvidedServiceInstance = value
877
+ return self
878
+
879
+ def getEventHandlers(self):
880
+ return self.eventHandlers
881
+
882
+ def createEventHandler(self, short_name:str) -> EventHandler:
883
+ if short_name not in self.elements:
884
+ instance = EventHandler(self, short_name)
885
+ self.addElement(instance)
886
+ self.eventHandlers.append(instance)
887
+ return self.getElement(short_name)
888
+
889
+ def getInstanceIdentifier(self):
890
+ return self.instanceIdentifier
891
+
892
+ def setInstanceIdentifier(self, value):
893
+ if value is not None:
894
+ self.instanceIdentifier = value
895
+ return self
896
+
897
+ def getLoadBalancingPriority(self):
898
+ return self.loadBalancingPriority
899
+
900
+ def setLoadBalancingPriority(self, value):
901
+ if value is not None:
902
+ self.loadBalancingPriority = value
903
+ return self
904
+
905
+ def getLoadBalancingWeight(self):
906
+ return self.loadBalancingWeight
627
907
 
908
+ def setLoadBalancingWeight(self, value):
909
+ if value is not None:
910
+ self.loadBalancingWeight = value
911
+ return self
912
+
913
+ def getLocalUnicastAddressRefs(self):
914
+ return self.localUnicastAddressRefs
915
+
916
+ def setLocalUnicastAddressRefs(self, value):
917
+ if value is not None:
918
+ self.localUnicastAddressRefs = value
919
+ return self
920
+
921
+ def getMinorVersion(self):
922
+ return self.minorVersion
923
+
924
+ def setMinorVersion(self, value):
925
+ if value is not None:
926
+ self.minorVersion = value
927
+ return self
928
+
929
+ def getPriority(self):
930
+ return self.priority
931
+
932
+ def setPriority(self, value):
933
+ if value is not None:
934
+ self.priority = value
935
+ return self
936
+
937
+ def getRemoteMulticastSubscriptionAddressRefs(self):
938
+ return self.remoteMulticastSubscriptionAddressRefs
939
+
940
+ def setRemoteMulticastSubscriptionAddressRefs(self, value):
941
+ if value is not None:
942
+ self.remoteMulticastSubscriptionAddressRefs = value
943
+ return self
944
+
945
+ def getRemoteUnicastAddressRefs(self):
946
+ return self.remoteUnicastAddressRefs
947
+
948
+ def setRemoteUnicastAddressRefs(self, value):
949
+ if value is not None:
950
+ self.remoteUnicastAddressRefs = value
951
+ return self
952
+
953
+ def getSdServerConfig(self):
954
+ return self.sdServerConfig
955
+
956
+ def setSdServerConfig(self, value):
957
+ if value is not None:
958
+ self.sdServerConfig = value
959
+ return self
960
+
961
+ def getSdServerTimerConfigRef(self):
962
+ return self.sdServerTimerConfigRef
963
+
964
+ def setSdServerTimerConfigRef(self, value):
965
+ if value is not None:
966
+ self.sdServerTimerConfigRef = value
967
+ return self
968
+
969
+ def getServiceIdentifier(self):
970
+ return self.serviceIdentifier
971
+
972
+ def setServiceIdentifier(self, value):
973
+ if value is not None:
974
+ self.serviceIdentifier = value
975
+ return self
@@ -22,10 +22,8 @@ class LinMaster(LinCommunicationController):
22
22
  def __init__(self, parent: ARObject, short_name: str):
23
23
  super().__init__(parent, short_name)
24
24
 
25
- # type: List[LinSlaveConfig]
26
- self.linSlaves = []
27
- # type: TimeValue
28
- self.timeBase = None
25
+ self.linSlaves = [] # type: List[LinSlaveConfig]
26
+ self.timeBase = None # type: TimeValue
29
27
  self.timeBaseJitter = None # type: TimeValue
30
28
 
31
29
  def getLinSlaves(self):
@@ -2,7 +2,7 @@ from typing import List
2
2
 
3
3
  from ....MSR.Documentation.TextModel.BlockElements import DocumentationBlock
4
4
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
5
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, RefType
6
6
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARPositiveInteger
7
7
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
8
8
 
@@ -63,6 +63,66 @@ class ISignalMapping(ARObject):
63
63
  def setTargetSignalRef(self, value):
64
64
  self.targetSignalRef = value
65
65
  return self
66
+
67
+ class DefaultValueElement(ARObject):
68
+ def __init__(self):
69
+ super().__init__()
70
+
71
+ self.elementByteValue = None # type: Integer
72
+ self.elementPosition = None # type: Integer
73
+
74
+ def getElementByteValue(self):
75
+ return self.elementByteValue
76
+
77
+ def setElementByteValue(self, value):
78
+ if value is not None:
79
+ self.elementByteValue = value
80
+ return self
81
+
82
+ def getElementPosition(self):
83
+ return self.elementPosition
84
+
85
+ def setElementPosition(self, value):
86
+ if value is not None:
87
+ self.elementPosition = value
88
+ return self
89
+
90
+ class PduMappingDefaultValue(ARObject):
91
+ def __init__(self):
92
+ super().__init__()
93
+
94
+ self.defaultValueElements = [] # type: List[DefaultValueElement]
95
+
96
+ def getDefaultValueElements(self):
97
+ return self.defaultValueElements
98
+
99
+ def addDefaultValueElements(self, value):
100
+ if value is not None:
101
+ self.defaultValueElements = value
102
+ return self
103
+
104
+ class TargetIPduRef(ARObject):
105
+ def __init__(self):
106
+ super().__init__()
107
+
108
+ self.defaultValue = None # type: PduMappingDefaultValue
109
+ self.targetIPdu = None # type: RefType
110
+
111
+ def getDefaultValue(self):
112
+ return self.defaultValue
113
+
114
+ def setDefaultValue(self, value):
115
+ if value is not None:
116
+ self.defaultValue = value
117
+ return self
118
+
119
+ def getTargetIPdu(self):
120
+ return self.targetIPdu
121
+
122
+ def setTargetIPdu(self, value):
123
+ if value is not None:
124
+ self.targetIPdu = value
125
+ return self
66
126
 
67
127
  class IPduMapping(ARObject):
68
128
  def __init__(self):
@@ -71,36 +131,42 @@ class IPduMapping(ARObject):
71
131
  self.introduction = None # type: DocumentationBlock
72
132
  self.pdurTpChunkSize = None # type: ARPositiveInteger
73
133
  self.sourceIpduRef = None # type: RefType
74
- self.targetIpduRef = None # type: RefType
134
+ self.targetIPdu = None # type: TargetIPduRef
75
135
 
76
136
  def getIntroduction(self):
77
137
  return self.introduction
78
138
 
79
139
  def setIntroduction(self, value):
80
- self.introduction = value
140
+ if value is not None:
141
+ self.introduction = value
81
142
  return self
82
143
 
83
144
  def getPdurTpChunkSize(self):
84
145
  return self.pdurTpChunkSize
85
146
 
86
147
  def setPdurTpChunkSize(self, value):
87
- self.pdurTpChunkSize = value
148
+ if value is not None:
149
+ self.pdurTpChunkSize = value
88
150
  return self
89
151
 
90
152
  def getSourceIpduRef(self):
91
153
  return self.sourceIpduRef
92
154
 
93
155
  def setSourceIpduRef(self, value):
94
- self.sourceIpduRef = value
156
+ if value is not None:
157
+ self.sourceIpduRef = value
95
158
  return self
96
159
 
97
- def getTargetIpduRef(self):
98
- return self.targetIpduRef
160
+ def getTargetIPdu(self):
161
+ return self.targetIPdu
99
162
 
100
- def setTargetIpduRef(self, value):
101
- self.targetIpduRef = value
163
+ def setTargetIPdu(self, value):
164
+ if value is not None:
165
+ self.targetIPdu = value
102
166
  return self
103
167
 
168
+
169
+
104
170
  class Gateway(FibexElement):
105
171
  def __init__(self, parent: ARObject, short_name: str):
106
172
  super().__init__(parent, short_name)
@@ -127,7 +193,7 @@ class Gateway(FibexElement):
127
193
  def getIPduMappings(self) -> List[FrameMapping]:
128
194
  return self.iPduMappings
129
195
 
130
- def addIPduMappings(self, mapping: FrameMapping):
196
+ def addIPduMapping(self, mapping: FrameMapping):
131
197
  self.iPduMappings.append(mapping)
132
198
  return self
133
199