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.
Files changed (22) hide show
  1. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +2 -2
  2. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +4 -0
  3. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +7 -1
  4. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +13 -0
  5. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +165 -4
  6. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +400 -17
  7. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +356 -8
  8. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +2 -4
  9. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +76 -10
  10. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +45 -23
  11. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +1 -0
  12. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +55 -2
  13. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +2 -1
  14. armodel/parser/abstract_arxml_parser.py +5 -5
  15. armodel/parser/arxml_parser.py +632 -466
  16. armodel/writer/arxml_writer.py +347 -52
  17. {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/METADATA +22 -1
  18. {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/RECORD +22 -22
  19. {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/LICENSE +0 -0
  20. {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/WHEEL +0 -0
  21. {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/entry_points.txt +0 -0
  22. {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 CanTpConfig(FibexElement):
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
- class DoIpTpConfig(FibexElement):
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
- raise ValueError("Invalid Tag type <%s>" % type(tag))
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 _raiseError(self, error_msg):
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 _raiseWarning(self, error_msg):
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._raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
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._raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
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)