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.
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +41 -2
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +47 -6
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +17 -7
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +2 -2
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +4 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +8 -2
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +9 -3
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +30 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +19 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +2 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +41 -16
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +10 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +26 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +19 -5
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +29 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/ECUResourceMapping.py +44 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +165 -4
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +409 -17
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +356 -8
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +2 -4
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +76 -10
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +483 -54
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +45 -23
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +10 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +245 -130
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +27 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +633 -5
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +22 -11
- armodel/models/M2/MSR/AsamHdo/AdminData.py +1 -2
- armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +3 -1
- armodel/models/M2/MSR/AsamHdo/SpecialData.py +35 -8
- armodel/models/M2/MSR/DataDictionary/RecordLayout.py +0 -3
- armodel/models/__init__.py +4 -0
- armodel/parser/abstract_arxml_parser.py +8 -5
- armodel/parser/arxml_parser.py +1229 -572
- armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -3
- armodel/tests/test_armodel/models/test_datatype.py +1 -1
- armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +218 -0
- armodel/tests/test_armodel/parser/test_sw_components.py +22 -1
- armodel/writer/abstract_arxml_writer.py +7 -6
- armodel/writer/arxml_writer.py +1037 -187
- {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/METADATA +62 -3
- {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/RECORD +48 -44
- {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/LICENSE +0 -0
- {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/WHEEL +0 -0
- {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.5.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 = []
|
|
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
|
|
119
|
-
self.
|
|
120
|
-
|
|
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
|
|
220
|
+
def getSwImplMappings(self):
|
|
214
221
|
return self.swImplMappings
|
|
215
222
|
|
|
216
|
-
def
|
|
217
|
-
self.
|
|
218
|
-
|
|
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
|
|
@@ -310,7 +320,8 @@ class System(ARElement):
|
|
|
310
320
|
return self
|
|
311
321
|
|
|
312
322
|
def getFibexElementRefs(self):
|
|
313
|
-
return sorted(self.fibexElements, key= lambda i: i.getShortValue())
|
|
323
|
+
#return sorted(self.fibexElements, key= lambda i: i.getShortValue())
|
|
324
|
+
return self.fibexElements
|
|
314
325
|
|
|
315
326
|
def addFibexElementRef(self, value):
|
|
316
327
|
if value is not None:
|
|
@@ -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
|
|
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
|
|
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 = []
|
|
32
|
-
self.sdgCaption = None
|
|
33
|
-
self.sdgContentsTypes = []
|
|
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
|
|
53
|
-
|
|
54
|
-
|
|
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
|
|
60
|
-
|
|
84
|
+
def addSdxRef(self, value):
|
|
85
|
+
if value is not None:
|
|
86
|
+
self.sdxRefs.append(value)
|
|
87
|
+
return self
|
armodel/models/__init__.py
CHANGED
|
@@ -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 *
|
|
@@ -32,14 +32,14 @@ class AbstractARXMLParser:
|
|
|
32
32
|
tag = tag.tag
|
|
33
33
|
if isinstance(tag, str):
|
|
34
34
|
return tag.replace("{%s}" % self.nsmap["xmlns"], "")
|
|
35
|
-
|
|
35
|
+
self.raiseError("Invalid Tag type <%s>" % type(tag))
|
|
36
36
|
|
|
37
37
|
def _processOptions(self, options):
|
|
38
38
|
if options:
|
|
39
39
|
if 'warning' in options:
|
|
40
40
|
self.options['warning'] = options['warning']
|
|
41
41
|
|
|
42
|
-
def
|
|
42
|
+
def raiseError(self, error_msg):
|
|
43
43
|
if (self.options['warning'] == True):
|
|
44
44
|
self.logger.error(Fore.RED + error_msg + Fore.WHITE)
|
|
45
45
|
else:
|
|
@@ -51,7 +51,7 @@ class AbstractARXMLParser:
|
|
|
51
51
|
else:
|
|
52
52
|
raise NotImplementedError(error_msg)
|
|
53
53
|
|
|
54
|
-
def
|
|
54
|
+
def raiseWarning(self, error_msg):
|
|
55
55
|
self.logger.warning(error_msg)
|
|
56
56
|
|
|
57
57
|
def getPureTagName(self, tag):
|
|
@@ -81,7 +81,7 @@ class AbstractARXMLParser:
|
|
|
81
81
|
self.readARObjectAttributes(child_element, literal)
|
|
82
82
|
literal._value = child_element.text
|
|
83
83
|
return literal
|
|
84
|
-
self.
|
|
84
|
+
self.raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
|
|
85
85
|
|
|
86
86
|
def getChildElementLiteralValueList(self, element: ET.Element, key: str) -> ARFloat:
|
|
87
87
|
child_elements = self.findall(element, key)
|
|
@@ -244,7 +244,7 @@ class AbstractARXMLParser:
|
|
|
244
244
|
child_element = self.find(element, key)
|
|
245
245
|
if (child_element is not None):
|
|
246
246
|
return self._getChildElementRefTypeDestAndValue(child_element)
|
|
247
|
-
self.
|
|
247
|
+
self.raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
|
|
248
248
|
|
|
249
249
|
def getChildElementOptionalRefType(self, element:ET.Element, key: str) -> RefType:
|
|
250
250
|
child_element = self.find(element, key)
|
|
@@ -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
|
|