armodel 1.7.5__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.
- 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 +7 -1
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +13 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +165 -4
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +400 -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/CoreTopology.py +45 -23
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +1 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +55 -2
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +2 -1
- armodel/parser/abstract_arxml_parser.py +5 -5
- armodel/parser/arxml_parser.py +632 -466
- armodel/writer/arxml_writer.py +347 -52
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/METADATA +22 -1
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/RECORD +22 -22
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/LICENSE +0 -0
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/WHEEL +0 -0
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/top_level.txt +0 -0
|
@@ -1,12 +1,33 @@
|
|
|
1
|
+
from abc import ABCMeta
|
|
1
2
|
from typing import List
|
|
3
|
+
|
|
4
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
|
|
2
5
|
from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
|
|
3
6
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
4
7
|
|
|
5
|
-
class
|
|
8
|
+
class TpConfig(FibexElement, metaclass = ABCMeta):
|
|
6
9
|
def __init__(self, parent: ARObject, short_name: str):
|
|
10
|
+
if type(self) == ARObject:
|
|
11
|
+
raise NotImplementedError("ARObject is an abstract class.")
|
|
12
|
+
|
|
7
13
|
super().__init__(parent, short_name)
|
|
8
14
|
|
|
9
|
-
|
|
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):
|
|
10
31
|
def __init__(self, parent: ARObject, short_name: str):
|
|
11
32
|
super().__init__(parent, short_name)
|
|
12
33
|
|
|
@@ -28,3 +49,35 @@ class DoIpTpConfig(FibexElement):
|
|
|
28
49
|
if value is not None:
|
|
29
50
|
self.tpConnections.append(value)
|
|
30
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
|
|
@@ -310,7 +310,8 @@ 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
|
+
#return sorted(self.fibexElements, key= lambda i: i.getShortValue())
|
|
314
|
+
return self.fibexElements
|
|
314
315
|
|
|
315
316
|
def addFibexElementRef(self, value):
|
|
316
317
|
if value is not None:
|
|
@@ -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)
|