armodel 1.7.3__py3-none-any.whl → 1.7.4__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 (31) hide show
  1. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2 -1
  2. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +1 -1
  3. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +6 -7
  4. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +7 -1
  5. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +28 -1
  6. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +17 -1
  7. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +31 -0
  8. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +4 -3
  9. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +17 -32
  10. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +4 -0
  11. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +7 -1
  12. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +47 -15
  13. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +229 -0
  14. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +167 -0
  15. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +225 -0
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +96 -7
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +47 -4
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +18 -5
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +7 -12
  20. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +0 -1
  21. armodel/models/__init__.py +3 -0
  22. armodel/parser/arxml_parser.py +222 -46
  23. armodel/tests/test_armodel/models/test_ar_ref.py +2 -2
  24. armodel/writer/abstract_arxml_writer.py +1 -3
  25. armodel/writer/arxml_writer.py +256 -103
  26. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/METADATA +17 -2
  27. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/RECORD +31 -27
  28. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/LICENSE +0 -0
  29. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/WHEEL +0 -0
  30. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/entry_points.txt +0 -0
  31. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,167 @@
1
+ from typing import List
2
+
3
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
4
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Integer, PositiveInteger, PositiveUnlimitedInteger, RefType, TimeValue
5
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
6
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationCluster, CommunicationConnector, CommunicationController, PhysicalChannel
7
+
8
+ class EthernetCluster(CommunicationCluster):
9
+ def __init__(self, parent: ARObject, short_name: str):
10
+ super().__init__(parent, short_name)
11
+
12
+ self.couplingPorts = [] # type: List[CouplingPortConnection]
13
+ self.couplingPortStartupActiveTime = None # type: TimeValue
14
+ self.couplingPortSwitchoffDelay = None # type: TimeValue
15
+ self.macMulticastGroups = [] # type: MacMulticastGroup
16
+
17
+ def getCouplingPorts(self):
18
+ return self.couplingPorts
19
+
20
+ def setCouplingPorts(self, value):
21
+ self.couplingPorts = value
22
+ return self
23
+
24
+ def getCouplingPortStartupActiveTime(self):
25
+ return self.couplingPortStartupActiveTime
26
+
27
+ def setCouplingPortStartupActiveTime(self, value):
28
+ self.couplingPortStartupActiveTime = value
29
+ return self
30
+
31
+ def getCouplingPortSwitchoffDelay(self):
32
+ return self.couplingPortSwitchoffDelay
33
+
34
+ def setCouplingPortSwitchoffDelay(self, value):
35
+ self.couplingPortSwitchoffDelay = value
36
+ return self
37
+
38
+ def getMacMulticastGroups(self):
39
+ return self.macMulticastGroups
40
+
41
+ def setMacMulticastGroups(self, value):
42
+ self.macMulticastGroups = value
43
+ return self
44
+
45
+ class CouplingPort(Identifiable):
46
+ def __init__(self, parent, short_name):
47
+ super().__init__(parent, short_name)
48
+
49
+ self.connectionNegotiationBehavior = None # type: EthernetConnectionNegotiationEnum
50
+
51
+
52
+ class EthernetCommunicationController(CommunicationController):
53
+ def __init__(self, parent: ARObject, short_name: str):
54
+ super().__init__(parent, short_name)
55
+
56
+ self.canXlConfigRef = None # type: RefType
57
+ self.couplingPorts = [] # type: List[CouplingPort]
58
+ self.macLayerType = None # type: EthernetMacLayerTypeEnum
59
+ self.macUnicastAddress = None # type: MacAddressString
60
+ self.maximumReceiveBufferLength = None # type: Integer
61
+ self.maximumTransmitBufferLength = None # type: Integer
62
+ self.slaveActAsPassiveCommunicationSlave = None # type: Boolean
63
+ self.slaveQualifiedUnexpectedLinkDownTime = None # type: TimeValue
64
+
65
+ def getCanXlConfigRef(self):
66
+ return self.canXlConfigRef
67
+
68
+ def setCanXlConfigRef(self, value):
69
+ self.canXlConfigRef = value
70
+ return self
71
+
72
+ def getCouplingPorts(self):
73
+ return self.couplingPorts
74
+
75
+ def addCouplingPort(self, value):
76
+ self.couplingPorts.append(value)
77
+ return self
78
+
79
+ def getMacLayerType(self):
80
+ return self.macLayerType
81
+
82
+ def setMacLayerType(self, value):
83
+ self.macLayerType = value
84
+ return self
85
+
86
+ def getMacUnicastAddress(self):
87
+ return self.macUnicastAddress
88
+
89
+ def setMacUnicastAddress(self, value):
90
+ self.macUnicastAddress = value
91
+ return self
92
+
93
+ def getMaximumReceiveBufferLength(self):
94
+ return self.maximumReceiveBufferLength
95
+
96
+ def setMaximumReceiveBufferLength(self, value):
97
+ self.maximumReceiveBufferLength = value
98
+ return self
99
+
100
+ def getMaximumTransmitBufferLength(self):
101
+ return self.maximumTransmitBufferLength
102
+
103
+ def setMaximumTransmitBufferLength(self, value):
104
+ self.maximumTransmitBufferLength = value
105
+ return self
106
+
107
+ def getSlaveActAsPassiveCommunicationSlave(self):
108
+ return self.slaveActAsPassiveCommunicationSlave
109
+
110
+ def setSlaveActAsPassiveCommunicationSlave(self, value):
111
+ self.slaveActAsPassiveCommunicationSlave = value
112
+ return self
113
+
114
+ def getSlaveQualifiedUnexpectedLinkDownTime(self):
115
+ return self.slaveQualifiedUnexpectedLinkDownTime
116
+
117
+ def setSlaveQualifiedUnexpectedLinkDownTime(self, value):
118
+ self.slaveQualifiedUnexpectedLinkDownTime = value
119
+ return self
120
+
121
+ class EthernetCommunicationConnector(CommunicationConnector):
122
+ def __init__(self, parent: ARObject, short_name: str):
123
+ super().__init__(parent, short_name)
124
+
125
+ self.ethIpPropsRef = None # type: RefType
126
+ self.maximumTransmissionUnit = None # type: PositiveInteger
127
+ self.neighborCacheSize = None # type: PositiveInteger
128
+ self.pathMtuEnabled = None # type: Boolean
129
+ self.pathMtuTimeout = None # type: TimeValue
130
+
131
+ def getEthIpPropsRef(self):
132
+ return self.ethIpPropsRef
133
+
134
+ def setEthIpPropsRef(self, value):
135
+ self.ethIpPropsRef = value
136
+ return self
137
+
138
+ def getMaximumTransmissionUnit(self):
139
+ return self.maximumTransmissionUnit
140
+
141
+ def setMaximumTransmissionUnit(self, value):
142
+ self.maximumTransmissionUnit = value
143
+ return self
144
+
145
+ def getNeighborCacheSize(self):
146
+ return self.neighborCacheSize
147
+
148
+ def setNeighborCacheSize(self, value):
149
+ self.neighborCacheSize = value
150
+ return self
151
+
152
+ def getPathMtuEnabled(self):
153
+ return self.pathMtuEnabled
154
+
155
+ def setPathMtuEnabled(self, value):
156
+ self.pathMtuEnabled = value
157
+ return self
158
+
159
+ def getPathMtuTimeout(self):
160
+ return self.pathMtuTimeout
161
+
162
+ def setPathMtuTimeout(self, value):
163
+ self.pathMtuTimeout = value
164
+ return self
165
+
166
+
167
+
@@ -0,0 +1,225 @@
1
+ from abc import ABCMeta
2
+ from typing import List
3
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
5
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Ip4AddressString, Ip6AddressString, PositiveInteger, String
6
+
7
+ class NetworkEndpointAddress(ARObject, metaclass = ABCMeta):
8
+ def __init__(self):
9
+ if type(self) == NetworkEndpointAddress:
10
+ raise NotImplementedError("NetworkEndpointAddress is an abstract class.")
11
+
12
+ super().__init__()
13
+
14
+ class Ipv4Configuration(NetworkEndpointAddress):
15
+ def __init__(self):
16
+ super().__init__()
17
+
18
+ self.assignmentPriority = None # type: PositiveInteger
19
+ self.defaultGateway = None # type: Ip4AddressString
20
+ self.dnsServerAddresses = [] # type: List[Ip4AddressString]
21
+ self.ipAddressKeepBehavior = None # type: IpAddressKeepEnum
22
+ self.ipv4Address = None # type: Ip4AddressString
23
+ self.ipv4AddressSource = None # type: Ipv4AddressSourceEnum
24
+ self.networkMask = None # type: Ip4AddressString
25
+ self.ttl = None # type: PositiveInteger
26
+
27
+ def getAssignmentPriority(self):
28
+ return self.assignmentPriority
29
+
30
+ def setAssignmentPriority(self, value):
31
+ self.assignmentPriority = value
32
+ return self
33
+
34
+ def getDefaultGateway(self):
35
+ return self.defaultGateway
36
+
37
+ def setDefaultGateway(self, value):
38
+ self.defaultGateway = value
39
+ return self
40
+
41
+ def getDnsServerAddresses(self):
42
+ return self.dnsServerAddresses
43
+
44
+ def addDnsServerAddress(self, value):
45
+ self.dnsServerAddresses.append(value)
46
+ return self
47
+
48
+ def getIpAddressKeepBehavior(self):
49
+ return self.ipAddressKeepBehavior
50
+
51
+ def setIpAddressKeepBehavior(self, value):
52
+ self.ipAddressKeepBehavior = value
53
+ return self
54
+
55
+ def getIpv4Address(self):
56
+ return self.ipv4Address
57
+
58
+ def setIpv4Address(self, value):
59
+ self.ipv4Address = value
60
+ return self
61
+
62
+ def getIpv4AddressSource(self):
63
+ return self.ipv4AddressSource
64
+
65
+ def setIpv4AddressSource(self, value):
66
+ self.ipv4AddressSource = value
67
+ return self
68
+
69
+ def getNetworkMask(self):
70
+ return self.networkMask
71
+
72
+ def setNetworkMask(self, value):
73
+ self.networkMask = value
74
+ return self
75
+
76
+ def getTtl(self):
77
+ return self.ttl
78
+
79
+ def setTtl(self, value):
80
+ self.ttl = value
81
+ return self
82
+
83
+ class Ipv6Configuration(NetworkEndpointAddress):
84
+ def __init__(self):
85
+ super().__init__()
86
+
87
+ self.assignmentPriority = None # type: PositiveInteger
88
+ self.defaultRouter = None # type: Ip6AddressString
89
+ self.dnsServerAddresses = [] # type: List[Ip6AddressString]
90
+ self.enableAnycast = None # type: Boolean
91
+ self.hopCount = None # type: PositiveInteger
92
+ self.ipAddressKeepBehavior = None # type: IpAddressKeepEnum
93
+ self.ipAddressPrefixLength = None # type: PositiveInteger
94
+ self.ipv6Address = None # type: Ip6AddressString
95
+ self.ipv6AddressSource = None # type: Ipv6AddressSourceEnum
96
+
97
+ def getAssignmentPriority(self):
98
+ return self.assignmentPriority
99
+
100
+ def setAssignmentPriority(self, value):
101
+ self.assignmentPriority = value
102
+ return self
103
+
104
+ def getDefaultRouter(self):
105
+ return self.defaultRouter
106
+
107
+ def setDefaultRouter(self, value):
108
+ self.defaultRouter = value
109
+ return self
110
+
111
+ def getDnsServerAddresses(self):
112
+ return self.dnsServerAddresses
113
+
114
+ def setDnsServerAddresses(self, value):
115
+ self.dnsServerAddresses = value
116
+ return self
117
+
118
+ def getEnableAnycast(self):
119
+ return self.enableAnycast
120
+
121
+ def setEnableAnycast(self, value):
122
+ self.enableAnycast = value
123
+ return self
124
+
125
+ def getHopCount(self):
126
+ return self.hopCount
127
+
128
+ def setHopCount(self, value):
129
+ self.hopCount = value
130
+ return self
131
+
132
+ def getIpAddressKeepBehavior(self):
133
+ return self.ipAddressKeepBehavior
134
+
135
+ def setIpAddressKeepBehavior(self, value):
136
+ self.ipAddressKeepBehavior = value
137
+ return self
138
+
139
+ def getIpAddressPrefixLength(self):
140
+ return self.ipAddressPrefixLength
141
+
142
+ def setIpAddressPrefixLength(self, value):
143
+ self.ipAddressPrefixLength = value
144
+ return self
145
+
146
+ def getIpv6Address(self):
147
+ return self.ipv6Address
148
+
149
+ def setIpv6Address(self, value):
150
+ self.ipv6Address = value
151
+ return self
152
+
153
+ def getIpv6AddressSource(self):
154
+ return self.ipv6AddressSource
155
+
156
+ def setIpv6AddressSource(self, value):
157
+ self.ipv6AddressSource = value
158
+ return self
159
+
160
+
161
+ class InfrastructureServices(ARObject):
162
+ def __init__(self):
163
+ super().__init__()
164
+
165
+ self.doIpEntity = None # type: DoIpEntity
166
+ self.timeSynchronization = None # type: TimeSynchronization
167
+
168
+ def getDoIpEntity(self):
169
+ return self.doIpEntity
170
+
171
+ def setDoIpEntity(self, value):
172
+ self.doIpEntity = value
173
+ return self
174
+
175
+ def getTimeSynchronization(self):
176
+ return self.timeSynchronization
177
+
178
+ def setTimeSynchronization(self, value):
179
+ self.timeSynchronization = value
180
+ return self
181
+
182
+ class NetworkEndpoint(Identifiable):
183
+ def __init__(self, parent: ARObject, short_name: str):
184
+ super().__init__(parent, short_name)
185
+
186
+ self.fullyQualifiedDomainName = None # type: String
187
+ self.infrastructureServices = None # type: InfrastructureServices
188
+ self.ipSecConfig = None # type: IPSecConfig
189
+ self.networkEndpointAddresses = [] # type: List[NetworkEndpointAddress]
190
+ self.priority = None # type: PositiveInteger
191
+
192
+ def getFullyQualifiedDomainName(self):
193
+ return self.fullyQualifiedDomainName
194
+
195
+ def setFullyQualifiedDomainName(self, value):
196
+ self.fullyQualifiedDomainName = value
197
+ return self
198
+
199
+ def getInfrastructureServices(self):
200
+ return self.infrastructureServices
201
+
202
+ def setInfrastructureServices(self, value):
203
+ self.infrastructureServices = value
204
+ return self
205
+
206
+ def getIpSecConfig(self):
207
+ return self.ipSecConfig
208
+
209
+ def setIpSecConfig(self, value):
210
+ self.ipSecConfig = value
211
+ return self
212
+
213
+ def getNetworkEndpointAddresses(self):
214
+ return self.networkEndpointAddresses
215
+
216
+ def addNetworkEndpointAddress(self, value):
217
+ self.networkEndpointAddresses.append(value)
218
+ return self
219
+
220
+ def getPriority(self):
221
+ return self.priority
222
+
223
+ def setPriority(self, value):
224
+ self.priority = value
225
+ return self
@@ -1,9 +1,71 @@
1
1
  from typing import List
2
+
3
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SocketConnection, SocketConnectionBundle
2
4
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, PositiveInteger, RefType, TimeValue
3
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses import Identifiable
5
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
4
6
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
7
 
6
- '''
8
+ class ApplicationEndpoint(Identifiable):
9
+ def __init__(self, parent: ARObject, short_name: str):
10
+ super().__init__(parent, short_name)
11
+
12
+ self.consumedServiceInstances = [] # type: List[ConsumedServiceInstance]
13
+ self.maxNumberOfConnections = None # type: PositiveInteger
14
+ self.networkEndpointRef = None # type: RefType
15
+ self.priority = None # type: PositiveInteger
16
+ self.providedServiceInstances = [] # type: List[ProvidedServiceInstance]
17
+ self.tlsCryptoMappingRef = None # type: RefType
18
+ self.tpConfiguration = None # type: TransportProtocolConfiguration
19
+
20
+ def getConsumedServiceInstances(self):
21
+ return self.consumedServiceInstances
22
+
23
+ def addConsumedServiceInstance(self, value):
24
+ self.consumedServiceInstances.append(value)
25
+ return self
26
+
27
+ def getMaxNumberOfConnections(self):
28
+ return self.maxNumberOfConnections
29
+
30
+ def setMaxNumberOfConnections(self, value):
31
+ self.maxNumberOfConnections = value
32
+ return self
33
+
34
+ def getNetworkEndpointRef(self):
35
+ return self.networkEndpointRef
36
+
37
+ def setNetworkEndpointRef(self, value):
38
+ self.networkEndpointRef = value
39
+ return self
40
+
41
+ def getPriority(self):
42
+ return self.priority
43
+
44
+ def setPriority(self, value):
45
+ self.priority = value
46
+ return self
47
+
48
+ def getProvidedServiceInstances(self):
49
+ return self.providedServiceInstances
50
+
51
+ def addProvidedServiceInstance(self, value):
52
+ self.providedServiceInstances.append(value)
53
+ return self
54
+
55
+ def getTlsCryptoMappingRef(self):
56
+ return self.tlsCryptoMappingRef
57
+
58
+ def setTlsCryptoMappingRef(self, value):
59
+ self.tlsCryptoMappingRef = value
60
+ return self
61
+
62
+ def getTpConfiguration(self):
63
+ return self.tpConfiguration
64
+
65
+ def setTpConfiguration(self, value):
66
+ self.tpConfiguration = value
67
+ return self
68
+
7
69
  class SocketAddress(Identifiable):
8
70
  def __init__(self, parent: ARObject, short_name: str):
9
71
  super().__init__(parent, short_name)
@@ -18,7 +80,7 @@ class SocketAddress(Identifiable):
18
80
  self.pathMtuDiscoveryEnabled = None # type: Boolean
19
81
  self.pduCollectionMaxBufferSize = None # type: PositiveInteger
20
82
  self.pduCollectionTimeout = None # type: TimeValue
21
- self.staticSocketConnections = [] # type: List[StaticSocketConnection]
83
+ self.staticSocketConnections = [] # type: List[StaticSocketConnection]
22
84
  self.udpChecksumHandling = None # type: UdpChecksumCalculationEnum
23
85
 
24
86
  def getAllowedIPv6ExtHeadersRef(self):
@@ -104,13 +166,40 @@ class SocketAddress(Identifiable):
104
166
  def setUdpChecksumHandling(self, value):
105
167
  self.udpChecksumHandling = value
106
168
  return self
107
- '''
108
169
 
109
170
  class SoAdConfig(ARObject):
110
171
  def __init__(self):
111
172
  super().__init__()
112
173
 
113
- self.connection = None # type: SocketConnection
114
- self.connectionBundle = None # type: SocketConnectionBundle
115
- self.socketAddress = None # type: SocketAddress
174
+ self.connections = [] # type: List[SocketConnection]
175
+ self.connectionBundles = [] # type: List[SocketConnectionBundle]
176
+ self.socketAddresses = [] # type: List[SocketAddress]
177
+
178
+ def getConnections(self):
179
+ return self.connections
180
+
181
+ def setConnections(self, value):
182
+ self.connections = value
183
+ return self
184
+
185
+ def getConnectionBundles(self):
186
+ return self.connectionBundles
187
+
188
+ def createSocketConnectionBundle(self, short_name:str) -> SocketConnectionBundle:
189
+ bundle = SocketConnectionBundle(self, short_name)
190
+ self.connectionBundles.append(bundle)
191
+ return bundle
192
+
193
+ def setConnectionBundles(self, value):
194
+ self.connectionBundles = value
195
+ return self
196
+
197
+ def getSocketAddresses(self):
198
+ return self.socketAddresses
199
+
200
+ def createSocketAddress(self, short_name:str) -> SocketAddress:
201
+ address = SocketAddress(self, short_name)
202
+ self.socketAddresses.append(address)
203
+ return address
204
+
116
205
 
@@ -2,13 +2,15 @@ from abc import ABCMeta
2
2
  from enum import Enum
3
3
  from typing import List
4
4
 
5
+
6
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
7
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, Boolean, PositiveInteger, RefType, ARLiteral, TimeValue
8
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
5
9
  from ......M2.AUTOSARTemplates.SWComponentTemplate.Communication import HandleInvalidEnum
6
10
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
7
11
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering
8
12
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement, FrameTriggering, ISignalTriggering, PduTriggering
9
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
10
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, Boolean, PositiveInteger, RefType, ARLiteral, TimeValue
11
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
13
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import NetworkEndpoint
12
14
 
13
15
  class PhysicalChannel (Identifiable, metaclass = ABCMeta):
14
16
  def __init__(self, parent: ARObject, short_name: str):
@@ -80,7 +82,39 @@ class CanPhysicalChannel(AbstractCanPhysicalChannel):
80
82
 
81
83
  class LinPhysicalChannel(PhysicalChannel):
82
84
  def __init__(self, parent: ARObject, short_name: str):
83
- super().__init__(parent, short_name)
85
+ super().__init__(parent, short_name)
86
+
87
+ class EthernetPhysicalChannel(PhysicalChannel):
88
+ def __init__(self, parent: ARObject, short_name: str):
89
+ super().__init__(parent, short_name)
90
+
91
+ self.networkEndpoints = [] # type: List[NetworkEndpoint]
92
+ self.soAdConfig = None # type: SoAdConfig
93
+ self.vlan = None # type: VlanConfig
94
+
95
+ def getNetworkEndpoints(self):
96
+ return self.networkEndpoints
97
+
98
+ def createNetworkEndPoint(self, short_name:str) -> NetworkEndpoint:
99
+ if (short_name not in self.elements):
100
+ end_point = NetworkEndpoint(self, short_name)
101
+ self.addElement(end_point)
102
+ self.networkEndpoints.append(end_point)
103
+ return self.getElement(short_name)
104
+
105
+ def getSoAdConfig(self):
106
+ return self.soAdConfig
107
+
108
+ def setSoAdConfig(self, value):
109
+ self.soAdConfig = value
110
+ return self
111
+
112
+ def getVlan(self):
113
+ return self.vlan
114
+
115
+ def setVlan(self, value):
116
+ self.vlan = value
117
+ return self
84
118
 
85
119
  class CommunicationCluster(FibexElement, metaclass = ABCMeta):
86
120
  def __init__(self, parent: ARObject, short_name: str):
@@ -109,6 +143,9 @@ class CommunicationCluster(FibexElement, metaclass = ABCMeta):
109
143
  def getLinPhysicalChannels(self) -> List[LinPhysicalChannel]:
110
144
  return list(sorted(filter(lambda a: isinstance(a, LinPhysicalChannel), self.elements.values()), key= lambda o:o.getShortName()))
111
145
 
146
+ def getEthernetPhysicalChannels(self) -> List[EthernetPhysicalChannel]:
147
+ return list(sorted(filter(lambda a: isinstance(a, EthernetPhysicalChannel), self.elements.values()), key= lambda o:o.getShortName()))
148
+
112
149
  def createCanPhysicalChannel(self, short_name: str):
113
150
  if (short_name not in self.elements):
114
151
  channel = CanPhysicalChannel(self, short_name)
@@ -120,6 +157,12 @@ class CommunicationCluster(FibexElement, metaclass = ABCMeta):
120
157
  channel = LinPhysicalChannel(self, short_name)
121
158
  self.addElement(channel)
122
159
  return self.getElement(short_name)
160
+
161
+ def createEthernetPhysicalChannel(self, short_name: str):
162
+ if (short_name not in self.elements):
163
+ channel = EthernetPhysicalChannel(self, short_name)
164
+ self.addElement(channel)
165
+ return self.getElement(short_name)
123
166
 
124
167
  def getProtocolName(self):
125
168
  return self.protocolName
@@ -1,4 +1,5 @@
1
1
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, RefType, TimeValue
2
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCommunicationConnector, EthernetCommunicationController
2
3
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
3
4
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
4
5
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
@@ -105,17 +106,29 @@ 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)
110
117
 
111
118
  def getConnectors(self):
112
119
  return list(sorted(filter(lambda a: isinstance(a, CommunicationConnector), self.elements.values()), key= lambda o:o.short_name))
113
120
 
114
121
  def createCanCommunicationConnector(self, short_name: str) -> CanCommunicationConnector:
115
122
  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]
123
+ connector = CanCommunicationConnector(self, short_name)
124
+ self.addElement(connector)
125
+ return self.getElement(short_name)
126
+
127
+ def createEthernetCommunicationConnector(self, short_name: str) -> EthernetCommunicationConnector:
128
+ if (short_name not in self.elements):
129
+ connector = EthernetCommunicationConnector(self, short_name)
130
+ self.addElement(connector)
131
+ return self.getElement(short_name)
119
132
 
120
133
  def getDltConfig(self):
121
134
  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
@@ -71,7 +71,6 @@ class BaseType(ARElement, metaclass=ABCMeta):
71
71
  self.baseTypeDefinition = value
72
72
  return self
73
73
 
74
-
75
74
  class SwBaseType(BaseType):
76
75
  def __init__(self, parent: ARObject, short_name: str):
77
76
  super().__init__(parent, short_name)