armodel 1.7.6__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 (41) 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/GenericStructure/GeneralTemplateClasses/ARPackage.py +1 -1
  5. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +9 -3
  6. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +17 -1
  7. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +19 -5
  8. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -0
  9. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +2 -2
  10. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +41 -16
  11. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +10 -3
  12. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +26 -8
  13. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +19 -5
  14. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +29 -0
  15. armodel/models/M2/AUTOSARTemplates/SystemTemplate/ECUResourceMapping.py +44 -0
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +9 -0
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +483 -54
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +9 -0
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +245 -130
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +27 -0
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +592 -17
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +20 -10
  23. armodel/models/M2/MSR/AsamHdo/AdminData.py +1 -2
  24. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +3 -1
  25. armodel/models/M2/MSR/AsamHdo/SpecialData.py +35 -8
  26. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +0 -3
  27. armodel/models/__init__.py +4 -0
  28. armodel/parser/abstract_arxml_parser.py +3 -0
  29. armodel/parser/arxml_parser.py +614 -123
  30. armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -3
  31. armodel/tests/test_armodel/models/test_datatype.py +1 -1
  32. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +218 -0
  33. armodel/tests/test_armodel/parser/test_sw_components.py +22 -1
  34. armodel/writer/abstract_arxml_writer.py +7 -6
  35. armodel/writer/arxml_writer.py +694 -139
  36. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/METADATA +41 -3
  37. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/RECORD +41 -37
  38. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/LICENSE +0 -0
  39. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/WHEEL +0 -0
  40. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/entry_points.txt +0 -0
  41. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,9 @@
1
1
  from typing import List
2
+
3
+
4
+ from ....M2.AUTOSARTemplates.SystemTemplate.ECUResourceMapping import ECUMapping
2
5
  from ....M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef
6
+ from ....M2.AUTOSARTemplates.SystemTemplate.SWmapping import SwcToImplMapping
3
7
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
8
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable
5
9
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger, RefType, TRefType
@@ -51,7 +55,7 @@ class SystemMapping(Identifiable):
51
55
  self.cryptoServiceMappings = []
52
56
  self.dataMappings = []
53
57
  self.ddsISignalToTopicMappings = []
54
- self.ecuResourceMappings = []
58
+ self.ecuResourceMappings = [] # type: List[ECUMapping]
55
59
  self.j1939ControllerApplicationToJ1939NmNodeMappings = []
56
60
  self.mappingConstraints = []
57
61
  self.pncMappings = []
@@ -65,8 +69,8 @@ class SystemMapping(Identifiable):
65
69
  self.softwareClusterToResourceMappings = []
66
70
  self.swClusterMappings = []
67
71
  self.swcToApplicationPartitionMappings = []
68
- self.swImplMappings = []
69
- self.swMappings = [] # type: List[SwcToEcuMapping]
72
+ self.swImplMappings = [] # type: List[SwcToImplMapping]
73
+ self.swMappings = [] # type: List[SwcToEcuMapping]
70
74
  self.systemSignalGroupToComResourceMappings = []
71
75
  self.systemSignalToComResourceMappings = []
72
76
 
@@ -115,9 +119,12 @@ class SystemMapping(Identifiable):
115
119
  def getEcuResourceMappings(self):
116
120
  return self.ecuResourceMappings
117
121
 
118
- def addEcuResourceMapping(self, value):
119
- self.ecuResourceMappings.append(value)
120
- return self
122
+ def createECUMapping(self, short_name: str) -> ECUMapping:
123
+ if short_name not in self.elements:
124
+ mapping = ECUMapping(self, short_name)
125
+ self.addElement(mapping)
126
+ self.ecuResourceMappings.append(mapping)
127
+ return self.getElement(short_name)
121
128
 
122
129
  def getJ1939ControllerApplicationToJ1939NmNodeMappings(self):
123
130
  return self.j1939ControllerApplicationToJ1939NmNodeMappings
@@ -210,12 +217,15 @@ class SystemMapping(Identifiable):
210
217
  self.swcToApplicationPartitionMappings.append(value)
211
218
  return self
212
219
 
213
- def getSwImplMapping(self):
220
+ def getSwImplMappings(self):
214
221
  return self.swImplMappings
215
222
 
216
- def addSwImplMappings(self, value):
217
- self.swImplMappings.append(value)
218
- return self
223
+ def createSwcToImplMapping(self, short_name: str) -> SwcToImplMapping:
224
+ if short_name not in self.elements:
225
+ mapping = SwcToImplMapping(self, short_name)
226
+ self.addElement(mapping)
227
+ self.swImplMappings.append(mapping)
228
+ return self.getElement(short_name)
219
229
 
220
230
  def getSwMappings(self):
221
231
  return self.swMappings
@@ -1,7 +1,6 @@
1
1
  from ....M2.MSR.Documentation.TextModel.LanguageDataModel import LEnum
2
2
  from ....M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguagePlainText
3
3
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
- from ....M2.MSR.AsamHdo.SpecialData import Sdg
5
4
  from typing import List
6
5
 
7
6
  class AdminData(ARObject):
@@ -10,7 +9,7 @@ class AdminData(ARObject):
10
9
 
11
10
  self.DocRevisions = [] # type: List[DocRevision]
12
11
  self.language = None # type: LEnum
13
- self.sdgs = [] # type: List[Sdg]
12
+ self.sdgs = [] # type: List ## Sdg will cause the circular import
14
13
  self.usedLanguages = None # type: MultiLanguagePlainText
15
14
 
16
15
  def getDocRevisions(self):
@@ -1,7 +1,9 @@
1
1
  from typing import List
2
2
  from abc import ABCMeta
3
+
4
+ from ....M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph
3
5
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
4
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, CIdentifier, Identifier, PositiveUnlimitedInteger, String
6
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import CIdentifier, Identifier, PositiveUnlimitedInteger, String
5
7
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
6
8
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
7
9
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Limit
@@ -1,3 +1,6 @@
1
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
2
+ from ....M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph
3
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import MultilanguageReferrable
1
4
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
2
5
  from typing import List
3
6
 
@@ -22,15 +25,30 @@ class Sd(ARObject):
22
25
  self.value = value
23
26
  return self
24
27
 
28
+ class SdgCaption(MultilanguageReferrable):
29
+ def __init__(self, parent, short_name):
30
+ super().__init__(parent, short_name)
31
+
32
+ self.desc = None # type: MultiLanguageOverviewParagraph
33
+
34
+ def getDesc(self):
35
+ return self.desc
36
+
37
+ def setDesc(self, value):
38
+ if value is not None:
39
+ self.desc = value
40
+ return self
41
+
25
42
 
26
43
  class Sdg(ARObject):
27
44
  def __init__(self):
28
45
  super().__init__()
29
46
 
30
47
  self.gid = ""
31
- self.sd = [] # type: List[Sd]
32
- self.sdgCaption = None
33
- self.sdgContentsTypes = [] # type: List[Sdg]
48
+ self.sd = [] # type: List[Sd]
49
+ self.sdgCaption = None # type: SdgCaption
50
+ self.sdgContentsTypes = [] # type: List[Sdg]
51
+ self.sdxRefs = [] # type: List[RefType]
34
52
 
35
53
  def getGID(self):
36
54
  return self.gid
@@ -49,12 +67,21 @@ class Sdg(ARObject):
49
67
  def getSdgCaption(self):
50
68
  return self.sdgCaption
51
69
 
52
- def setSdgCaption(self, value):
53
- self.sdgCaption = value
54
- return self
70
+ def createSdgCaption(self, short_name: str) -> SdgCaption:
71
+ caption = SdgCaption(self, short_name)
72
+ self.sdgCaption = caption
73
+ return caption
55
74
 
75
+ def getSdgContentsTypes(self):
76
+ return self.sdgContentsTypes
77
+
56
78
  def addSdgContentsType(self, sdg):
57
79
  self.sdgContentsTypes.append(sdg)
80
+
81
+ def getSdxRefs(self):
82
+ return self.sdxRefs
58
83
 
59
- def getSdgContentsTypes(self):
60
- return self.sdgContentsTypes
84
+ def addSdxRef(self, value):
85
+ if value is not None:
86
+ self.sdxRefs.append(value)
87
+ return self
@@ -72,9 +72,6 @@ class SwRecordLayoutV(ARObject):
72
72
  self.swRecordLayoutVProp = value
73
73
  return self
74
74
 
75
-
76
-
77
-
78
75
  class SwRecordLayoutGroupContent(ARObject):
79
76
  def __init__(self):
80
77
  super().__init__()
@@ -52,11 +52,15 @@ from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents impo
52
52
  from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import *
53
53
  from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import *
54
54
  from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.Trigger import *
55
+ from .M2.AUTOSARTemplates.SystemTemplate import *
56
+ from .M2.AUTOSARTemplates.SystemTemplate.DoIp import *
55
57
  from .M2.AUTOSARTemplates.SystemTemplate.DataMapping import *
56
58
  from .M2.AUTOSARTemplates.SystemTemplate.DiagnosticConnection import *
59
+ from .M2.AUTOSARTemplates.SystemTemplate.ECUResourceMapping import *
57
60
  from .M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import *
58
61
  from .M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import *
59
62
  from .M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import *
63
+ from .M2.AUTOSARTemplates.SystemTemplate.SWmapping import *
60
64
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import *
61
65
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import *
62
66
  from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import *
@@ -296,6 +296,9 @@ class AbstractARXMLParser:
296
296
  keys[idx] = "xmlns:%s" % item
297
297
  return "/".join(keys)
298
298
 
299
+ def findChild(self, parent:ET.Element, key: str) -> ET.Element:
300
+ return parent.find("xmlns:./child::%s" % key, self.nsmap)
301
+
299
302
  def find(self, parent:ET.Element, key: str) -> ET.Element:
300
303
  return parent.find(self.convert_find_key(key), self.nsmap)
301
304