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.
- armodel/cli/file_list_cli.py +70 -0
- armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +47 -0
- armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +67 -3
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +9 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +58 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +16 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +114 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +104 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +429 -7
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +114 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +94 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +151 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +98 -13
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +13 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +135 -13
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +25 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +4 -3
- armodel/models/M2/MSR/DataDictionary/RecordLayout.py +1 -1
- armodel/models/__init__.py +3 -0
- armodel/parser/abstract_arxml_parser.py +2 -0
- armodel/parser/arxml_parser.py +353 -30
- armodel/writer/arxml_writer.py +471 -145
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/METADATA +31 -1
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/RECORD +29 -24
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/entry_points.txt +1 -0
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/LICENSE +0 -0
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/WHEEL +0 -0
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/top_level.txt +0 -0
|
@@ -1,10 +1,420 @@
|
|
|
1
|
+
from abc import ABCMeta
|
|
1
2
|
from typing import List
|
|
2
3
|
|
|
3
4
|
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SocketConnection, SocketConnectionBundle
|
|
4
|
-
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, PositiveInteger, RefType, TimeValue
|
|
5
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, PositiveInteger, RefType, String, TimeValue
|
|
5
6
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
6
7
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
7
8
|
|
|
9
|
+
|
|
10
|
+
class TransportProtocolConfiguration(ARObject, metaclass = ABCMeta):
|
|
11
|
+
def __init__(self):
|
|
12
|
+
if type(self) == TransportProtocolConfiguration:
|
|
13
|
+
raise NotImplementedError("TransportProtocolConfiguration is an abstract class.")
|
|
14
|
+
|
|
15
|
+
super().__init__()
|
|
16
|
+
|
|
17
|
+
class GenericTp(TransportProtocolConfiguration):
|
|
18
|
+
def __init__(self):
|
|
19
|
+
super().__init__()
|
|
20
|
+
|
|
21
|
+
self.tpAddress = None # type: String
|
|
22
|
+
self.tpTechnology = None # type: String
|
|
23
|
+
|
|
24
|
+
def getTpAddress(self):
|
|
25
|
+
return self.tpAddress
|
|
26
|
+
|
|
27
|
+
def setTpAddress(self, value):
|
|
28
|
+
self.tpAddress = value
|
|
29
|
+
return self
|
|
30
|
+
|
|
31
|
+
def getTpTechnology(self):
|
|
32
|
+
return self.tpTechnology
|
|
33
|
+
|
|
34
|
+
def setTpTechnology(self, value):
|
|
35
|
+
self.tpTechnology = value
|
|
36
|
+
return self
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class TcpUdpConfig(TransportProtocolConfiguration, metaclass = ABCMeta):
|
|
40
|
+
def __init__(self):
|
|
41
|
+
if type(self) == TcpUdpConfig:
|
|
42
|
+
raise NotImplementedError("TcpUdpConfig is an abstract class.")
|
|
43
|
+
|
|
44
|
+
super().__init__()
|
|
45
|
+
|
|
46
|
+
class TpPort(ARObject):
|
|
47
|
+
def __init__(self):
|
|
48
|
+
super().__init__()
|
|
49
|
+
|
|
50
|
+
self.dynamicallyAssigned = None # type: Boolean
|
|
51
|
+
self.portNumber = None # type: PositiveInteger
|
|
52
|
+
|
|
53
|
+
def getDynamicallyAssigned(self):
|
|
54
|
+
return self.dynamicallyAssigned
|
|
55
|
+
|
|
56
|
+
def setDynamicallyAssigned(self, value):
|
|
57
|
+
self.dynamicallyAssigned = value
|
|
58
|
+
return self
|
|
59
|
+
|
|
60
|
+
def getPortNumber(self):
|
|
61
|
+
return self.portNumber
|
|
62
|
+
|
|
63
|
+
def setPortNumber(self, value):
|
|
64
|
+
self.portNumber = value
|
|
65
|
+
return self
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class UdpTp(TcpUdpConfig):
|
|
69
|
+
def __init__(self):
|
|
70
|
+
super().__init__()
|
|
71
|
+
|
|
72
|
+
self.udpTpPort = None # type: TpPort
|
|
73
|
+
|
|
74
|
+
def getUdpTpPort(self):
|
|
75
|
+
return self.udpTpPort
|
|
76
|
+
|
|
77
|
+
def setUdpTpPort(self, value):
|
|
78
|
+
self.udpTpPort = value
|
|
79
|
+
return self
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class TcpTp(TcpUdpConfig):
|
|
83
|
+
def __init__(self):
|
|
84
|
+
super().__init__()
|
|
85
|
+
|
|
86
|
+
self.keepAliveInterval = None # type: TimeValue
|
|
87
|
+
self.keepAliveProbesMax = None # type: PositiveInteger
|
|
88
|
+
self.keepAlives = None # type: Boolean
|
|
89
|
+
self.keepAliveTime = None # type: TimeValue
|
|
90
|
+
self.naglesAlgorithm = None # type: Boolean
|
|
91
|
+
self.receiveWindowMin = None # type: PositiveInteger
|
|
92
|
+
self.tcpRetransmissionTimeout = None # type: TimeValue
|
|
93
|
+
self.tcpTpPort = None # type: TpPort
|
|
94
|
+
|
|
95
|
+
def getKeepAliveInterval(self):
|
|
96
|
+
return self.keepAliveInterval
|
|
97
|
+
|
|
98
|
+
def setKeepAliveInterval(self, value):
|
|
99
|
+
self.keepAliveInterval = value
|
|
100
|
+
return self
|
|
101
|
+
|
|
102
|
+
def getKeepAliveProbesMax(self):
|
|
103
|
+
return self.keepAliveProbesMax
|
|
104
|
+
|
|
105
|
+
def setKeepAliveProbesMax(self, value):
|
|
106
|
+
self.keepAliveProbesMax = value
|
|
107
|
+
return self
|
|
108
|
+
|
|
109
|
+
def getKeepAlives(self):
|
|
110
|
+
return self.keepAlives
|
|
111
|
+
|
|
112
|
+
def setKeepAlives(self, value):
|
|
113
|
+
self.keepAlives = value
|
|
114
|
+
return self
|
|
115
|
+
|
|
116
|
+
def getKeepAliveTime(self):
|
|
117
|
+
return self.keepAliveTime
|
|
118
|
+
|
|
119
|
+
def setKeepAliveTime(self, value):
|
|
120
|
+
self.keepAliveTime = value
|
|
121
|
+
return self
|
|
122
|
+
|
|
123
|
+
def getNaglesAlgorithm(self):
|
|
124
|
+
return self.naglesAlgorithm
|
|
125
|
+
|
|
126
|
+
def setNaglesAlgorithm(self, value):
|
|
127
|
+
self.naglesAlgorithm = value
|
|
128
|
+
return self
|
|
129
|
+
|
|
130
|
+
def getReceiveWindowMin(self):
|
|
131
|
+
return self.receiveWindowMin
|
|
132
|
+
|
|
133
|
+
def setReceiveWindowMin(self, value):
|
|
134
|
+
self.receiveWindowMin = value
|
|
135
|
+
return self
|
|
136
|
+
|
|
137
|
+
def getTcpRetransmissionTimeout(self):
|
|
138
|
+
return self.tcpRetransmissionTimeout
|
|
139
|
+
|
|
140
|
+
def setTcpRetransmissionTimeout(self, value):
|
|
141
|
+
self.tcpRetransmissionTimeout = value
|
|
142
|
+
return self
|
|
143
|
+
|
|
144
|
+
def getTcpTpPort(self):
|
|
145
|
+
return self.tcpTpPort
|
|
146
|
+
|
|
147
|
+
def setTcpTpPort(self, value):
|
|
148
|
+
self.tcpTpPort = value
|
|
149
|
+
return self
|
|
150
|
+
|
|
151
|
+
class AbstractServiceInstance(Identifiable, metaclass = ABCMeta):
|
|
152
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
153
|
+
if type(self) == AbstractServiceInstance:
|
|
154
|
+
raise NotImplementedError("AbstractServiceInstance is an abstract class.")
|
|
155
|
+
|
|
156
|
+
super().__init__(parent, short_name)
|
|
157
|
+
|
|
158
|
+
# type: List[TagWithOptionalValue]
|
|
159
|
+
self.capabilityRecords = []
|
|
160
|
+
self.majorVersion = None # type: PositiveInteger
|
|
161
|
+
# type: PduActivationRoutingGroup
|
|
162
|
+
self.methodActivationRoutingGroup = None
|
|
163
|
+
self.routingGroupRefs = [] # type: List[RefType]
|
|
164
|
+
|
|
165
|
+
def getCapabilityRecords(self):
|
|
166
|
+
return self.capabilityRecords
|
|
167
|
+
|
|
168
|
+
def addCapabilityRecord(self, value):
|
|
169
|
+
if value is not None:
|
|
170
|
+
self.capabilityRecords.append(value)
|
|
171
|
+
return self
|
|
172
|
+
|
|
173
|
+
def getMajorVersion(self):
|
|
174
|
+
return self.majorVersion
|
|
175
|
+
|
|
176
|
+
def setMajorVersion(self, value):
|
|
177
|
+
if value is not None:
|
|
178
|
+
self.majorVersion = value
|
|
179
|
+
return self
|
|
180
|
+
|
|
181
|
+
def getMethodActivationRoutingGroup(self):
|
|
182
|
+
return self.methodActivationRoutingGroup
|
|
183
|
+
|
|
184
|
+
def setMethodActivationRoutingGroup(self, value):
|
|
185
|
+
if value is not None:
|
|
186
|
+
self.methodActivationRoutingGroup = value
|
|
187
|
+
return self
|
|
188
|
+
|
|
189
|
+
def getRoutingGroupRefs(self):
|
|
190
|
+
return self.routingGroupRefs
|
|
191
|
+
|
|
192
|
+
def addRoutingGroupRef(self, value):
|
|
193
|
+
if value is not None:
|
|
194
|
+
self.routingGroupRefs.append(value)
|
|
195
|
+
return self
|
|
196
|
+
|
|
197
|
+
class ConsumedEventGroup(Identifiable):
|
|
198
|
+
def __init__(self, parent, short_name):
|
|
199
|
+
super().__init__(parent, short_name)
|
|
200
|
+
|
|
201
|
+
self.applicationEndpointRef = None # type: RefType
|
|
202
|
+
self.autoRequire = None # type: Boolean
|
|
203
|
+
self.eventGroupIdentifier = None # type: PositiveInteger
|
|
204
|
+
self.eventMulticastAddressRefs = [] # type: List[RefType]
|
|
205
|
+
self.pduActivationRoutingGroups = [] # type: List[PduActivationRoutingGroup]
|
|
206
|
+
self.priority = None # type: PositiveInteger
|
|
207
|
+
self.routingGroupRefs = [] # type: List[RefType]
|
|
208
|
+
self.sdClientConfig = None # type: SdClientConfig
|
|
209
|
+
self.sdClientTimerConfigRef = None # type: RefType
|
|
210
|
+
|
|
211
|
+
def getApplicationEndpointRef(self):
|
|
212
|
+
return self.applicationEndpointRef
|
|
213
|
+
|
|
214
|
+
def setApplicationEndpointRef(self, value):
|
|
215
|
+
if value is not None:
|
|
216
|
+
self.applicationEndpointRef = value
|
|
217
|
+
return self
|
|
218
|
+
|
|
219
|
+
def getAutoRequire(self):
|
|
220
|
+
return self.autoRequire
|
|
221
|
+
|
|
222
|
+
def setAutoRequire(self, value):
|
|
223
|
+
if value is not None:
|
|
224
|
+
self.autoRequire = value
|
|
225
|
+
return self
|
|
226
|
+
|
|
227
|
+
def getEventGroupIdentifier(self):
|
|
228
|
+
return self.eventGroupIdentifier
|
|
229
|
+
|
|
230
|
+
def setEventGroupIdentifier(self, value):
|
|
231
|
+
if value is not None:
|
|
232
|
+
self.eventGroupIdentifier = value
|
|
233
|
+
return self
|
|
234
|
+
|
|
235
|
+
def getEventMulticastAddressRefs(self):
|
|
236
|
+
return self.eventMulticastAddressRefs
|
|
237
|
+
|
|
238
|
+
def addEventMulticastAddressRef(self, value):
|
|
239
|
+
if value is not None:
|
|
240
|
+
self.eventMulticastAddressRefs.append(value)
|
|
241
|
+
return self
|
|
242
|
+
|
|
243
|
+
def getPduActivationRoutingGroups(self):
|
|
244
|
+
return self.pduActivationRoutingGroups
|
|
245
|
+
|
|
246
|
+
def setPduActivationRoutingGroups(self, value):
|
|
247
|
+
if value is not None:
|
|
248
|
+
self.pduActivationRoutingGroups = value
|
|
249
|
+
return self
|
|
250
|
+
|
|
251
|
+
def getPriority(self):
|
|
252
|
+
return self.priority
|
|
253
|
+
|
|
254
|
+
def setPriority(self, value):
|
|
255
|
+
if value is not None:
|
|
256
|
+
self.priority = value
|
|
257
|
+
return self
|
|
258
|
+
|
|
259
|
+
def getRoutingGroupRefs(self):
|
|
260
|
+
return self.routingGroupRefs
|
|
261
|
+
|
|
262
|
+
def addRoutingGroupRef(self, value):
|
|
263
|
+
if value is not None:
|
|
264
|
+
self.routingGroupRefs.append(value)
|
|
265
|
+
return self
|
|
266
|
+
|
|
267
|
+
def getSdClientConfig(self):
|
|
268
|
+
return self.sdClientConfig
|
|
269
|
+
|
|
270
|
+
def setSdClientConfig(self, value):
|
|
271
|
+
if value is not None:
|
|
272
|
+
self.sdClientConfig = value
|
|
273
|
+
return self
|
|
274
|
+
|
|
275
|
+
def getSdClientTimerConfigRef(self):
|
|
276
|
+
return self.sdClientTimerConfigRef
|
|
277
|
+
|
|
278
|
+
def setSdClientTimerConfigRef(self, value):
|
|
279
|
+
if value is not None:
|
|
280
|
+
self.sdClientTimerConfigRef = value
|
|
281
|
+
return self
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
class ConsumedServiceInstance(AbstractServiceInstance):
|
|
285
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
286
|
+
super().__init__(parent, short_name)
|
|
287
|
+
|
|
288
|
+
self.allowedServiceProviderRefs = [] # type: List[RefType]
|
|
289
|
+
self.autoRequire = None # type: Boolean
|
|
290
|
+
self.blocklistedVersions = [] # type: List[SomeipServiceVersion]
|
|
291
|
+
self.consumedEventGroups = [] # type: List[ConsumedEventGroup]
|
|
292
|
+
self.eventMulticastSubscriptionAddressRef = None # type: RefType
|
|
293
|
+
self.instanceIdentifier = None # type: AnyServiceInstanceId
|
|
294
|
+
self.localUnicastAddressRefs = [] # type: List[RefType]
|
|
295
|
+
self.minorVersion = None # type: AnyVersionString
|
|
296
|
+
self.providedServiceInstanceRef = None # type: RefType
|
|
297
|
+
self.remoteUnicastAddressRefs = [] # type: List[RefType]
|
|
298
|
+
self.sdClientConfig = None # type: SdClientConfig
|
|
299
|
+
self.sdClientTimerConfigRef = None # type: RefType
|
|
300
|
+
self.serviceIdentifier = None # type: PositiveInteger
|
|
301
|
+
self.versionDrivenFindBehavior = None # type: ServiceVersionAcceptanceKindEnum
|
|
302
|
+
|
|
303
|
+
def getAllowedServiceProviderRefs(self):
|
|
304
|
+
return self.allowedServiceProviderRefs
|
|
305
|
+
|
|
306
|
+
def setAllowedServiceProviderRefs(self, value):
|
|
307
|
+
if value is not None:
|
|
308
|
+
self.allowedServiceProviderRefs = value
|
|
309
|
+
return self
|
|
310
|
+
|
|
311
|
+
def getAutoRequire(self):
|
|
312
|
+
return self.autoRequire
|
|
313
|
+
|
|
314
|
+
def setAutoRequire(self, value):
|
|
315
|
+
if value is not None:
|
|
316
|
+
self.autoRequire = value
|
|
317
|
+
return self
|
|
318
|
+
|
|
319
|
+
def getBlocklistedVersions(self):
|
|
320
|
+
return self.blocklistedVersions
|
|
321
|
+
|
|
322
|
+
def setBlocklistedVersions(self, value):
|
|
323
|
+
if value is not None:
|
|
324
|
+
self.blocklistedVersions = value
|
|
325
|
+
return self
|
|
326
|
+
|
|
327
|
+
def getConsumedEventGroups(self):
|
|
328
|
+
return self.consumedEventGroups
|
|
329
|
+
|
|
330
|
+
def createConsumedEventGroup(self, short_name: str) -> ConsumedEventGroup:
|
|
331
|
+
if short_name not in self.elements:
|
|
332
|
+
group = ConsumedEventGroup(self, short_name)
|
|
333
|
+
self.addElement(group)
|
|
334
|
+
self.consumedEventGroups.append(group)
|
|
335
|
+
return self.getElement(short_name)
|
|
336
|
+
|
|
337
|
+
def getEventMulticastSubscriptionAddressRef(self):
|
|
338
|
+
return self.eventMulticastSubscriptionAddressRef
|
|
339
|
+
|
|
340
|
+
def setEventMulticastSubscriptionAddressRef(self, value):
|
|
341
|
+
if value is not None:
|
|
342
|
+
self.eventMulticastSubscriptionAddressRef = value
|
|
343
|
+
return self
|
|
344
|
+
|
|
345
|
+
def getInstanceIdentifier(self):
|
|
346
|
+
return self.instanceIdentifier
|
|
347
|
+
|
|
348
|
+
def setInstanceIdentifier(self, value):
|
|
349
|
+
if value is not None:
|
|
350
|
+
self.instanceIdentifier = value
|
|
351
|
+
return self
|
|
352
|
+
|
|
353
|
+
def getLocalUnicastAddressRefs(self):
|
|
354
|
+
return self.localUnicastAddressRefs
|
|
355
|
+
|
|
356
|
+
def setLocalUnicastAddressRefs(self, value):
|
|
357
|
+
if value is not None:
|
|
358
|
+
self.localUnicastAddressRefs = value
|
|
359
|
+
return self
|
|
360
|
+
|
|
361
|
+
def getMinorVersion(self):
|
|
362
|
+
return self.minorVersion
|
|
363
|
+
|
|
364
|
+
def setMinorVersion(self, value):
|
|
365
|
+
if value is not None:
|
|
366
|
+
self.minorVersion = value
|
|
367
|
+
return self
|
|
368
|
+
|
|
369
|
+
def getProvidedServiceInstanceRef(self):
|
|
370
|
+
return self.providedServiceInstanceRef
|
|
371
|
+
|
|
372
|
+
def setProvidedServiceInstanceRef(self, value):
|
|
373
|
+
if value is not None:
|
|
374
|
+
self.providedServiceInstanceRef = value
|
|
375
|
+
return self
|
|
376
|
+
|
|
377
|
+
def getRemoteUnicastAddressRefs(self):
|
|
378
|
+
return self.remoteUnicastAddressRefs
|
|
379
|
+
|
|
380
|
+
def setRemoteUnicastAddressRefs(self, value):
|
|
381
|
+
if value is not None:
|
|
382
|
+
self.remoteUnicastAddressRefs = value
|
|
383
|
+
return self
|
|
384
|
+
|
|
385
|
+
def getSdClientConfig(self):
|
|
386
|
+
return self.sdClientConfig
|
|
387
|
+
|
|
388
|
+
def setSdClientConfig(self, value):
|
|
389
|
+
if value is not None:
|
|
390
|
+
self.sdClientConfig = value
|
|
391
|
+
return self
|
|
392
|
+
|
|
393
|
+
def getSdClientTimerConfigRef(self):
|
|
394
|
+
return self.sdClientTimerConfigRef
|
|
395
|
+
|
|
396
|
+
def setSdClientTimerConfigRef(self, value):
|
|
397
|
+
if value is not None:
|
|
398
|
+
self.sdClientTimerConfigRef = value
|
|
399
|
+
return self
|
|
400
|
+
|
|
401
|
+
def getServiceIdentifier(self):
|
|
402
|
+
return self.serviceIdentifier
|
|
403
|
+
|
|
404
|
+
def setServiceIdentifier(self, value):
|
|
405
|
+
if value is not None:
|
|
406
|
+
self.serviceIdentifier = value
|
|
407
|
+
return self
|
|
408
|
+
|
|
409
|
+
def getVersionDrivenFindBehavior(self):
|
|
410
|
+
return self.versionDrivenFindBehavior
|
|
411
|
+
|
|
412
|
+
def setVersionDrivenFindBehavior(self, value):
|
|
413
|
+
if value is not None:
|
|
414
|
+
self.versionDrivenFindBehavior = value
|
|
415
|
+
return self
|
|
416
|
+
|
|
417
|
+
|
|
8
418
|
class ApplicationEndpoint(Identifiable):
|
|
9
419
|
def __init__(self, parent: ARObject, short_name: str):
|
|
10
420
|
super().__init__(parent, short_name)
|
|
@@ -20,9 +430,12 @@ class ApplicationEndpoint(Identifiable):
|
|
|
20
430
|
def getConsumedServiceInstances(self):
|
|
21
431
|
return self.consumedServiceInstances
|
|
22
432
|
|
|
23
|
-
def
|
|
24
|
-
self.
|
|
25
|
-
|
|
433
|
+
def createConsumedServiceInstance(self, short_name:str) -> ConsumedServiceInstance:
|
|
434
|
+
if short_name not in self.elements:
|
|
435
|
+
instance = ConsumedServiceInstance(self, short_name)
|
|
436
|
+
self.addElement(instance)
|
|
437
|
+
self.consumedServiceInstances.append(instance)
|
|
438
|
+
return self.getElement(short_name)
|
|
26
439
|
|
|
27
440
|
def getMaxNumberOfConnections(self):
|
|
28
441
|
return self.maxNumberOfConnections
|
|
@@ -80,6 +493,7 @@ class SocketAddress(Identifiable):
|
|
|
80
493
|
self.pathMtuDiscoveryEnabled = None # type: Boolean
|
|
81
494
|
self.pduCollectionMaxBufferSize = None # type: PositiveInteger
|
|
82
495
|
self.pduCollectionTimeout = None # type: TimeValue
|
|
496
|
+
self.portAddress = None # type: PositiveInteger
|
|
83
497
|
self.staticSocketConnections = [] # type: List[StaticSocketConnection]
|
|
84
498
|
self.udpChecksumHandling = None # type: UdpChecksumCalculationEnum
|
|
85
499
|
|
|
@@ -100,9 +514,10 @@ class SocketAddress(Identifiable):
|
|
|
100
514
|
def getApplicationEndpoint(self):
|
|
101
515
|
return self.applicationEndpoint
|
|
102
516
|
|
|
103
|
-
def
|
|
104
|
-
|
|
105
|
-
|
|
517
|
+
def createApplicationEndpoint(self, short_name:str) -> ApplicationEndpoint:
|
|
518
|
+
end_point = ApplicationEndpoint(self, short_name)
|
|
519
|
+
self.applicationEndpoint = end_point
|
|
520
|
+
return end_point
|
|
106
521
|
|
|
107
522
|
def getConnectorRef(self):
|
|
108
523
|
return self.connectorRef
|
|
@@ -152,6 +567,13 @@ class SocketAddress(Identifiable):
|
|
|
152
567
|
def setPduCollectionTimeout(self, value):
|
|
153
568
|
self.pduCollectionTimeout = value
|
|
154
569
|
return self
|
|
570
|
+
|
|
571
|
+
def getPortAddress(self):
|
|
572
|
+
return self.portAddress
|
|
573
|
+
|
|
574
|
+
def setPortAddress(self, value):
|
|
575
|
+
self.portAddress = value
|
|
576
|
+
return self
|
|
155
577
|
|
|
156
578
|
def getStaticSocketConnections(self):
|
|
157
579
|
return self.staticSocketConnections
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
|
|
2
2
|
from abc import ABCMeta
|
|
3
|
+
from typing import List
|
|
3
4
|
|
|
5
|
+
from ......M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
|
|
6
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
4
7
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
5
|
-
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARNumerical
|
|
8
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, ARNumerical, Integer, RefType, TimeValue
|
|
6
9
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
|
|
7
10
|
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import Frame, FrameTriggering
|
|
8
11
|
|
|
9
|
-
class LinFrame(Frame):
|
|
10
|
-
__metaclass__ = ABCMeta
|
|
11
|
-
|
|
12
|
+
class LinFrame(Frame, metaclass = ABCMeta):
|
|
12
13
|
def __init__(self, parent: ARObject, short_name: str):
|
|
13
14
|
if type(self) == LinFrame:
|
|
14
15
|
raise NotImplementedError("LinFrame is an abstract class.")
|
|
@@ -30,12 +31,119 @@ class LinFrameTriggering(FrameTriggering):
|
|
|
30
31
|
return self.identifier
|
|
31
32
|
|
|
32
33
|
def setIdentifier(self, value):
|
|
33
|
-
|
|
34
|
+
if value is not None:
|
|
35
|
+
self.identifier = value
|
|
34
36
|
return self
|
|
35
37
|
|
|
36
38
|
def getLinChecksum(self):
|
|
37
39
|
return self.linChecksum
|
|
38
40
|
|
|
39
41
|
def setLinChecksum(self, value):
|
|
40
|
-
|
|
42
|
+
if value is not None:
|
|
43
|
+
self.linChecksum = value
|
|
44
|
+
return self
|
|
45
|
+
|
|
46
|
+
class ResumePosition(AREnum):
|
|
47
|
+
CONTINUE_AT_IT_POSITION = "continueAtItPosition"
|
|
48
|
+
START_FROM_BEGINNING = "startFromBeginning"
|
|
49
|
+
|
|
50
|
+
def __init__(self):
|
|
51
|
+
super().__init__((
|
|
52
|
+
ResumePosition.CONTINUE_AT_IT_POSITION,
|
|
53
|
+
ResumePosition.START_FROM_BEGINNING
|
|
54
|
+
))
|
|
55
|
+
|
|
56
|
+
class ScheduleTableEntry(ARObject, metaclass = ABCMeta):
|
|
57
|
+
def __init__(self):
|
|
58
|
+
|
|
59
|
+
if type(self) == ScheduleTableEntry:
|
|
60
|
+
raise NotImplementedError("ScheduleTableEntry is an abstract class.")
|
|
61
|
+
|
|
62
|
+
super().__init__()
|
|
63
|
+
|
|
64
|
+
self.delay = None # type: TimeValue
|
|
65
|
+
self.introduction = None # type: DocumentationBlock
|
|
66
|
+
self.positionInTable = None # type: Integer
|
|
67
|
+
|
|
68
|
+
def getDelay(self):
|
|
69
|
+
return self.delay
|
|
70
|
+
|
|
71
|
+
def setDelay(self, value):
|
|
72
|
+
if value is not None:
|
|
73
|
+
self.delay = value
|
|
74
|
+
return self
|
|
75
|
+
|
|
76
|
+
def getIntroduction(self):
|
|
77
|
+
return self.introduction
|
|
78
|
+
|
|
79
|
+
def setIntroduction(self, value):
|
|
80
|
+
if value is not None:
|
|
81
|
+
self.introduction = value
|
|
82
|
+
return self
|
|
83
|
+
|
|
84
|
+
def getPositionInTable(self):
|
|
85
|
+
return self.positionInTable
|
|
86
|
+
|
|
87
|
+
def setPositionInTable(self, value):
|
|
88
|
+
if value is not None:
|
|
89
|
+
self.positionInTable = value
|
|
90
|
+
return self
|
|
91
|
+
|
|
92
|
+
class ApplicationEntry(ScheduleTableEntry):
|
|
93
|
+
def __init__(self):
|
|
94
|
+
super().__init__()
|
|
95
|
+
|
|
96
|
+
self.frameTriggeringRef = None # type: RefType
|
|
97
|
+
|
|
98
|
+
def getFrameTriggeringRef(self):
|
|
99
|
+
return self.frameTriggeringRef
|
|
100
|
+
|
|
101
|
+
def setFrameTriggeringRef(self, value):
|
|
102
|
+
if value is not None:
|
|
103
|
+
self.frameTriggeringRef = value
|
|
104
|
+
return self
|
|
105
|
+
|
|
106
|
+
class FreeFormatEntry(ScheduleTableEntry):
|
|
107
|
+
def __init__(self):
|
|
108
|
+
super().__init__()
|
|
109
|
+
|
|
110
|
+
class LinConfigurationEntry(ScheduleTableEntry, metaclass = ABCMeta):
|
|
111
|
+
def __init__(self):
|
|
112
|
+
|
|
113
|
+
if type(self) == LinConfigurationEntry:
|
|
114
|
+
raise NotImplementedError("LinConfigurationEntry is an abstract class.")
|
|
115
|
+
|
|
116
|
+
super().__init__()
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
class LinScheduleTable(Identifiable):
|
|
120
|
+
def __init__(self, parent, short_name):
|
|
121
|
+
super().__init__(parent, short_name)
|
|
122
|
+
|
|
123
|
+
self.resumePosition = None # type: ResumePosition
|
|
124
|
+
self.runMode = None # type: RunMode
|
|
125
|
+
self.tableEntries = [] # type: List[ScheduleTableEntry]
|
|
126
|
+
|
|
127
|
+
def getResumePosition(self):
|
|
128
|
+
return self.resumePosition
|
|
129
|
+
|
|
130
|
+
def setResumePosition(self, value):
|
|
131
|
+
if value is not None:
|
|
132
|
+
self.resumePosition = value
|
|
133
|
+
return self
|
|
134
|
+
|
|
135
|
+
def getRunMode(self):
|
|
136
|
+
return self.runMode
|
|
137
|
+
|
|
138
|
+
def setRunMode(self, value):
|
|
139
|
+
if value is not None:
|
|
140
|
+
self.runMode = value
|
|
141
|
+
return self
|
|
142
|
+
|
|
143
|
+
def getTableEntries(self):
|
|
144
|
+
return self.tableEntries
|
|
145
|
+
|
|
146
|
+
def addTableEntry(self, value):
|
|
147
|
+
if value is not None:
|
|
148
|
+
self.tableEntries.append(value)
|
|
41
149
|
return self
|
|
@@ -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
|