armodel 1.7.5__py3-none-any.whl → 1.7.7__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 (48) hide show
  1. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +41 -2
  2. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +47 -6
  3. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +17 -7
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +2 -2
  5. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +4 -0
  6. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +8 -2
  7. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +9 -3
  8. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +30 -1
  9. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +19 -5
  10. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -0
  11. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +2 -2
  12. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +41 -16
  13. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +10 -3
  14. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +26 -8
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +19 -5
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +29 -0
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/ECUResourceMapping.py +44 -0
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +165 -4
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +409 -17
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +356 -8
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +2 -4
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +76 -10
  23. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +483 -54
  24. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +45 -23
  25. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +10 -0
  26. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +245 -130
  27. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +27 -0
  28. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +633 -5
  29. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +22 -11
  30. armodel/models/M2/MSR/AsamHdo/AdminData.py +1 -2
  31. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +3 -1
  32. armodel/models/M2/MSR/AsamHdo/SpecialData.py +35 -8
  33. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +0 -3
  34. armodel/models/__init__.py +4 -0
  35. armodel/parser/abstract_arxml_parser.py +8 -5
  36. armodel/parser/arxml_parser.py +1229 -572
  37. armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -3
  38. armodel/tests/test_armodel/models/test_datatype.py +1 -1
  39. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +218 -0
  40. armodel/tests/test_armodel/parser/test_sw_components.py +22 -1
  41. armodel/writer/abstract_arxml_writer.py +7 -6
  42. armodel/writer/arxml_writer.py +1037 -187
  43. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/METADATA +62 -3
  44. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/RECORD +48 -44
  45. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/LICENSE +0 -0
  46. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/WHEEL +0 -0
  47. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/entry_points.txt +0 -0
  48. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/top_level.txt +0 -0
@@ -342,15 +342,15 @@ class CommConnectorPort(Identifiable, metaclass = ABCMeta):
342
342
  raise NotImplementedError("CommConnectorPort is an abstract class.")
343
343
 
344
344
  super().__init__(parent, short_name)
345
+
346
+ self.communicationDirection = None # type: CommunicationDirectionType
345
347
 
346
- # type: CommunicationDirectionType
347
- self.communicationDirection = None
348
-
349
- def getCommunicationDirection(self) -> CommunicationDirectionType:
348
+ def getCommunicationDirection(self):
350
349
  return self.communicationDirection
351
350
 
352
- def setCommunicationDirection(self, value: CommunicationDirectionType):
353
- self.communicationDirection = value
351
+ def setCommunicationDirection(self, value):
352
+ if value is not None:
353
+ self.communicationDirection = value
354
354
  return self
355
355
 
356
356
 
@@ -365,9 +365,9 @@ class IPduSignalProcessingEnum(Enum):
365
365
  class IPduPort(CommConnectorPort):
366
366
  def __init__(self, parent: ARObject, short_name: str):
367
367
  super().__init__(parent, short_name)
368
-
369
- # type: IPduSignalProcessingEnum
370
- self.iPduSignalProcessing = None
368
+
369
+ self.iPduSignalProcessing = None # type: IPduSignalProcessingEnum
370
+ self.keyId = None # type: PositiveInteger
371
371
  self.rxSecurityVerification = None # type: Boolean
372
372
  self.timestampRxAcceptanceWindow = None # type: TimeValue
373
373
  self.useAuthDataFreshness = None # type: Boolean
@@ -376,68 +376,90 @@ class IPduPort(CommConnectorPort):
376
376
  return self.iPduSignalProcessing
377
377
 
378
378
  def setIPduSignalProcessing(self, value):
379
- 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
380
389
  return self
381
390
 
382
391
  def getRxSecurityVerification(self):
383
392
  return self.rxSecurityVerification
384
393
 
385
394
  def setRxSecurityVerification(self, value):
386
- self.rxSecurityVerification = value
395
+ if value is not None:
396
+ self.rxSecurityVerification = value
387
397
  return self
388
398
 
389
399
  def getTimestampRxAcceptanceWindow(self):
390
400
  return self.timestampRxAcceptanceWindow
391
401
 
392
402
  def setTimestampRxAcceptanceWindow(self, value):
393
- self.timestampRxAcceptanceWindow = value
403
+ if value is not None:
404
+ self.timestampRxAcceptanceWindow = value
394
405
  return self
395
406
 
396
407
  def getUseAuthDataFreshness(self):
397
408
  return self.useAuthDataFreshness
398
409
 
399
410
  def setUseAuthDataFreshness(self, value):
400
- self.useAuthDataFreshness = value
411
+ if value is not None:
412
+ self.useAuthDataFreshness = value
401
413
  return self
402
414
 
403
415
  class ISignalPort(CommConnectorPort):
404
416
  def __init__(self, parent: ARObject, short_name: str):
405
417
  super().__init__(parent, short_name)
406
418
 
407
- # type: DataFilter
408
- self.dataFilter = None
419
+ self.dataFilter = None # type: DataFilter
409
420
  self.ddsQosProfileRef = None # type: RefType
410
- # type: TimeValue
411
- self.firstTimeout = None
412
- # type: HandleInvalidEnum
413
- self.handleInvalid = None
421
+ self.firstTimeout = None # type: TimeValue
422
+ self.handleInvalid = None # type: HandleInvalidEnum
423
+ self.timeout = None # type: TimeValue
414
424
 
415
425
  def getDataFilter(self):
416
426
  return self.dataFilter
417
427
 
418
428
  def setDataFilter(self, value):
419
- self.dataFilter = value
429
+ if value is not None:
430
+ self.dataFilter = value
420
431
  return self
421
432
 
422
433
  def getDdsQosProfileRef(self):
423
434
  return self.ddsQosProfileRef
424
435
 
425
436
  def setDdsQosProfileRef(self, value):
426
- self.ddsQosProfileRef = value
437
+ if value is not None:
438
+ self.ddsQosProfileRef = value
427
439
  return self
428
440
 
429
441
  def getFirstTimeout(self):
430
442
  return self.firstTimeout
431
443
 
432
444
  def setFirstTimeout(self, value):
433
- self.firstTimeout = value
445
+ if value is not None:
446
+ self.firstTimeout = value
434
447
  return self
435
448
 
436
449
  def getHandleInvalid(self):
437
450
  return self.handleInvalid
438
451
 
439
452
  def setHandleInvalid(self, value):
440
- 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
441
463
  return self
442
464
 
443
465
  class CommunicationConnector(Identifiable, metaclass = ABCMeta):
@@ -1,3 +1,4 @@
1
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, RefType, TimeValue
1
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
@@ -21,6 +22,7 @@ class EcuInstance(FibexElement):
21
22
  self.comEnableMDTForCyclicTransmission = None # type: Boolean
22
23
  self.commControllers = [] # type: List[CommunicationController]
23
24
  self.connectors = [] # type: List[CommunicationConnector]
25
+ self.diagnosticAddress = None # type: Integer ## Only AR 4.3.1
24
26
  self.dltConfig = None # type: DltConfig
25
27
  self.doIpConfig = None # type: DoIpConfig
26
28
  self.ecuTaskProxyRefs = [] # type: List[RefType]
@@ -141,6 +143,14 @@ class EcuInstance(FibexElement):
141
143
  connector = LinCommunicationConnector(self, short_name)
142
144
  self.addElement(connector)
143
145
  return self.getElement(short_name)
146
+
147
+ def getDiagnosticAddress(self):
148
+ return self.diagnosticAddress
149
+
150
+ def setDiagnosticAddress(self, value):
151
+ if value is not None:
152
+ self.diagnosticAddress = value
153
+ return self
144
154
 
145
155
  def getDltConfig(self):
146
156
  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, Integer, PositiveInteger, RefType, ARBoolean, TimeValue
6
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, Boolean, Integer, PositiveInteger, RefType, ARBoolean, TimeValue
7
7
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
8
8
 
9
9
  class NmClusterCoupling(ARObject, metaclass = ABCMeta):
@@ -62,10 +62,7 @@ class FlexrayNmClusterCoupling(NmClusterCoupling):
62
62
  def setNmScheduleVariant(self, value):
63
63
  self.nmScheduleVariant = value
64
64
  return self
65
-
66
- class UdpNmClusterCoupling(NmClusterCoupling):
67
- def __init__(self):
68
- super().__init__()
65
+
69
66
 
70
67
  class NmNode(Identifiable, metaclass = ABCMeta):
71
68
  def __init__(self, parent: ARObject, short_name: str):
@@ -203,6 +200,223 @@ class UdpNmNode(NmNode):
203
200
  def __init__(self, parent: ARObject, short_name: str):
204
201
  super().__init__(parent, short_name)
205
202
 
203
+ self.allNmMessagesKeepAwake = None # type: Boolean
204
+ self.nmMsgCycleOffset = None # type: TimeValue
205
+
206
+ def getAllNmMessagesKeepAwake(self):
207
+ return self.allNmMessagesKeepAwake
208
+
209
+ def setAllNmMessagesKeepAwake(self, value):
210
+ if value is not None:
211
+ self.allNmMessagesKeepAwake = value
212
+ return self
213
+
214
+ def getNmMsgCycleOffset(self):
215
+ return self.nmMsgCycleOffset
216
+
217
+ def setNmMsgCycleOffset(self, value):
218
+ if value is not None:
219
+ self.nmMsgCycleOffset = value
220
+ return self
221
+
222
+ class BusspecificNmEcu(ARObject, metaclass = ABCMeta):
223
+ def __init__(self):
224
+ super().__init__()
225
+
226
+ class CanNmEcu(BusspecificNmEcu):
227
+ def __init__(self):
228
+ super().__init__()
229
+
230
+ class FlexrayNmEcu(BusspecificNmEcu):
231
+ def __init__(self):
232
+ super().__init__()
233
+
234
+ class J1939NmEcu(BusspecificNmEcu):
235
+ def __init__(self):
236
+ super().__init__()
237
+
238
+ class UdpNmEcu(BusspecificNmEcu):
239
+ def __init__(self):
240
+ super().__init__()
241
+
242
+ self.nmSynchronizationPointEnabled = None # type: Boolean ## Only AR 4.3.1
243
+
244
+ def getNmSynchronizationPointEnabled(self):
245
+ return self.nmSynchronizationPointEnabled
246
+
247
+ def setNmSynchronizationPointEnabled(self, value):
248
+ if value is not None:
249
+ self.nmSynchronizationPointEnabled = value
250
+ return self
251
+
252
+
253
+ class NmEcu(Identifiable):
254
+ def __init__(self, parent: ARObject, short_name: str):
255
+ super().__init__(parent, short_name)
256
+
257
+ self.busDependentNmEcus = [] # type: List[BusspecificNmEcu]
258
+ self.ecuInstanceRef = None # type: RefType
259
+ self.nmBusSynchronizationEnabled = None # type: Boolean
260
+ self.nmComControlEnabled = None # type: Boolean
261
+ self.nmCoordinator = None # type: NmCoordinator
262
+ self.nmCycletimeMainFunction = None # type: TimeValue
263
+ self.nmNodeDetectionEnabled = None # type: Boolean
264
+ self.nmNodeIdEnabled = None # type: Boolean
265
+ self.nmPduRxIndicationEnabled = None # type: Boolean
266
+ self.nmRemoteSleepIndEnabled = None # type: Boolean
267
+ self.nmRepeatMsgIndEnabled = None # type: Boolean
268
+ self.nmStateChangeIndEnabled = None # type: Boolean
269
+ self.nmUserDataEnabled = None # type: Boolean
270
+
271
+ def getBusDependentNmEcus(self):
272
+ return self.busDependentNmEcus
273
+
274
+ def addBusDependentNmEcu(self, value):
275
+ if value is not None:
276
+ self.busDependentNmEcus.append(value)
277
+ return self
278
+
279
+ def getEcuInstanceRef(self):
280
+ return self.ecuInstanceRef
281
+
282
+ def setEcuInstanceRef(self, value):
283
+ if value is not None:
284
+ self.ecuInstanceRef = value
285
+ return self
286
+
287
+ def getNmBusSynchronizationEnabled(self):
288
+ return self.nmBusSynchronizationEnabled
289
+
290
+ def setNmBusSynchronizationEnabled(self, value):
291
+ if value is not None:
292
+ self.nmBusSynchronizationEnabled = value
293
+ return self
294
+
295
+ def getNmComControlEnabled(self):
296
+ return self.nmComControlEnabled
297
+
298
+ def setNmComControlEnabled(self, value):
299
+ if value is not None:
300
+ self.nmComControlEnabled = value
301
+ return self
302
+
303
+ def getNmCoordinator(self):
304
+ return self.nmCoordinator
305
+
306
+ def setNmCoordinator(self, value):
307
+ if value is not None:
308
+ self.nmCoordinator = value
309
+ return self
310
+
311
+ def getNmCycletimeMainFunction(self):
312
+ return self.nmCycletimeMainFunction
313
+
314
+ def setNmCycletimeMainFunction(self, value):
315
+ if value is not None:
316
+ self.nmCycletimeMainFunction = value
317
+ return self
318
+
319
+ def getNmNodeDetectionEnabled(self):
320
+ return self.nmNodeDetectionEnabled
321
+
322
+ def setNmNodeDetectionEnabled(self, value):
323
+ if value is not None:
324
+ self.nmNodeDetectionEnabled = value
325
+ return self
326
+
327
+ def getNmNodeIdEnabled(self):
328
+ return self.nmNodeIdEnabled
329
+
330
+ def setNmNodeIdEnabled(self, value):
331
+ if value is not None:
332
+ self.nmNodeIdEnabled = value
333
+ return self
334
+
335
+ def getNmPduRxIndicationEnabled(self):
336
+ return self.nmPduRxIndicationEnabled
337
+
338
+ def setNmPduRxIndicationEnabled(self, value):
339
+ if value is not None:
340
+ self.nmPduRxIndicationEnabled = value
341
+ return self
342
+
343
+ def getNmRemoteSleepIndEnabled(self):
344
+ return self.nmRemoteSleepIndEnabled
345
+
346
+ def setNmRemoteSleepIndEnabled(self, value):
347
+ if value is not None:
348
+ self.nmRemoteSleepIndEnabled = value
349
+ return self
350
+
351
+ def getNmRepeatMsgIndEnabled(self):
352
+ return self.nmRepeatMsgIndEnabled
353
+
354
+ def setNmRepeatMsgIndEnabled(self, value):
355
+ if value is not None:
356
+ self.nmRepeatMsgIndEnabled = value
357
+ return self
358
+
359
+ def getNmStateChangeIndEnabled(self):
360
+ return self.nmStateChangeIndEnabled
361
+
362
+ def setNmStateChangeIndEnabled(self, value):
363
+ if value is not None:
364
+ self.nmStateChangeIndEnabled = value
365
+ return self
366
+
367
+ def getNmUserDataEnabled(self):
368
+ return self.nmUserDataEnabled
369
+
370
+ def setNmUserDataEnabled(self, value):
371
+ if value is not None:
372
+ self.nmUserDataEnabled = value
373
+ return self
374
+
375
+ class NmConfig(FibexElement):
376
+ def __init__(self, parent: ARObject, short_name: str):
377
+ super().__init__(parent, short_name)
378
+
379
+ self.nmClusterCouplings = [] # type: List[NmClusterCoupling]
380
+ self.nmIfEcus = [] # type: List[NmEcu]
381
+
382
+ def createCanNmCluster(self, short_name: str): # type: (str) -> CanNmCluster
383
+ if (short_name not in self.elements):
384
+ cluster = CanNmCluster(self, short_name)
385
+ self.addElement(cluster)
386
+ return self.getElement(short_name)
387
+
388
+ def createUdpNmCluster(self, short_name: str): # type: (str) -> UdpNmCluster
389
+ if (short_name not in self.elements):
390
+ cluster = UdpNmCluster(self, short_name)
391
+ self.addElement(cluster)
392
+ return self.getElement(short_name)
393
+
394
+ def getCanNmClusters(self): # type: () -> List[CanNmCluster]
395
+ return list(sorted(filter(lambda a: isinstance(a, CanNmCluster), self.elements.values()), key= lambda o:o.short_name))
396
+
397
+ def getUdpNmClusters(self): # type: () -> List[UdpNmCluster]
398
+ return list(sorted(filter(lambda a: isinstance(a, UdpNmCluster), self.elements.values()), key= lambda o:o.short_name))
399
+
400
+ def getNmClusters(self): # type: () -> List[NmCluster]
401
+ return list(sorted(filter(lambda a: isinstance(a, NmCluster), self.elements.values()), key= lambda o:o.short_name))
402
+
403
+ def getNmClusterCouplings(self):
404
+ return self.nmClusterCouplings
405
+
406
+ def addNmClusterCouplings(self, value):
407
+ self.nmClusterCouplings.append(value)
408
+ return self
409
+
410
+ def getNmIfEcus(self):
411
+ return self.nmIfEcus
412
+
413
+ def createNmEcu(self, short_name: str) -> NmEcu:
414
+ if (short_name not in self.elements):
415
+ cluster = NmEcu(self, short_name)
416
+ self.addElement(cluster)
417
+ self.nmIfEcus.append(cluster)
418
+ return self.getElement(short_name)
419
+
206
420
  class NmCluster(Identifiable, metaclass=ABCMeta):
207
421
  def __init__(self, parent: ARObject, short_name: str):
208
422
  super().__init__(parent, short_name)
@@ -437,142 +651,36 @@ class J1939NmCluster(NmCluster):
437
651
  def __init__(self, parent: ARObject, short_name: str):
438
652
  super().__init__(parent, short_name)
439
653
 
440
- class UdpNmCluster(NmCluster):
441
- def __init__(self, parent: ARObject, short_name: str):
442
- super().__init__(parent, short_name)
443
-
444
- class NmEcu(Identifiable):
445
- def __init__(self, parent: ARObject, short_name: str):
446
- super().__init__(parent, short_name)
447
-
448
- self.busDependentNmEcus = []
449
- self.ecuInstance = None
450
- self.nmBusSynchronizationEnabled = None
451
- self.nmComControlEnabled = None
452
- self.nmCoordinator = None
453
- self.nmCycletimeMainFunction = None
454
- self.nmPduRxIndicationEnabled = None
455
- self.nmRemoteSleepIndEnabled = None
456
- self.nmStateChangeIndEnabled = None
457
- self.nmUserDataEnabled = None
458
-
459
- def getBusDependentNmEcus(self):
460
- return self.busDependentNmEcus
461
-
462
- def addBusDependentNmEcu(self, value):
463
- self.busDependentNmEcus.append(value)
464
- return self
465
-
466
- def getEcuInstance(self):
467
- return self.ecuInstance
468
-
469
- def setEcuInstance(self, value):
470
- self.ecuInstance = value
471
- return self
472
-
473
- def getNmBusSynchronizationEnabled(self):
474
- return self.nmBusSynchronizationEnabled
475
-
476
- def setNmBusSynchronizationEnabled(self, value):
477
- self.nmBusSynchronizationEnabled = value
478
- return self
479
-
480
- def getNmComControlEnabled(self):
481
- return self.nmComControlEnabled
482
-
483
- def setNmComControlEnabled(self, value):
484
- self.nmComControlEnabled = value
485
- return self
486
-
487
- def getNmCoordinator(self):
488
- return self.nmCoordinator
489
-
490
- def setNmCoordinator(self, value):
491
- self.nmCoordinator = value
492
- return self
493
-
494
- def getNmCycletimeMainFunction(self):
495
- return self.nmCycletimeMainFunction
496
-
497
- def setNmCycletimeMainFunction(self, value):
498
- self.nmCycletimeMainFunction = value
499
- return self
500
-
501
- def getNmPduRxIndicationEnabled(self):
502
- return self.nmPduRxIndicationEnabled
503
-
504
- def setNmPduRxIndicationEnabled(self, value):
505
- self.nmPduRxIndicationEnabled = value
506
- return self
507
-
508
- def getNmRemoteSleepIndEnabled(self):
509
- return self.nmRemoteSleepIndEnabled
654
+ class UdpNmClusterCoupling(NmClusterCoupling):
655
+ def __init__(self):
656
+ super().__init__()
510
657
 
511
- def setNmRemoteSleepIndEnabled(self, value):
512
- self.nmRemoteSleepIndEnabled = value
513
- return self
658
+ self.coupledClusterRefs = [] # type: List[RefType]
659
+ self.nmImmediateRestartEnabled = None # type: Boolean
514
660
 
515
- def getNmStateChangeIndEnabled(self):
516
- return self.nmStateChangeIndEnabled
661
+ def getCoupledClusterRefs(self):
662
+ return self.coupledClusterRefs
517
663
 
518
- def setNmStateChangeIndEnabled(self, value):
519
- self.nmStateChangeIndEnabled = value
664
+ def addCoupledClusterRef(self, value):
665
+ if value is not None:
666
+ self.coupledClusterRefs.append(value)
520
667
  return self
521
668
 
522
- def getNmUserDataEnabled(self):
523
- return self.nmUserDataEnabled
524
-
525
- def setNmUserDataEnabled(self, value):
526
- self.nmUserDataEnabled = value
527
- return self
528
-
529
- class NmConfig(FibexElement):
530
- def __init__(self, parent: ARObject, short_name: str):
531
- super().__init__(parent, short_name)
532
-
533
- self.nmClusterCouplings = [] # type: List[NmClusterCoupling]
534
- self.nmIfEcus = [] # type: List[NmEcu]
535
-
536
- def createCanNmCluster(self, short_name: str) -> CanNmCluster:
537
- if (short_name not in self.elements):
538
- cluster = CanNmCluster(self, short_name)
539
- self.addElement(cluster)
540
- return self.getElement(short_name)
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
-
548
- def getCanNmClusters(self) -> List[CanNmCluster]:
549
- return list(sorted(filter(lambda a: isinstance(a, CanNmCluster), self.elements.values()), key= lambda o:o.short_name))
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
-
554
- def getNmClusters(self) -> List[NmCluster]:
555
- return list(sorted(filter(lambda a: isinstance(a, NmCluster), self.elements.values()), key= lambda o:o.short_name))
556
-
557
- def getNmClusterCouplings(self):
558
- return self.nmClusterCouplings
669
+ def getNmImmediateRestartEnabled(self):
670
+ return self.nmImmediateRestartEnabled
559
671
 
560
- def addNmClusterCouplings(self, value):
561
- self.nmClusterCouplings.append(value)
672
+ def setNmImmediateRestartEnabled(self, value):
673
+ if value is not None:
674
+ self.nmImmediateRestartEnabled = value
562
675
  return self
563
676
 
564
- def getNmIfEcus(self):
565
- return self.nmIfEcus
566
677
 
567
- def addNmIfEcus(self, value):
568
- self.nmIfEcus.append(value)
569
- return self
570
-
571
678
  class UdpNmCluster(NmCluster):
572
679
  def __init__(self, parent: ARObject, short_name: str):
573
680
  super().__init__(parent, short_name)
574
681
 
575
682
  self.nmCbvPosition = None # type: Integer
683
+ self.nmChannelActive = None # type: Boolean
576
684
  self.nmImmediateNmCycleTime = None # type: TimeValue
577
685
  self.nmImmediateNmTransmissions = None # type: PositiveInteger
578
686
  self.nmMessageTimeoutTime = None # type: TimeValue
@@ -591,6 +699,15 @@ class UdpNmCluster(NmCluster):
591
699
  if value is not None:
592
700
  self.nmCbvPosition = value
593
701
  return self
702
+
703
+ def getNmChannelActive(self):
704
+ return self.nmChannelActive
705
+
706
+ def setNmChannelActive(self, value):
707
+ if value is not None:
708
+ self.nmChannelActive = value
709
+ return self
710
+
594
711
 
595
712
  def getNmImmediateNmCycleTime(self):
596
713
  return self.nmImmediateNmCycleTime
@@ -670,6 +787,4 @@ class UdpNmCluster(NmCluster):
670
787
  def setVlanRef(self, value):
671
788
  if value is not None:
672
789
  self.vlanRef = value
673
- return self
674
-
675
-
790
+ return self
@@ -0,0 +1,27 @@
1
+ from typing import List
2
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
3
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
4
+ from ....M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef
5
+
6
+ class SwcToImplMapping(Identifiable):
7
+ def __init__(self, parent, short_name):
8
+ super().__init__(parent, short_name)
9
+
10
+ self.componentIRefs = [] # type: List[ComponentInSystemInstanceRef]
11
+ self.componentImplementationRef = None # type: RefType
12
+
13
+ def getComponentIRefs(self):
14
+ return self.componentIRefs
15
+
16
+ def addComponentIRef(self, value):
17
+ if value is not None:
18
+ self.componentIRefs.append(value)
19
+ return self
20
+
21
+ def getComponentImplementationRef(self):
22
+ return self.componentImplementationRef
23
+
24
+ def setComponentImplementationRef(self, value):
25
+ if value is not None:
26
+ self.componentImplementationRef = value
27
+ return self