armodel 1.7.4__py3-none-any.whl → 1.7.5__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 (29) hide show
  1. armodel/cli/file_list_cli.py +70 -0
  2. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +47 -0
  3. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +0 -0
  4. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +67 -3
  5. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +9 -0
  6. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +58 -0
  7. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +16 -1
  8. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +114 -0
  9. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +104 -1
  10. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +429 -7
  11. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +114 -6
  12. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +94 -0
  13. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +151 -6
  14. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +98 -13
  15. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +13 -1
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +135 -13
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +25 -1
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +4 -3
  19. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +1 -1
  20. armodel/models/__init__.py +3 -0
  21. armodel/parser/abstract_arxml_parser.py +2 -0
  22. armodel/parser/arxml_parser.py +353 -30
  23. armodel/writer/arxml_writer.py +471 -145
  24. {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/METADATA +31 -1
  25. {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/RECORD +29 -24
  26. {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/entry_points.txt +1 -0
  27. {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/LICENSE +0 -0
  28. {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/WHEEL +0 -0
  29. {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,9 @@
1
1
  from abc import ABCMeta
2
2
  from typing import List
3
-
4
- from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeDeclaration
5
-
6
3
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, Describable
7
4
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
8
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, RefType, ARBoolean, TimeValue
9
-
5
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, Boolean, Integer, RefType, ARBoolean, String, TimeValue, UnlimitedInteger
6
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeDeclaration
10
7
  class FibexElement(Identifiable, metaclass = ABCMeta):
11
8
  def __init__(self, parent: ARObject, short_name: str):
12
9
  if type(self) == FibexElement:
@@ -500,7 +497,7 @@ class PduTriggering(Identifiable):
500
497
  return self
501
498
 
502
499
  def getISignalTriggeringRefs(self):
503
- return self.iSignalTriggeringRefs
500
+ return sorted(self.iSignalTriggeringRefs, key = lambda i: i.getShortValue())
504
501
 
505
502
  def addISignalTriggeringRef(self, value):
506
503
  self.iSignalTriggeringRefs.append(value)
@@ -623,3 +620,151 @@ class ISignalTriggering(Identifiable):
623
620
  def addISignalPortRef(self, value):
624
621
  self.iSignalPortRefs.append(value)
625
622
  return self
623
+
624
+ class MultiplexedIPdu(IPdu):
625
+ def __init__(self, parent, short_name):
626
+ super().__init__(parent, short_name)
627
+
628
+ self.dynamicPart = None # type: DynamicPart
629
+ self.selectorFieldByteOrder = None # type: ByteOrderEnum
630
+ self.selectorFieldLength = None # type: Integer
631
+ self.selectorFieldStartPosition = None # type: Integer
632
+ self.staticPart = None # type: StaticPart
633
+ self.triggerMode = None # type: TriggerMode
634
+ self.unusedBitPattern = None # type: Integer
635
+
636
+ def getDynamicPart(self):
637
+ return self.dynamicPart
638
+
639
+ def setDynamicPart(self, value):
640
+ if value is not None:
641
+ self.dynamicPart = value
642
+ return self
643
+
644
+ def getSelectorFieldByteOrder(self):
645
+ return self.selectorFieldByteOrder
646
+
647
+ def setSelectorFieldByteOrder(self, value):
648
+ if value is not None:
649
+ self.selectorFieldByteOrder = value
650
+ return self
651
+
652
+ def getSelectorFieldLength(self):
653
+ return self.selectorFieldLength
654
+
655
+ def setSelectorFieldLength(self, value):
656
+ if value is not None:
657
+ self.selectorFieldLength = value
658
+ return self
659
+
660
+ def getSelectorFieldStartPosition(self):
661
+ return self.selectorFieldStartPosition
662
+
663
+ def setSelectorFieldStartPosition(self, value):
664
+ if value is not None:
665
+ self.selectorFieldStartPosition = value
666
+ return self
667
+
668
+ def getStaticPart(self):
669
+ return self.staticPart
670
+
671
+ def setStaticPart(self, value):
672
+ if value is not None:
673
+ self.staticPart = value
674
+ return self
675
+
676
+ def getTriggerMode(self):
677
+ return self.triggerMode
678
+
679
+ def setTriggerMode(self, value):
680
+ if value is not None:
681
+ self.triggerMode = value
682
+ return self
683
+
684
+ def getUnusedBitPattern(self):
685
+ return self.unusedBitPattern
686
+
687
+ def setUnusedBitPattern(self, value):
688
+ if value is not None:
689
+ self.unusedBitPattern = value
690
+ return self
691
+
692
+ class UserDefinedIPdu(IPdu):
693
+ def __init__(self, parent, short_name):
694
+ super().__init__(parent, short_name)
695
+
696
+ self.cddType = None # type: String
697
+
698
+ def getCddType(self):
699
+ return self.cddType
700
+
701
+ def setCddType(self, value):
702
+ if value is not None:
703
+ self.cddType = value
704
+ return self
705
+
706
+ class GeneralPurposeIPdu(IPdu):
707
+ def __init__(self, parent: ARObject, short_name: str):
708
+ super().__init__(parent, short_name)
709
+
710
+ class UserDefinedPdu(Pdu):
711
+ def __init__(self, parent: ARObject, short_name: str):
712
+ super().__init__(parent, short_name)
713
+
714
+ self.cddType = None # type: String
715
+
716
+ def getCddType(self):
717
+ return self.cddType
718
+
719
+ def setCddType(self, value):
720
+ if value is not None:
721
+ self.cddType = value
722
+ return self
723
+
724
+ class GeneralPurposePdu(Pdu):
725
+ def __init__(self, parent: ARObject, short_name: str):
726
+ super().__init__(parent, short_name)
727
+
728
+ self.hasDynamicLength = None # type: Boolean
729
+ self.length = None # type: UnlimitedInteger
730
+
731
+ def getHasDynamicLength(self):
732
+ return self.hasDynamicLength
733
+
734
+ def setHasDynamicLength(self, value):
735
+ if value is not None:
736
+ self.hasDynamicLength = value
737
+ return self
738
+
739
+ def getLength(self):
740
+ return self.length
741
+
742
+ def setLength(self, value):
743
+ if value is not None:
744
+ self.length = value
745
+ return self
746
+
747
+ class SecureCommunicationPropsSet(Identifiable):
748
+ def __init__(self, parent: ARObject, short_name: str):
749
+ super().__init__(parent, short_name)
750
+
751
+ # type: List[SecureCommunicationAuthenticationProps]
752
+ self.authenticationProps = []
753
+ # type: List[SecureCommunicationFreshnessProps]
754
+ self.freshnessProps = []
755
+
756
+ def getAuthenticationProps(self):
757
+ return self.authenticationProps
758
+
759
+ def addAuthenticationProp(self, value):
760
+ if value is not None:
761
+ self.authenticationProps.append(value)
762
+ return self
763
+
764
+ def getFreshnessProps(self):
765
+ return self.freshnessProps
766
+
767
+ def addFreshnessProp(self, value):
768
+ if value is not None:
769
+ self.freshnessProps.append(value)
770
+ return self
@@ -1,14 +1,11 @@
1
1
  from abc import ABCMeta
2
2
  from enum import Enum
3
3
  from typing import List
4
-
5
-
6
4
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
7
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, Boolean, PositiveInteger, RefType, ARLiteral, TimeValue
5
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, Boolean, PositiveInteger, PositiveUnlimitedInteger, RefType, ARLiteral, TimeValue
8
6
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
9
- from ......M2.AUTOSARTemplates.SWComponentTemplate.Communication import HandleInvalidEnum
10
7
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
11
- from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering
8
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering, LinScheduleTable
12
9
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement, FrameTriggering, ISignalTriggering, PduTriggering
13
10
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import NetworkEndpoint
14
11
 
@@ -84,6 +81,41 @@ class LinPhysicalChannel(PhysicalChannel):
84
81
  def __init__(self, parent: ARObject, short_name: str):
85
82
  super().__init__(parent, short_name)
86
83
 
84
+ self.busIdleTimeoutPeriod = None # type: TimeValue
85
+ # type: List[LinScheduleTable]
86
+ self.scheduleTables = []
87
+
88
+ def getBusIdleTimeoutPeriod(self):
89
+ return self.busIdleTimeoutPeriod
90
+
91
+ def setBusIdleTimeoutPeriod(self, value):
92
+ if value is not None:
93
+ self.busIdleTimeoutPeriod = value
94
+ return self
95
+
96
+ def getScheduleTables(self):
97
+ return self.scheduleTables
98
+
99
+ def createLinScheduleTable(self, short_name:str) -> LinScheduleTable:
100
+ if (short_name not in self.elements):
101
+ end_point = LinScheduleTable(self, short_name)
102
+ self.addElement(end_point)
103
+ self.scheduleTables.append(end_point)
104
+ return self.getElement(short_name)
105
+
106
+ class VlanConfig(Identifiable):
107
+ def __init__(self, parent: ARObject, short_name: str):
108
+ super().__init__(parent, short_name)
109
+
110
+ self.vlanIdentifier = None # type: PositiveInteger
111
+
112
+ def getVlanIdentifier(self):
113
+ return self.vlanIdentifier
114
+
115
+ def setVlanIdentifier(self, value):
116
+ if value is not None:
117
+ self.vlanIdentifier = value
118
+ return self
87
119
  class EthernetPhysicalChannel(PhysicalChannel):
88
120
  def __init__(self, parent: ARObject, short_name: str):
89
121
  super().__init__(parent, short_name)
@@ -112,9 +144,12 @@ class EthernetPhysicalChannel(PhysicalChannel):
112
144
  def getVlan(self):
113
145
  return self.vlan
114
146
 
115
- def setVlan(self, value):
116
- self.vlan = value
117
- return self
147
+ def createVlanConfig(self, short_name: str) -> VlanConfig:
148
+ if (short_name not in self.elements):
149
+ config = VlanConfig(self, short_name)
150
+ self.vlan = config
151
+ self.addElement(config)
152
+ return self.getElement(short_name)
118
153
 
119
154
  class CommunicationCluster(FibexElement, metaclass = ABCMeta):
120
155
  def __init__(self, parent: ARObject, short_name: str):
@@ -176,8 +211,58 @@ class CommunicationCluster(FibexElement, metaclass = ABCMeta):
176
211
 
177
212
  def setProtocolVersion(self, value):
178
213
  self.protocolVersion = value
179
- return self
214
+ return self
180
215
 
216
+ class CanClusterBusOffRecovery(ARObject):
217
+ def __init__(self):
218
+ super().__init__()
219
+
220
+ self.borCounterL1ToL2 = None # type: PositiveInteger
221
+ self.borTimeL1 = None # type: TimeValue
222
+ self.borTimeL2 = None # type: TimeValue
223
+ self.borTimeTxEnsured = None # type: TimeValue
224
+ self.mainFunctionPeriod = None # type: TimeValue
225
+
226
+ def getBorCounterL1ToL2(self):
227
+ return self.borCounterL1ToL2
228
+
229
+ def setBorCounterL1ToL2(self, value):
230
+ if value is not None:
231
+ self.borCounterL1ToL2 = value
232
+ return self
233
+
234
+ def getBorTimeL1(self):
235
+ return self.borTimeL1
236
+
237
+ def setBorTimeL1(self, value):
238
+ if value is not None:
239
+ self.borTimeL1 = value
240
+ return self
241
+
242
+ def getBorTimeL2(self):
243
+ return self.borTimeL2
244
+
245
+ def setBorTimeL2(self, value):
246
+ if value is not None:
247
+ self.borTimeL2 = value
248
+ return self
249
+
250
+ def getBorTimeTxEnsured(self):
251
+ return self.borTimeTxEnsured
252
+
253
+ def setBorTimeTxEnsured(self, value):
254
+ if value is not None:
255
+ self.borTimeTxEnsured = value
256
+ return self
257
+
258
+ def getMainFunctionPeriod(self):
259
+ return self.mainFunctionPeriod
260
+
261
+ def setMainFunctionPeriod(self, value):
262
+ if value is not None:
263
+ self.mainFunctionPeriod = value
264
+ return self
265
+
181
266
  class AbstractCanCluster(CommunicationCluster, metaclass = ABCMeta):
182
267
  def __init__(self, parent: ARObject, short_name: str):
183
268
  if type(self) == AbstractCanCluster:
@@ -185,10 +270,10 @@ class AbstractCanCluster(CommunicationCluster, metaclass = ABCMeta):
185
270
 
186
271
  super().__init__(parent, short_name)
187
272
 
188
- self.busOffRecovery = None
189
- self.canFdBaudrate = None
190
- self.canXlBaudrate = None
191
- self.speed = None
273
+ self.busOffRecovery = None # type: CanClusterBusOffRecovery
274
+ self.canFdBaudrate = None # type: PositiveUnlimitedInteger
275
+ self.canXlBaudrate = None # type: PositiveUnlimitedInteger
276
+ self.speed = None # type: PositiveUnlimitedInteger
192
277
 
193
278
  def getBusOffRecovery(self):
194
279
  return self.busOffRecovery
@@ -1,9 +1,9 @@
1
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, RefType, TimeValue
2
1
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCommunicationConnector, EthernetCommunicationController
3
2
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
4
3
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
5
4
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
6
5
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
6
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinTopology import LinCommunicationConnector, LinMaster
7
7
  from typing import List
8
8
 
9
9
  class EcuInstance(FibexElement):
@@ -114,6 +114,12 @@ class EcuInstance(FibexElement):
114
114
  controller = EthernetCommunicationController(self, short_name)
115
115
  self.addElement(controller)
116
116
  return self.getElement(short_name)
117
+
118
+ def createLinMaster(self, short_name: str) -> LinMaster:
119
+ if (short_name not in self.elements):
120
+ controller = LinMaster(self, short_name)
121
+ self.addElement(controller)
122
+ return self.getElement(short_name)
117
123
 
118
124
  def getConnectors(self):
119
125
  return list(sorted(filter(lambda a: isinstance(a, CommunicationConnector), self.elements.values()), key= lambda o:o.short_name))
@@ -129,6 +135,12 @@ class EcuInstance(FibexElement):
129
135
  connector = EthernetCommunicationConnector(self, short_name)
130
136
  self.addElement(connector)
131
137
  return self.getElement(short_name)
138
+
139
+ def createLinCommunicationConnector(self, short_name: str) -> LinCommunicationConnector:
140
+ if (short_name not in self.elements):
141
+ connector = LinCommunicationConnector(self, short_name)
142
+ self.addElement(connector)
143
+ return self.getElement(short_name)
132
144
 
133
145
  def getDltConfig(self):
134
146
  return self.dltConfig
@@ -3,7 +3,7 @@ from typing import List
3
3
  from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import RxIdentifierRange
4
4
  from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
5
5
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
6
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, RefType, ARBoolean
6
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, Integer, PositiveInteger, RefType, ARBoolean, TimeValue
7
7
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
8
8
 
9
9
  class NmClusterCoupling(ARObject, metaclass = ABCMeta):
@@ -210,7 +210,7 @@ class NmCluster(Identifiable, metaclass=ABCMeta):
210
210
  self.communicationClusterRef = None
211
211
  self.nmChannelId = None
212
212
  self.nmChannelSleepMaster = None
213
- self._nmNodes = [] # type: List[NmNode]
213
+ self.nmNodes = [] # type: List[NmNode]
214
214
  self.nmNodeDetectionEnabled = None
215
215
  self.nmNodeIdEnabled = None
216
216
  self.nmPncParticipation = None
@@ -240,14 +240,24 @@ class NmCluster(Identifiable, metaclass=ABCMeta):
240
240
 
241
241
  def createCanNmNode(self, short_name: str) -> CanNmNode:
242
242
  if (short_name not in self.elements):
243
- cluster = CanNmNode(self, short_name)
244
- self.elements[short_name] = cluster
245
- self._nmNodes.append(cluster)
246
- return self.elements[short_name]
243
+ node = CanNmNode(self, short_name)
244
+ self.addElement(node)
245
+ self.nmNodes.append(node)
246
+ return self.getElement(short_name)
247
+
248
+ def readUdpNmNode(self, short_name: str) -> UdpNmNode:
249
+ if (short_name not in self.elements):
250
+ node = UdpNmNode(self, short_name)
251
+ self.addElement(node)
252
+ self.nmNodes.append(node)
253
+ return self.getElement(short_name)
247
254
 
248
255
  def getCanNmNodes(self) -> List[CanNmNode]:
249
256
  return list(sorted(filter(lambda a: isinstance(a, CanNmNode), self.elements.values()), key= lambda o:o.short_name))
250
257
 
258
+ def getUdpNmNodes(self) -> List[UdpNmNode]:
259
+ return list(sorted(filter(lambda a: isinstance(a, UdpNmNode), self.elements.values()), key= lambda o:o.short_name))
260
+
251
261
  def getNmNodes(self) -> List[NmNode]:
252
262
  return list(sorted(filter(lambda a: isinstance(a, NmNode), self.elements.values()), key= lambda o:o.short_name))
253
263
 
@@ -514,10 +524,7 @@ class NmEcu(Identifiable):
514
524
 
515
525
  def setNmUserDataEnabled(self, value):
516
526
  self.nmUserDataEnabled = value
517
- return self
518
-
519
-
520
-
527
+ return self
521
528
 
522
529
  class NmConfig(FibexElement):
523
530
  def __init__(self, parent: ARObject, short_name: str):
@@ -529,12 +536,21 @@ class NmConfig(FibexElement):
529
536
  def createCanNmCluster(self, short_name: str) -> CanNmCluster:
530
537
  if (short_name not in self.elements):
531
538
  cluster = CanNmCluster(self, short_name)
532
- self.elements[short_name] = cluster
533
- return self.elements[short_name]
539
+ self.addElement(cluster)
540
+ return self.getElement(short_name)
534
541
 
542
+ def createUdpNmCluster(self, short_name: str) -> UdpNmCluster:
543
+ if (short_name not in self.elements):
544
+ cluster = UdpNmCluster(self, short_name)
545
+ self.addElement(cluster)
546
+ return self.getElement(short_name)
547
+
535
548
  def getCanNmClusters(self) -> List[CanNmCluster]:
536
549
  return list(sorted(filter(lambda a: isinstance(a, CanNmCluster), self.elements.values()), key= lambda o:o.short_name))
537
550
 
551
+ def getUdpNmClusters(self) -> List[UdpNmCluster]:
552
+ return list(sorted(filter(lambda a: isinstance(a, UdpNmCluster), self.elements.values()), key= lambda o:o.short_name))
553
+
538
554
  def getNmClusters(self) -> List[NmCluster]:
539
555
  return list(sorted(filter(lambda a: isinstance(a, NmCluster), self.elements.values()), key= lambda o:o.short_name))
540
556
 
@@ -550,4 +566,110 @@ class NmConfig(FibexElement):
550
566
 
551
567
  def addNmIfEcus(self, value):
552
568
  self.nmIfEcus.append(value)
553
- return self
569
+ return self
570
+
571
+ class UdpNmCluster(NmCluster):
572
+ def __init__(self, parent: ARObject, short_name: str):
573
+ super().__init__(parent, short_name)
574
+
575
+ self.nmCbvPosition = None # type: Integer
576
+ self.nmImmediateNmCycleTime = None # type: TimeValue
577
+ self.nmImmediateNmTransmissions = None # type: PositiveInteger
578
+ self.nmMessageTimeoutTime = None # type: TimeValue
579
+ self.nmMsgCycleTime = None # type: TimeValue
580
+ self.nmNetworkTimeout = None # type: TimeValue
581
+ self.nmNidPosition = None # type: Integer
582
+ self.nmRemoteSleepIndicationTime = None # type: TimeValue
583
+ self.nmRepeatMessageTime = None # type: TimeValue
584
+ self.nmWaitBusSleepTime = None # type: TimeValue
585
+ self.vlanRef = None # type: RefType
586
+
587
+ def getNmCbvPosition(self):
588
+ return self.nmCbvPosition
589
+
590
+ def setNmCbvPosition(self, value):
591
+ if value is not None:
592
+ self.nmCbvPosition = value
593
+ return self
594
+
595
+ def getNmImmediateNmCycleTime(self):
596
+ return self.nmImmediateNmCycleTime
597
+
598
+ def setNmImmediateNmCycleTime(self, value):
599
+ if value is not None:
600
+ self.nmImmediateNmCycleTime = value
601
+ return self
602
+
603
+ def getNmImmediateNmTransmissions(self):
604
+ return self.nmImmediateNmTransmissions
605
+
606
+ def setNmImmediateNmTransmissions(self, value):
607
+ if value is not None:
608
+ self.nmImmediateNmTransmissions = value
609
+ return self
610
+
611
+ def getNmMessageTimeoutTime(self):
612
+ return self.nmMessageTimeoutTime
613
+
614
+ def setNmMessageTimeoutTime(self, value):
615
+ if value is not None:
616
+ self.nmMessageTimeoutTime = value
617
+ return self
618
+
619
+ def getNmMsgCycleTime(self):
620
+ return self.nmMsgCycleTime
621
+
622
+ def setNmMsgCycleTime(self, value):
623
+ if value is not None:
624
+ self.nmMsgCycleTime = value
625
+ return self
626
+
627
+ def getNmNetworkTimeout(self):
628
+ return self.nmNetworkTimeout
629
+
630
+ def setNmNetworkTimeout(self, value):
631
+ if value is not None:
632
+ self.nmNetworkTimeout = value
633
+ return self
634
+
635
+ def getNmNidPosition(self):
636
+ return self.nmNidPosition
637
+
638
+ def setNmNidPosition(self, value):
639
+ if value is not None:
640
+ self.nmNidPosition = value
641
+ return self
642
+
643
+ def getNmRemoteSleepIndicationTime(self):
644
+ return self.nmRemoteSleepIndicationTime
645
+
646
+ def setNmRemoteSleepIndicationTime(self, value):
647
+ if value is not None:
648
+ self.nmRemoteSleepIndicationTime = value
649
+ return self
650
+
651
+ def getNmRepeatMessageTime(self):
652
+ return self.nmRepeatMessageTime
653
+
654
+ def setNmRepeatMessageTime(self, value):
655
+ if value is not None:
656
+ self.nmRepeatMessageTime = value
657
+ return self
658
+
659
+ def getNmWaitBusSleepTime(self):
660
+ return self.nmWaitBusSleepTime
661
+
662
+ def setNmWaitBusSleepTime(self, value):
663
+ if value is not None:
664
+ self.nmWaitBusSleepTime = value
665
+ return self
666
+
667
+ def getVlanRef(self):
668
+ return self.vlanRef
669
+
670
+ def setVlanRef(self, value):
671
+ if value is not None:
672
+ self.vlanRef = value
673
+ return self
674
+
675
+
@@ -1,6 +1,30 @@
1
+ from typing import List
1
2
  from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
2
3
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
4
 
4
5
  class CanTpConfig(FibexElement):
5
6
  def __init__(self, parent: ARObject, short_name: str):
6
- super().__init__(parent, short_name)
7
+ super().__init__(parent, short_name)
8
+
9
+ class DoIpTpConfig(FibexElement):
10
+ def __init__(self, parent: ARObject, short_name: str):
11
+ super().__init__(parent, short_name)
12
+
13
+ self.doIpLogicAddresses = [] # type: List[DoIpLogicAddress]
14
+ self.tpConnections = [] # typeL List[DoIpTpConnection]
15
+
16
+ def getDoIpLogicAddresses(self):
17
+ return self.doIpLogicAddresses
18
+
19
+ def addDoIpLogicAddress(self, value):
20
+ if value is not None:
21
+ self.doIpLogicAddresses.append(value)
22
+ return self
23
+
24
+ def getTpConnections(self):
25
+ return self.tpConnections
26
+
27
+ def addTpConnection(self, value):
28
+ if value is not None:
29
+ self.tpConnections.append(value)
30
+ return self
@@ -277,7 +277,7 @@ class System(ARElement):
277
277
  self.clientIdDefinitionSetRefs = [] # type: List[RefType]
278
278
  self.containerIPduHeaderByteOrder = None
279
279
  self.ecuExtractVersion = None
280
- self.fibexElements = []
280
+ self.fibexElements = [] # type: List[RefType]
281
281
  self.interpolationRoutineMappingSetRefs = [] # type: List[RefType]
282
282
  self.j1939SharedAddressClusters = []
283
283
  self.mappings = [] # type: List[SystemMapping]
@@ -310,10 +310,11 @@ class System(ARElement):
310
310
  return self
311
311
 
312
312
  def getFibexElementRefs(self):
313
- return self.fibexElements
313
+ return sorted(self.fibexElements, key= lambda i: i.getShortValue())
314
314
 
315
315
  def addFibexElementRef(self, value):
316
- self.fibexElements.append(value)
316
+ if value is not None:
317
+ self.fibexElements.append(value)
317
318
  return self
318
319
 
319
320
  def getInterpolationRoutineMappingSetRefs(self):
@@ -114,7 +114,7 @@ class SwRecordLayoutGroup(ARObject):
114
114
  self.shortLabel = None # type: ARLiteral
115
115
  self.swGenericAxisParamTypeRef = None # type: RefType
116
116
  self.swRecordLayoutComponent = None # type: ARLiteral
117
- self.swRecordLayoutGroupAxis = None # type: ARNumerical
117
+ self.swRecordLayoutGroupAxis = None # type: AxisIndexType
118
118
  self.swRecordLayoutGroupContentType = None # type: SwRecordLayoutGroupContent
119
119
  self.swRecordLayoutGroupFrom = None # type: ARLiteral
120
120
  self.swRecordLayoutGroupIndex = None # type: ARLiteral
@@ -34,6 +34,7 @@ from .M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.MemorySectionUsage
34
34
  from .M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import *
35
35
  from .M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import *
36
36
  from .M2.AUTOSARTemplates.CommonStructure.TriggerDeclaration import *
37
+ from .M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import *
37
38
  from .M2.AUTOSARTemplates.SWComponentTemplate import *
38
39
  from .M2.AUTOSARTemplates.SWComponentTemplate.Communication import *
39
40
  from .M2.AUTOSARTemplates.SWComponentTemplate.Components import *
@@ -52,6 +53,7 @@ from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall imp
52
53
  from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import *
53
54
  from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.Trigger import *
54
55
  from .M2.AUTOSARTemplates.SystemTemplate.DataMapping import *
56
+ from .M2.AUTOSARTemplates.SystemTemplate.DiagnosticConnection import *
55
57
  from .M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import *
56
58
  from .M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import *
57
59
  from .M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import *
@@ -59,6 +61,7 @@ from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import *
59
61
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import *
60
62
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import *
61
63
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import *
64
+ from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinTopology import *
62
65
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import *
63
66
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import *
64
67
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import *
@@ -154,12 +154,14 @@ class AbstractARXMLParser:
154
154
  time_value.setValue(child_element.text)
155
155
  return time_value
156
156
 
157
+ '''
157
158
  def getChildElementBooleanValue(self, short_name: str, element: ET.Element, key: str) -> Boolean:
158
159
  literal = self.getChildElementLiteral(short_name, element, key)
159
160
  bool_value = Boolean()
160
161
  bool_value.timestamp = literal.timestamp
161
162
  bool_value.value = self._convertStringToBooleanValue(literal._value)
162
163
  return bool_value
164
+ '''
163
165
 
164
166
  def getChildElementOptionalBooleanValue(self, element: ET.Element, key: str) -> Boolean:
165
167
  literal = self.getChildElementOptionalLiteral(element, key)