armodel 1.7.4__py3-none-any.whl → 1.7.6__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 (33) hide show
  1. armodel/cli/file_list_cli.py +70 -0
  2. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +2 -2
  3. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +4 -0
  4. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +47 -0
  5. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +0 -0
  6. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +73 -3
  7. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +22 -0
  8. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +58 -0
  9. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +165 -4
  10. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +16 -1
  11. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +514 -17
  12. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +104 -1
  13. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +783 -13
  14. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +114 -6
  15. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +92 -0
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +76 -10
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +151 -6
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +143 -36
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +13 -0
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +135 -13
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +79 -2
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +4 -2
  23. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +1 -1
  24. armodel/models/__init__.py +3 -0
  25. armodel/parser/abstract_arxml_parser.py +7 -5
  26. armodel/parser/arxml_parser.py +927 -438
  27. armodel/writer/arxml_writer.py +799 -178
  28. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/METADATA +52 -1
  29. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/RECORD +33 -28
  30. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/entry_points.txt +1 -0
  31. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/LICENSE +0 -0
  32. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/WHEEL +0 -0
  33. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/top_level.txt +0 -0
@@ -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
@@ -257,15 +342,15 @@ class CommConnectorPort(Identifiable, metaclass = ABCMeta):
257
342
  raise NotImplementedError("CommConnectorPort is an abstract class.")
258
343
 
259
344
  super().__init__(parent, short_name)
345
+
346
+ self.communicationDirection = None # type: CommunicationDirectionType
260
347
 
261
- # type: CommunicationDirectionType
262
- self.communicationDirection = None
263
-
264
- def getCommunicationDirection(self) -> CommunicationDirectionType:
348
+ def getCommunicationDirection(self):
265
349
  return self.communicationDirection
266
350
 
267
- def setCommunicationDirection(self, value: CommunicationDirectionType):
268
- self.communicationDirection = value
351
+ def setCommunicationDirection(self, value):
352
+ if value is not None:
353
+ self.communicationDirection = value
269
354
  return self
270
355
 
271
356
 
@@ -280,9 +365,9 @@ class IPduSignalProcessingEnum(Enum):
280
365
  class IPduPort(CommConnectorPort):
281
366
  def __init__(self, parent: ARObject, short_name: str):
282
367
  super().__init__(parent, short_name)
283
-
284
- # type: IPduSignalProcessingEnum
285
- self.iPduSignalProcessing = None
368
+
369
+ self.iPduSignalProcessing = None # type: IPduSignalProcessingEnum
370
+ self.keyId = None # type: PositiveInteger
286
371
  self.rxSecurityVerification = None # type: Boolean
287
372
  self.timestampRxAcceptanceWindow = None # type: TimeValue
288
373
  self.useAuthDataFreshness = None # type: Boolean
@@ -291,68 +376,90 @@ class IPduPort(CommConnectorPort):
291
376
  return self.iPduSignalProcessing
292
377
 
293
378
  def setIPduSignalProcessing(self, value):
294
- self.iPduSignalProcessing = value
379
+ if value is not None:
380
+ self.iPduSignalProcessing = value
381
+ return self
382
+
383
+ def getKeyId(self):
384
+ return self.keyId
385
+
386
+ def setKeyId(self, value):
387
+ if value is not None:
388
+ self.keyId = value
295
389
  return self
296
390
 
297
391
  def getRxSecurityVerification(self):
298
392
  return self.rxSecurityVerification
299
393
 
300
394
  def setRxSecurityVerification(self, value):
301
- self.rxSecurityVerification = value
395
+ if value is not None:
396
+ self.rxSecurityVerification = value
302
397
  return self
303
398
 
304
399
  def getTimestampRxAcceptanceWindow(self):
305
400
  return self.timestampRxAcceptanceWindow
306
401
 
307
402
  def setTimestampRxAcceptanceWindow(self, value):
308
- self.timestampRxAcceptanceWindow = value
403
+ if value is not None:
404
+ self.timestampRxAcceptanceWindow = value
309
405
  return self
310
406
 
311
407
  def getUseAuthDataFreshness(self):
312
408
  return self.useAuthDataFreshness
313
409
 
314
410
  def setUseAuthDataFreshness(self, value):
315
- self.useAuthDataFreshness = value
411
+ if value is not None:
412
+ self.useAuthDataFreshness = value
316
413
  return self
317
414
 
318
415
  class ISignalPort(CommConnectorPort):
319
416
  def __init__(self, parent: ARObject, short_name: str):
320
417
  super().__init__(parent, short_name)
321
418
 
322
- # type: DataFilter
323
- self.dataFilter = None
419
+ self.dataFilter = None # type: DataFilter
324
420
  self.ddsQosProfileRef = None # type: RefType
325
- # type: TimeValue
326
- self.firstTimeout = None
327
- # type: HandleInvalidEnum
328
- self.handleInvalid = None
421
+ self.firstTimeout = None # type: TimeValue
422
+ self.handleInvalid = None # type: HandleInvalidEnum
423
+ self.timeout = None # type: TimeValue
329
424
 
330
425
  def getDataFilter(self):
331
426
  return self.dataFilter
332
427
 
333
428
  def setDataFilter(self, value):
334
- self.dataFilter = value
429
+ if value is not None:
430
+ self.dataFilter = value
335
431
  return self
336
432
 
337
433
  def getDdsQosProfileRef(self):
338
434
  return self.ddsQosProfileRef
339
435
 
340
436
  def setDdsQosProfileRef(self, value):
341
- self.ddsQosProfileRef = value
437
+ if value is not None:
438
+ self.ddsQosProfileRef = value
342
439
  return self
343
440
 
344
441
  def getFirstTimeout(self):
345
442
  return self.firstTimeout
346
443
 
347
444
  def setFirstTimeout(self, value):
348
- self.firstTimeout = value
445
+ if value is not None:
446
+ self.firstTimeout = value
349
447
  return self
350
448
 
351
449
  def getHandleInvalid(self):
352
450
  return self.handleInvalid
353
451
 
354
452
  def setHandleInvalid(self, value):
355
- self.handleInvalid = value
453
+ if value is not None:
454
+ self.handleInvalid = value
455
+ return self
456
+
457
+ def getTimeout(self):
458
+ return self.timeout
459
+
460
+ def setTimeout(self, value):
461
+ if value is not None:
462
+ self.timeout = value
356
463
  return self
357
464
 
358
465
  class CommunicationConnector(Identifiable, metaclass = ABCMeta):
@@ -4,6 +4,7 @@ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication i
4
4
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
5
5
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
6
6
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
7
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinTopology import LinCommunicationConnector, LinMaster
7
8
  from typing import List
8
9
 
9
10
  class EcuInstance(FibexElement):
@@ -114,6 +115,12 @@ class EcuInstance(FibexElement):
114
115
  controller = EthernetCommunicationController(self, short_name)
115
116
  self.addElement(controller)
116
117
  return self.getElement(short_name)
118
+
119
+ def createLinMaster(self, short_name: str) -> LinMaster:
120
+ if (short_name not in self.elements):
121
+ controller = LinMaster(self, short_name)
122
+ self.addElement(controller)
123
+ return self.getElement(short_name)
117
124
 
118
125
  def getConnectors(self):
119
126
  return list(sorted(filter(lambda a: isinstance(a, CommunicationConnector), self.elements.values()), key= lambda o:o.short_name))
@@ -129,6 +136,12 @@ class EcuInstance(FibexElement):
129
136
  connector = EthernetCommunicationConnector(self, short_name)
130
137
  self.addElement(connector)
131
138
  return self.getElement(short_name)
139
+
140
+ def createLinCommunicationConnector(self, short_name: str) -> LinCommunicationConnector:
141
+ if (short_name not in self.elements):
142
+ connector = LinCommunicationConnector(self, short_name)
143
+ self.addElement(connector)
144
+ return self.getElement(short_name)
132
145
 
133
146
  def getDltConfig(self):
134
147
  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,83 @@
1
+ from abc import ABCMeta
2
+ from typing import List
3
+
4
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
1
5
  from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
2
6
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
7
 
4
- class CanTpConfig(FibexElement):
8
+ class TpConfig(FibexElement, metaclass = ABCMeta):
9
+ def __init__(self, parent: ARObject, short_name: str):
10
+ if type(self) == ARObject:
11
+ raise NotImplementedError("ARObject is an abstract class.")
12
+
13
+ super().__init__(parent, short_name)
14
+
15
+ self.communicationClusterRef = None # type: RefType
16
+
17
+ def getCommunicationClusterRef(self):
18
+ return self.communicationClusterRef
19
+
20
+ def setCommunicationClusterRef(self, value):
21
+ if value is not None:
22
+ self.communicationClusterRef = value
23
+ return self
24
+
25
+
26
+ class CanTpConfig(TpConfig):
27
+ def __init__(self, parent: ARObject, short_name: str):
28
+ super().__init__(parent, short_name)
29
+
30
+ class DoIpTpConfig(TpConfig):
5
31
  def __init__(self, parent: ARObject, short_name: str):
6
- super().__init__(parent, short_name)
32
+ super().__init__(parent, short_name)
33
+
34
+ self.doIpLogicAddresses = [] # type: List[DoIpLogicAddress]
35
+ self.tpConnections = [] # typeL List[DoIpTpConnection]
36
+
37
+ def getDoIpLogicAddresses(self):
38
+ return self.doIpLogicAddresses
39
+
40
+ def addDoIpLogicAddress(self, value):
41
+ if value is not None:
42
+ self.doIpLogicAddresses.append(value)
43
+ return self
44
+
45
+ def getTpConnections(self):
46
+ return self.tpConnections
47
+
48
+ def addTpConnection(self, value):
49
+ if value is not None:
50
+ self.tpConnections.append(value)
51
+ return self
52
+
53
+ class LinTpConfig(TpConfig):
54
+ def __init__(self, parent: ARObject, short_name: str):
55
+ super().__init__(parent, short_name)
56
+
57
+ self.tpAddresses = [] # type: List[TpAddress]
58
+ self.tpConnections = [] # type: List[LinTpConnection]
59
+ self.tpNodes = [] # type: List[LinTpNode]
60
+
61
+ def getTpAddresses(self):
62
+ return self.tpAddresses
63
+
64
+ def addTpAddress(self, value):
65
+ if value is not None:
66
+ self.tpAddresses.append(value)
67
+ return self
68
+
69
+ def getTpConnections(self):
70
+ return self.tpConnections
71
+
72
+ def addTpConnection(self, value):
73
+ if value is not None:
74
+ self.tpConnections.append(value)
75
+ return self
76
+
77
+ def getTpNodes(self):
78
+ return self.tpNodes
79
+
80
+ def setTpNode(self, value):
81
+ if value is not None:
82
+ self.tpNodes.append(value)
83
+ 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,12 @@ class System(ARElement):
310
310
  return self
311
311
 
312
312
  def getFibexElementRefs(self):
313
+ #return sorted(self.fibexElements, key= lambda i: i.getShortValue())
313
314
  return self.fibexElements
314
315
 
315
316
  def addFibexElementRef(self, value):
316
- self.fibexElements.append(value)
317
+ if value is not None:
318
+ self.fibexElements.append(value)
317
319
  return self
318
320
 
319
321
  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 *