armodel 1.7.3__py3-none-any.whl → 1.7.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. armodel/cli/file_list_cli.py +70 -0
  2. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2 -1
  3. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +1 -1
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +6 -7
  5. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +47 -0
  6. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +0 -0
  7. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +73 -3
  8. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +37 -1
  9. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +17 -1
  10. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +31 -0
  11. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +4 -3
  12. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +17 -32
  13. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +4 -0
  14. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +7 -1
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +47 -15
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +58 -0
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +244 -0
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +281 -0
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +328 -0
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +522 -11
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +114 -6
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +94 -0
  23. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +151 -6
  24. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +140 -12
  25. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +31 -6
  26. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +7 -12
  27. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +135 -13
  28. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +25 -1
  29. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +4 -3
  30. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +0 -1
  31. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +1 -1
  32. armodel/models/__init__.py +6 -0
  33. armodel/parser/abstract_arxml_parser.py +2 -0
  34. armodel/parser/arxml_parser.py +561 -62
  35. armodel/tests/test_armodel/models/test_ar_ref.py +2 -2
  36. armodel/writer/abstract_arxml_writer.py +1 -3
  37. armodel/writer/arxml_writer.py +702 -223
  38. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/METADATA +47 -2
  39. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/RECORD +43 -34
  40. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/entry_points.txt +1 -0
  41. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/LICENSE +0 -0
  42. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/WHEEL +0 -0
  43. {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/top_level.txt +0 -0
@@ -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,30 @@
1
+ from typing import List
1
2
  from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
2
3
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
4
 
4
5
  class CanTpConfig(FibexElement):
5
6
  def __init__(self, parent: ARObject, short_name: str):
6
- super().__init__(parent, short_name)
7
+ super().__init__(parent, short_name)
8
+
9
+ class DoIpTpConfig(FibexElement):
10
+ def __init__(self, parent: ARObject, short_name: str):
11
+ super().__init__(parent, short_name)
12
+
13
+ self.doIpLogicAddresses = [] # type: List[DoIpLogicAddress]
14
+ self.tpConnections = [] # typeL List[DoIpTpConnection]
15
+
16
+ def getDoIpLogicAddresses(self):
17
+ return self.doIpLogicAddresses
18
+
19
+ def addDoIpLogicAddress(self, value):
20
+ if value is not None:
21
+ self.doIpLogicAddresses.append(value)
22
+ return self
23
+
24
+ def getTpConnections(self):
25
+ return self.tpConnections
26
+
27
+ def addTpConnection(self, value):
28
+ if value is not None:
29
+ self.tpConnections.append(value)
30
+ 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,11 @@ class System(ARElement):
310
310
  return self
311
311
 
312
312
  def getFibexElementRefs(self):
313
- return self.fibexElements
313
+ return sorted(self.fibexElements, key= lambda i: i.getShortValue())
314
314
 
315
315
  def addFibexElementRef(self, value):
316
- self.fibexElements.append(value)
316
+ if value is not None:
317
+ self.fibexElements.append(value)
317
318
  return self
318
319
 
319
320
  def getInterpolationRoutineMappingSetRefs(self):
@@ -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)
@@ -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,7 +61,11 @@ 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 *
66
+ from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import *
67
+ from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import *
68
+ from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import *
63
69
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import *
64
70
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import *
65
71
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import *
@@ -154,12 +154,14 @@ class AbstractARXMLParser:
154
154
  time_value.setValue(child_element.text)
155
155
  return time_value
156
156
 
157
+ '''
157
158
  def getChildElementBooleanValue(self, short_name: str, element: ET.Element, key: str) -> Boolean:
158
159
  literal = self.getChildElementLiteral(short_name, element, key)
159
160
  bool_value = Boolean()
160
161
  bool_value.timestamp = literal.timestamp
161
162
  bool_value.value = self._convertStringToBooleanValue(literal._value)
162
163
  return bool_value
164
+ '''
163
165
 
164
166
  def getChildElementOptionalBooleanValue(self, element: ET.Element, key: str) -> Boolean:
165
167
  literal = self.getChildElementOptionalLiteral(element, key)