armodel 1.7.3__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 (43) hide show
  1. armodel/cli/file_list_cli.py +70 -0
  2. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2 -1
  3. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +1 -1
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +6 -7
  5. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +47 -0
  6. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +0 -0
  7. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +73 -3
  8. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +37 -1
  9. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +17 -1
  10. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +31 -0
  11. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +4 -3
  12. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +17 -32
  13. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +4 -0
  14. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +7 -1
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +47 -15
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +58 -0
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +244 -0
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +281 -0
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +328 -0
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +522 -11
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +114 -6
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +94 -0
  23. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +151 -6
  24. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +140 -12
  25. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +31 -6
  26. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +7 -12
  27. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +135 -13
  28. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +25 -1
  29. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +4 -3
  30. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +0 -1
  31. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +1 -1
  32. armodel/models/__init__.py +6 -0
  33. armodel/parser/abstract_arxml_parser.py +2 -0
  34. armodel/parser/arxml_parser.py +561 -62
  35. armodel/tests/test_armodel/models/test_ar_ref.py +2 -2
  36. armodel/writer/abstract_arxml_writer.py +1 -3
  37. armodel/writer/arxml_writer.py +702 -223
  38. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/METADATA +47 -2
  39. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/RECORD +43 -34
  40. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/entry_points.txt +1 -0
  41. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/LICENSE +0 -0
  42. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/WHEEL +0 -0
  43. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,94 @@
1
+ from typing import List
2
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, String, TimeValue
4
+ from .......models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
5
+
6
+
7
+ class LinCommunicationController(CommunicationController):
8
+ def __init__(self, parent: ARObject, short_name: str):
9
+ super().__init__(parent, short_name)
10
+
11
+ self.protocolVersion = None # type: String
12
+
13
+ def getProtocolVersion(self):
14
+ return self.protocolVersion
15
+
16
+ def setProtocolVersion(self, value):
17
+ if value is not None:
18
+ self.protocolVersion = value
19
+ return self
20
+
21
+ class LinMaster(LinCommunicationController):
22
+ def __init__(self, parent: ARObject, short_name: str):
23
+ super().__init__(parent, short_name)
24
+
25
+ # type: List[LinSlaveConfig]
26
+ self.linSlaves = []
27
+ # type: TimeValue
28
+ self.timeBase = None
29
+ self.timeBaseJitter = None # type: TimeValue
30
+
31
+ def getLinSlaves(self):
32
+ return self.linSlaves
33
+
34
+ def addLinSlaves(self, value):
35
+ if value is not None:
36
+ self.linSlaves.append(value)
37
+ return self
38
+
39
+ def getTimeBase(self):
40
+ return self.timeBase
41
+
42
+ def setTimeBase(self, value):
43
+ if value is not None:
44
+ self.timeBase = value
45
+ return self
46
+
47
+ def getTimeBaseJitter(self):
48
+ return self.timeBaseJitter
49
+
50
+ def setTimeBaseJitter(self, value):
51
+ if value is not None:
52
+ self.timeBaseJitter = value
53
+ return self
54
+
55
+ class LinCommunicationConnector(CommunicationConnector):
56
+ def __init__(self, parent: ARObject, short_name: str):
57
+ super().__init__(parent, short_name)
58
+
59
+ self.initialNad = None # type: Integer
60
+ self.linConfigurableFrames = [] # type: List[LinConfigurableFrame]
61
+ self.linOrderedConfigurableFrames = [] # type: List[LinOrderedConfigurableFrame]
62
+ self.scheduleChangeNextTimeBase = None # type: Boolean
63
+
64
+ def getInitialNad(self):
65
+ return self.initialNad
66
+
67
+ def setInitialNad(self, value):
68
+ if value is not None:
69
+ self.initialNad = value
70
+ return self
71
+
72
+ def getLinConfigurableFrames(self):
73
+ return self.linConfigurableFrames
74
+
75
+ def addLinConfigurableFrame(self, value):
76
+ if value is not None:
77
+ self.linConfigurableFrames.append(value)
78
+ return self
79
+
80
+ def getLinOrderedConfigurableFrames(self):
81
+ return self.linOrderedConfigurableFrames
82
+
83
+ def addLinOrderedConfigurableFrame(self, value):
84
+ if value is not None:
85
+ self.linOrderedConfigurableFrames.append(value)
86
+ return self
87
+
88
+ def getScheduleChangeNextTimeBase(self):
89
+ return self.scheduleChangeNextTimeBase
90
+
91
+ def setScheduleChangeNextTimeBase(self, value):
92
+ if value is not None:
93
+ self.scheduleChangeNextTimeBase = value
94
+ return self
@@ -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,13 @@
1
1
  from abc import ABCMeta
2
2
  from enum import Enum
3
3
  from typing import List
4
-
5
- from ......M2.AUTOSARTemplates.SWComponentTemplate.Communication import HandleInvalidEnum
6
- from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
7
- from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering
8
- from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement, FrameTriggering, ISignalTriggering, PduTriggering
9
4
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
10
- 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
11
6
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
7
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
8
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering, LinScheduleTable
9
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement, FrameTriggering, ISignalTriggering, PduTriggering
10
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import NetworkEndpoint
12
11
 
13
12
  class PhysicalChannel (Identifiable, metaclass = ABCMeta):
14
13
  def __init__(self, parent: ARObject, short_name: str):
@@ -80,7 +79,77 @@ class CanPhysicalChannel(AbstractCanPhysicalChannel):
80
79
 
81
80
  class LinPhysicalChannel(PhysicalChannel):
82
81
  def __init__(self, parent: ARObject, short_name: str):
83
- super().__init__(parent, short_name)
82
+ super().__init__(parent, short_name)
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
119
+ class EthernetPhysicalChannel(PhysicalChannel):
120
+ def __init__(self, parent: ARObject, short_name: str):
121
+ super().__init__(parent, short_name)
122
+
123
+ self.networkEndpoints = [] # type: List[NetworkEndpoint]
124
+ self.soAdConfig = None # type: SoAdConfig
125
+ self.vlan = None # type: VlanConfig
126
+
127
+ def getNetworkEndpoints(self):
128
+ return self.networkEndpoints
129
+
130
+ def createNetworkEndPoint(self, short_name:str) -> NetworkEndpoint:
131
+ if (short_name not in self.elements):
132
+ end_point = NetworkEndpoint(self, short_name)
133
+ self.addElement(end_point)
134
+ self.networkEndpoints.append(end_point)
135
+ return self.getElement(short_name)
136
+
137
+ def getSoAdConfig(self):
138
+ return self.soAdConfig
139
+
140
+ def setSoAdConfig(self, value):
141
+ self.soAdConfig = value
142
+ return self
143
+
144
+ def getVlan(self):
145
+ return self.vlan
146
+
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)
84
153
 
85
154
  class CommunicationCluster(FibexElement, metaclass = ABCMeta):
86
155
  def __init__(self, parent: ARObject, short_name: str):
@@ -109,6 +178,9 @@ class CommunicationCluster(FibexElement, metaclass = ABCMeta):
109
178
  def getLinPhysicalChannels(self) -> List[LinPhysicalChannel]:
110
179
  return list(sorted(filter(lambda a: isinstance(a, LinPhysicalChannel), self.elements.values()), key= lambda o:o.getShortName()))
111
180
 
181
+ def getEthernetPhysicalChannels(self) -> List[EthernetPhysicalChannel]:
182
+ return list(sorted(filter(lambda a: isinstance(a, EthernetPhysicalChannel), self.elements.values()), key= lambda o:o.getShortName()))
183
+
112
184
  def createCanPhysicalChannel(self, short_name: str):
113
185
  if (short_name not in self.elements):
114
186
  channel = CanPhysicalChannel(self, short_name)
@@ -120,6 +192,12 @@ class CommunicationCluster(FibexElement, metaclass = ABCMeta):
120
192
  channel = LinPhysicalChannel(self, short_name)
121
193
  self.addElement(channel)
122
194
  return self.getElement(short_name)
195
+
196
+ def createEthernetPhysicalChannel(self, short_name: str):
197
+ if (short_name not in self.elements):
198
+ channel = EthernetPhysicalChannel(self, short_name)
199
+ self.addElement(channel)
200
+ return self.getElement(short_name)
123
201
 
124
202
  def getProtocolName(self):
125
203
  return self.protocolName
@@ -133,8 +211,58 @@ class CommunicationCluster(FibexElement, metaclass = ABCMeta):
133
211
 
134
212
  def setProtocolVersion(self, value):
135
213
  self.protocolVersion = value
136
- return self
214
+ return self
137
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
+
138
266
  class AbstractCanCluster(CommunicationCluster, metaclass = ABCMeta):
139
267
  def __init__(self, parent: ARObject, short_name: str):
140
268
  if type(self) == AbstractCanCluster:
@@ -142,10 +270,10 @@ class AbstractCanCluster(CommunicationCluster, metaclass = ABCMeta):
142
270
 
143
271
  super().__init__(parent, short_name)
144
272
 
145
- self.busOffRecovery = None
146
- self.canFdBaudrate = None
147
- self.canXlBaudrate = None
148
- 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
149
277
 
150
278
  def getBusOffRecovery(self):
151
279
  return self.busOffRecovery
@@ -1,8 +1,9 @@
1
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, RefType, TimeValue
1
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCommunicationConnector, EthernetCommunicationController
2
2
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
3
3
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
4
4
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
5
5
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
6
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinTopology import LinCommunicationConnector, LinMaster
6
7
  from typing import List
7
8
 
8
9
  class EcuInstance(FibexElement):
@@ -105,17 +106,41 @@ class EcuInstance(FibexElement):
105
106
  def createCanCommunicationController(self, short_name: str) -> CanCommunicationController:
106
107
  if (short_name not in self.elements):
107
108
  controller = CanCommunicationController(self, short_name)
108
- self.elements[short_name] = controller
109
- return self.elements[short_name]
109
+ self.addElement(controller)
110
+ return self.getElement(short_name)
111
+
112
+ def createEthernetCommunicationController(self, short_name: str) -> EthernetCommunicationController:
113
+ if (short_name not in self.elements):
114
+ controller = EthernetCommunicationController(self, short_name)
115
+ self.addElement(controller)
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)
110
123
 
111
124
  def getConnectors(self):
112
125
  return list(sorted(filter(lambda a: isinstance(a, CommunicationConnector), self.elements.values()), key= lambda o:o.short_name))
113
126
 
114
127
  def createCanCommunicationConnector(self, short_name: str) -> CanCommunicationConnector:
115
128
  if (short_name not in self.elements):
116
- controller = CanCommunicationConnector(self, short_name)
117
- self.elements[short_name] = controller
118
- return self.elements[short_name]
129
+ connector = CanCommunicationConnector(self, short_name)
130
+ self.addElement(connector)
131
+ return self.getElement(short_name)
132
+
133
+ def createEthernetCommunicationConnector(self, short_name: str) -> EthernetCommunicationConnector:
134
+ if (short_name not in self.elements):
135
+ connector = EthernetCommunicationConnector(self, short_name)
136
+ self.addElement(connector)
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)
119
144
 
120
145
  def getDltConfig(self):
121
146
  return self.dltConfig
@@ -1,3 +1,4 @@
1
+ from typing import List
1
2
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Describable
2
3
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
4
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, RefType, TimeValue
@@ -109,8 +110,7 @@ class TransmissionModeTiming(ARObject):
109
110
  super().__init__()
110
111
 
111
112
  self.cyclicTiming = None # type: CyclicTiming
112
- # type: EventControlledTiming
113
- self.eventControlledTiming = None
113
+ self.eventControlledTiming = None # type: EventControlledTiming
114
114
 
115
115
  def getCyclicTiming(self):
116
116
  return self.cyclicTiming
@@ -130,16 +130,11 @@ class TransmissionModeDeclaration(ARObject):
130
130
  def __init__(self):
131
131
  super().__init__()
132
132
 
133
- # type: ModeDrivenTransmissionModeCondition
134
- self.modeDrivenFalseConditions = []
135
- # type: ModeDrivenTransmissionModeCondition
136
- self.modeDrivenTrueConditions = []
137
- # type: TransmissionModeCondition
138
- self.transmissionModeConditions = []
139
- # type: TransmissionModeTiming
140
- self.transmissionModeFalseTiming = None
141
- # type: TransmissionModeTiming
142
- self.transmissionModeTrueTiming = None
133
+ self.modeDrivenFalseConditions = [] # type: List[ModeDrivenTransmissionModeCondition]
134
+ self.modeDrivenTrueConditions = [] # type: List[ModeDrivenTransmissionModeCondition]
135
+ self.transmissionModeConditions = [] # typeL List[TransmissionModeCondition]
136
+ self.transmissionModeFalseTiming = None # type: TransmissionModeTiming
137
+ self.transmissionModeTrueTiming = None # type: TransmissionModeTiming
143
138
 
144
139
  def getModeDrivenFalseConditions(self):
145
140
  return self.modeDrivenFalseConditions