armodel 1.6.2__py3-none-any.whl → 1.6.3__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 (157) hide show
  1. armodel/cli/arxml_dump_cli.py +10 -7
  2. armodel/cli/arxml_format_cli.py +1 -1
  3. armodel/cli/connector_update_cli.py +1 -1
  4. armodel/lib/sw_component.py +1 -1
  5. armodel/lib/system_signal.py +2 -2
  6. armodel/models/{m2/autosar_templates/autosar_top_level_structure.py → M2/AUTOSARTemplates/AutosarTopLevelStructure.py} +7 -4
  7. armodel/models/{bsw_module_template.py → M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py} +115 -140
  8. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +21 -0
  9. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +52 -0
  10. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +78 -0
  11. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__init__.py +1 -0
  12. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +81 -0
  13. armodel/models/{m2/autosar_templates/common_structure/implementation_data_types.py → M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py} +9 -5
  14. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +108 -0
  15. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +96 -0
  16. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +72 -0
  17. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +22 -0
  18. armodel/models/{service_needs.py → M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py} +7 -7
  19. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +36 -0
  20. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +27 -0
  21. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +1 -0
  22. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +9 -0
  23. armodel/models/{m2/autosar_templates/common_structure → M2/AUTOSARTemplates/CommonStructure}/__init__.py +5 -2
  24. armodel/models/{m2/autosar_templates/generic_structure/abstract_structure.py → M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py} +25 -2
  25. armodel/models/{m2/autosar_templates/generic_structure/ar_package.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py} +29 -21
  26. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +16 -0
  27. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +1 -0
  28. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +55 -0
  29. armodel/models/{general_structure.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py} +37 -149
  30. armodel/models/{ar_object.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py} +163 -70
  31. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__init__.py +1 -0
  32. armodel/models/M2/AUTOSARTemplates/GenericStructure/__init__.py +1 -0
  33. armodel/models/{m2/autosar_templates/sw_component_template/communication.py → M2/AUTOSARTemplates/SWComponentTemplate/Communication.py} +22 -5
  34. armodel/models/{m2/autosar_templates/sw_component_template/components/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py} +2 -2
  35. armodel/models/{m2/autosar_templates/sw_component_template/components → M2/AUTOSARTemplates/SWComponentTemplate/Components}/__init__.py +10 -8
  36. armodel/models/{m2/autosar_templates/sw_component_template/composition/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py} +2 -2
  37. armodel/models/{m2/autosar_templates/sw_component_template/composition → M2/AUTOSARTemplates/SWComponentTemplate/Composition}/__init__.py +5 -5
  38. armodel/models/{m2/autosar_templates/sw_component_template/data_type/data_prototypes.py → M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py} +25 -7
  39. armodel/models/{datatype.py → M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py} +16 -73
  40. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__init__.py +1 -0
  41. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +177 -0
  42. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +11 -0
  43. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/access_count.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py} +2 -2
  44. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py} +7 -5
  45. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +24 -0
  46. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/instance_refs_usage.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py} +3 -3
  47. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py} +3 -3
  48. armodel/models/{per_instance_memory.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py} +5 -6
  49. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py} +3 -3
  50. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +23 -0
  51. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/trigger.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py} +2 -2
  52. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior}/__init__.py +9 -10
  53. armodel/models/{m2/autosar_templates/sw_component_template → M2/AUTOSARTemplates/SWComponentTemplate}/port_interface/__init__.py +10 -6
  54. armodel/models/{m2/autosar_templates/sw_component_template → M2/AUTOSARTemplates/SWComponentTemplate}/port_interface/instance_refs.py +2 -2
  55. armodel/models/{m2/autosar_templates/system_template/instance_refs.py → M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py} +2 -2
  56. armodel/models/{m2/autosar_templates/system_template → M2/AUTOSARTemplates/SystemTemplate}/__init__.py +4 -2
  57. armodel/models/{m2/autosar_templates/system_template → M2/AUTOSARTemplates/SystemTemplate}/data_mapping.py +2 -2
  58. armodel/models/{m2/autosar_templates/system_template → M2/AUTOSARTemplates/SystemTemplate}/network_management.py +7 -3
  59. armodel/models/{m2/autosar_templates/system_template → M2/AUTOSARTemplates/SystemTemplate}/transport_protocols.py +1 -1
  60. armodel/models/{m2/autosar_templates → M2/AUTOSARTemplates}/ecuc_description_template.py +10 -6
  61. armodel/models/M2/MSR/AsamHdo/AdminData.py +21 -0
  62. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +77 -0
  63. armodel/models/{m2_msr.py → M2/MSR/AsamHdo/ComputationMethod.py} +44 -28
  64. armodel/models/{global_constraints.py → M2/MSR/AsamHdo/Constraints/GlobalConstraints.py} +7 -4
  65. armodel/models/M2/MSR/AsamHdo/Constraints/__init__.py +1 -0
  66. armodel/models/M2/MSR/AsamHdo/SpecialData.py +63 -0
  67. armodel/models/{m2/msr/asam_hdo/units.py → M2/MSR/AsamHdo/Units.py} +6 -3
  68. armodel/models/M2/MSR/AsamHdo/__init__.py +1 -0
  69. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +30 -0
  70. armodel/models/M2/MSR/CalibrationData/__init__.py +1 -0
  71. armodel/models/{m2/msr/data_dictionary/auxillary_objects.py → M2/MSR/DataDictionary/AuxillaryObjects.py} +4 -2
  72. armodel/models/M2/MSR/DataDictionary/Axis.py +145 -0
  73. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +37 -0
  74. armodel/models/{m2/msr/data_dictionary/data_def_properties.py → M2/MSR/DataDictionary/DataDefProperties.py} +19 -9
  75. armodel/models/{record_layout.py → M2/MSR/DataDictionary/RecordLayout.py} +26 -25
  76. armodel/models/M2/MSR/DataDictionary/__init__.py +1 -0
  77. armodel/models/{annotation.py → M2/MSR/Documentation/Annotation.py} +8 -8
  78. armodel/models/{m2/msr/documentation/block_elements.py → M2/MSR/Documentation/BlockElements.py} +2 -2
  79. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +17 -0
  80. armodel/models/{multilanguage_data.py → M2/MSR/Documentation/TextModel/MultilanguageData.py} +21 -30
  81. armodel/models/M2/MSR/Documentation/TextModel/__init__.py +2 -0
  82. armodel/models/M2/MSR/Documentation/__init__.py +3 -0
  83. armodel/models/M2/MSR/__init__.py +1 -0
  84. armodel/models/M2/__init__.py +1 -0
  85. armodel/models/__init__.py +6 -23
  86. armodel/models/fibex/can_communication.py +3 -2
  87. armodel/models/fibex/fibex_4_multiplatform.py +5 -3
  88. armodel/models/fibex/fibex_core/core_communication.py +9 -3
  89. armodel/models/fibex/fibex_core/core_topology.py +7 -3
  90. armodel/models/fibex/lin_communication.py +5 -1
  91. armodel/models/rpt_scenario.py +2 -2
  92. armodel/models/sw_component.py +19 -14
  93. armodel/models/timing.py +3 -3
  94. armodel/parser/abstract_arxml_parser.py +8 -4
  95. armodel/parser/arxml_parser.py +85 -62
  96. armodel/parser/connector_xlsx_parser.py +5 -3
  97. armodel/report/connector_xls_report.py +1 -1
  98. armodel/tests/test_armodel/models/test_ar_object.py +2 -1
  99. armodel/tests/test_armodel/models/test_ar_package.py +20 -8
  100. armodel/tests/test_armodel/models/test_ar_ref.py +7 -5
  101. armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -1
  102. armodel/tests/test_armodel/models/test_common_structure.py +11 -5
  103. armodel/tests/test_armodel/models/test_data_dictionary.py +2 -2
  104. armodel/tests/test_armodel/models/test_data_prototype.py +7 -3
  105. armodel/tests/test_armodel/models/test_datatype.py +21 -7
  106. armodel/tests/test_armodel/models/test_general_structure.py +12 -2
  107. armodel/tests/test_armodel/models/test_implementation.py +3 -2
  108. armodel/tests/test_armodel/models/test_m2_msr.py +4 -2
  109. armodel/tests/test_armodel/models/test_port_interface.py +16 -6
  110. armodel/tests/test_armodel/models/test_port_prototype.py +1 -1
  111. armodel/tests/test_armodel/parser/test_parse_bswmd.py +1 -1
  112. armodel/tests/test_armodel/parser/test_sw_components.py +2 -2
  113. armodel/tests/test_armodel/parser/test_system.py +30 -0
  114. armodel/writer/abstract_arxml_writer.py +5 -2
  115. armodel/writer/arxml_writer.py +100 -67
  116. {armodel-1.6.2.dist-info → armodel-1.6.3.dist-info}/METADATA +366 -356
  117. armodel-1.6.3.dist-info/RECORD +148 -0
  118. {armodel-1.6.2.dist-info → armodel-1.6.3.dist-info}/WHEEL +1 -1
  119. armodel/lib/data_analyzer.py +0 -34
  120. armodel/models/ar_package.py +0 -641
  121. armodel/models/ar_ref.py +0 -25
  122. armodel/models/calibration.py +0 -119
  123. armodel/models/common_structure.py +0 -272
  124. armodel/models/communication.py +0 -17
  125. armodel/models/data_def_properties.py +0 -16
  126. armodel/models/data_dictionary.py +0 -59
  127. armodel/models/data_prototype.py +0 -103
  128. armodel/models/ecuc_parameter_def_template.py +0 -0
  129. armodel/models/end_to_end_protection.py +0 -67
  130. armodel/models/fibex/fibex_core.py +0 -341
  131. armodel/models/fibex/lin_topology.py +0 -7
  132. armodel/models/implementation.py +0 -135
  133. armodel/models/internal_behavior.py +0 -63
  134. armodel/models/m2/autosar_templates/common_structure/constants.py +0 -0
  135. armodel/models/m2/autosar_templates/common_structure/implementation.py +0 -21
  136. armodel/models/m2/autosar_templates/generic_structure/__init__.py +0 -0
  137. armodel/models/m2/autosar_templates/sw_component_template/__init__.py +0 -0
  138. armodel/models/m2/autosar_templates/sw_component_template/data_type/__init__.py +0 -0
  139. armodel/models/m2/autosar_templates/sw_component_template/port_interface.py +0 -236
  140. armodel/models/m2/msr/__init__.py +0 -0
  141. armodel/models/m2/msr/asam_hdo/__init__.py +0 -0
  142. armodel/models/m2/msr/data_dictionary/__init__.py +0 -0
  143. armodel/models/m2/msr/documentation/__init__.py +0 -0
  144. armodel/models/mode_declaration.py +0 -8
  145. armodel/models/port_interface.py +0 -165
  146. armodel/models/port_prototype.py +0 -6
  147. armodel/models/service_mapping.py +0 -11
  148. armodel/models/system_template/__init__.py +0 -0
  149. armodel/models/system_template/network_management.py +0 -7
  150. armodel/models/system_template/transport_protocols.py +0 -7
  151. armodel/models/unit.py +0 -14
  152. armodel-1.6.2.dist-info/RECORD +0 -142
  153. /armodel/models/{m2 → M2/AUTOSARTemplates/SWComponentTemplate}/__init__.py +0 -0
  154. /armodel/models/{m2/autosar_templates → M2/AUTOSARTemplates}/__init__.py +0 -0
  155. {armodel-1.6.2.dist-info → armodel-1.6.3.dist-info}/LICENSE +0 -0
  156. {armodel-1.6.2.dist-info → armodel-1.6.3.dist-info}/entry_points.txt +0 -0
  157. {armodel-1.6.2.dist-info → armodel-1.6.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,55 @@
1
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
2
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
3
+
4
+
5
+ from abc import ABCMeta
6
+
7
+
8
+ class EngineeringObject(ARObject, metaclass=ABCMeta):
9
+ def __init__(self):
10
+ if type(self) == EngineeringObject:
11
+ raise NotImplementedError("EngineeringObject is an abstract class.")
12
+
13
+ super().__init__()
14
+
15
+ self.category = None # type: ARLiteral
16
+ self.domain = None # type: ARLiteral
17
+ self.revision_label = None # type: ARLiteral
18
+ self.short_label = None # type: ARLiteral
19
+
20
+ def setCategory(self, category: any):
21
+ if isinstance(category, ARLiteral):
22
+ self.category = category
23
+ else:
24
+ self.category = ARLiteral()
25
+ self.category.setValue(str(category))
26
+ return self
27
+
28
+ def getCategory(self) -> ARLiteral:
29
+ return self.category
30
+
31
+ def setDomain(self, domain: ARLiteral):
32
+ self.domain = domain
33
+ return self
34
+
35
+ def getDomain(self) -> ARLiteral:
36
+ return self.domain
37
+
38
+ def setRevisionLabel(self, revision_label: ARLiteral):
39
+ self.revision_label = revision_label
40
+ return self
41
+
42
+ def getRevisionLabel(self) -> ARLiteral:
43
+ return self.revision_label
44
+
45
+ def setShortLabel(self, label: ARLiteral):
46
+ self.short_label = label
47
+ return self
48
+
49
+ def getShortLabel(self) -> ARLiteral:
50
+ return self.short_label
51
+
52
+
53
+ class AutosarEngineeringObject(EngineeringObject):
54
+ def __init__(self):
55
+ super().__init__()
@@ -1,84 +1,15 @@
1
+ from armodel.models.M2.MSR.AsamHdo.AdminData import AdminData
2
+ from armodel.models.M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
3
+ from .ArObject import ARObject
4
+ from .PrimitiveTypes import ARLiteral
5
+ from ....MSR.Documentation.Annotation import Annotation
6
+ from ....MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph
1
7
  from abc import ABCMeta
2
8
  from typing import List
3
9
 
4
- from .annotation import Annotation
5
- from .ar_ref import RefType
6
- from .multilanguage_data import MultiLanguageOverviewParagraph, MultilanguageLongName
7
- from .ar_object import ARObject, ARLiteral
8
-
9
- class Sd(ARObject):
10
- def __init__(self):
11
- super().__init__()
12
-
13
- self.gid = ""
14
- self.value = ""
15
-
16
- def getGID(self):
17
- return self.gid
18
-
19
- def setGID(self, value):
20
- self.gid = value
21
- return self
22
-
23
- def getValue(self):
24
- return self.value
25
-
26
- def setValue(self, value):
27
- self.value = value
28
- return self
29
- class Sdg(ARObject):
30
- def __init__(self):
31
- super().__init__()
32
-
33
- self.gid = ""
34
- self.sd = [] # type: List[Sd]
35
- self.sdgCaption = None
36
- self.sdgContentsTypes = [] # type: List[Sdg]
37
-
38
- def getGID(self):
39
- return self.gid
40
-
41
- def setGID(self, value):
42
- self.gid = value
43
- return self
44
-
45
- def addSd(self, sd: Sd):
46
- self.sd.append(sd)
47
- return self
48
-
49
- def getSds(self) -> List[Sd]:
50
- return self.sd
51
-
52
- def getSdgCaption(self):
53
- return self.sdgCaption
54
-
55
- def setSdgCaption(self, value):
56
- self.sdgCaption = value
57
- return self
58
-
59
- def addSdgContentsType(self, sdg):
60
- self.sdgContentsTypes.append(sdg)
61
-
62
- def getSdgContentsTypes(self):
63
- return self.sdgContentsTypes
64
-
65
- class AdminData(ARObject):
66
- def __init__(self):
67
- super().__init__()
68
-
69
- self.doc_revision = []
70
- self.language = None
71
- self.sdg = []
72
- self.used_languages = None
73
-
74
- def addSdg(self, sdg: Sdg):
75
- self.sdg.append(sdg)
76
-
77
- def getSdgs(self) -> List[Sdg]:
78
- return self.sdg
79
-
80
- class Referrable(ARObject, metaclass=ABCMeta):
10
+ class Referrable(ARObject, metaclass = ABCMeta):
81
11
  def __init__(self, parent: ARObject, short_name: str):
12
+
82
13
  if type(self) == Referrable:
83
14
  raise NotImplementedError("Referrable is an abstract class.")
84
15
  ARObject.__init__(self)
@@ -108,15 +39,15 @@ class Referrable(ARObject, metaclass=ABCMeta):
108
39
  @property
109
40
  def full_name(self) -> str:
110
41
  return self._parent.full_name + "/" + self.short_name
111
-
42
+
112
43
  def getFullName(self) -> str:
113
44
  return self.full_name
114
-
45
+
115
46
  class MultilanguageReferrable(Referrable, metaclass = ABCMeta):
116
47
  def __init__(self, parent: ARObject, short_name: str):
117
48
  if type(self) == MultilanguageReferrable:
118
49
  raise NotImplementedError("MultilanguageReferrable is an abstract class.")
119
-
50
+
120
51
  super().__init__(parent, short_name)
121
52
 
122
53
  #self._parent = parent
@@ -128,16 +59,18 @@ class MultilanguageReferrable(Referrable, metaclass = ABCMeta):
128
59
  def setLongName(self, value: MultilanguageLongName):
129
60
  self.longName = value
130
61
  return self
62
+
63
+
131
64
  class CollectableElement(ARObject, metaclass = ABCMeta):
132
65
  def __init__(self):
133
66
  if type(self) == CollectableElement:
134
67
  raise NotImplementedError("CollectableElement is an abstract class.")
135
- self.elements = {} # type: dict[str, PackageableElement]
68
+ self.elements = {} # type: dict[str, Referrable]
136
69
 
137
70
  def getTotalElement(self) -> int:
138
71
  #return len(list(filter(lambda a: not isinstance(a, ARPackage) , self.elements.values())))
139
72
  return len(self.elements.values())
140
-
73
+
141
74
  def removeElement(self, key):
142
75
  if key not in self.elements:
143
76
  raise KeyError("Invalid key <%s> for removing element" % key)
@@ -145,7 +78,7 @@ class CollectableElement(ARObject, metaclass = ABCMeta):
145
78
 
146
79
  def getElements(self):
147
80
  return self.elements.values()
148
-
81
+
149
82
  def addElement(self, element: Referrable):
150
83
  self.elements[element.getShortName()] = element
151
84
 
@@ -154,7 +87,7 @@ class CollectableElement(ARObject, metaclass = ABCMeta):
154
87
  return None
155
88
  return self.elements[short_name]
156
89
 
157
- class Identifiable(MultilanguageReferrable, CollectableElement, metaclass=ABCMeta):
90
+ class Identifiable(MultilanguageReferrable, CollectableElement, metaclass = ABCMeta):
158
91
  def __init__(self, parent: ARObject, short_name: str):
159
92
  if type(self) == Identifiable:
160
93
  raise NotImplementedError("Identifiable is an abstract class.")
@@ -172,7 +105,7 @@ class Identifiable(MultilanguageReferrable, CollectableElement, metaclass=ABCMet
172
105
  def setAdminData(self, value):
173
106
  self.adminData = value
174
107
  return self
175
-
108
+
176
109
  def getDesc(self):
177
110
  return self.desc
178
111
 
@@ -186,19 +119,34 @@ class Identifiable(MultilanguageReferrable, CollectableElement, metaclass=ABCMet
186
119
  def setCategory(self, value):
187
120
  self.category = value
188
121
  return self
189
-
122
+
190
123
  def addAnnotation(self, annotation: Annotation):
191
124
  self.annotations.append(annotation)
192
125
  return self
193
-
126
+
194
127
  def getAnnotations(self) -> List[Annotation]:
195
128
  return self.annotations
196
-
129
+
130
+
131
+ class PackageableElement(Identifiable, metaclass=ABCMeta):
132
+ def __init__(self, parent: ARObject, short_name: str):
133
+ if type(self) == PackageableElement:
134
+ raise NotImplementedError("PackageableElement is an abstract class.")
135
+ super().__init__(parent, short_name)
136
+
137
+
138
+ class ARElement(PackageableElement, metaclass=ABCMeta):
139
+ def __init__(self, parent: ARObject, short_name: str):
140
+ if type(self) == ARElement:
141
+ raise NotImplementedError("ARElement is an abstract class.")
142
+ super().__init__(parent, short_name)
143
+
144
+
197
145
  class Describable(ARObject, metaclass=ABCMeta):
198
146
  def __init__(self):
199
147
  if type(self) == Describable:
200
148
  raise NotImplementedError("Describable is an abstract class.")
201
-
149
+
202
150
  super().__init__()
203
151
 
204
152
  self._desc = None
@@ -222,64 +170,4 @@ class Describable(ARObject, metaclass=ABCMeta):
222
170
  def category(self, value: ARLiteral):
223
171
  self._category = value
224
172
 
225
- class AtpFeature(Identifiable, metaclass=ABCMeta):
226
- def __init__(self, parent: ARObject, short_name: str):
227
- if type(self) == AtpFeature:
228
- raise NotImplementedError("AtpFeature is an abstract class.")
229
- super().__init__(parent, short_name)
230
-
231
- class PackageableElement(Identifiable, metaclass=ABCMeta):
232
- def __init__(self, parent: ARObject, short_name: str):
233
- if type(self) == PackageableElement:
234
- raise NotImplementedError("PackageableElement is an abstract class.")
235
- super().__init__(parent, short_name)
236
-
237
- class SwcBswRunnableMapping(ARObject):
238
- def __init__(self):
239
- '''
240
- Maps a BswModuleEntity to a RunnableEntity if it is implemented as part of a BSW
241
- module (in the case of an AUTOSAR Service, a Complex Driver or an ECU
242
- Abstraction). The mapping can be used by a tool to find relevant information on the
243
- behavior, e.g. whether the bswEntity shall be running in interrupt context.
244
-
245
- '''
246
- super().__init__()
247
-
248
- self.bswEntityRef = None # type: RefType
249
- self.swcRunnableRef = None # type: RefType
250
-
251
- class SwcBswMapping(Identifiable):
252
- def __init__(self, parent: ARObject, short_name: str):
253
- super().__init__(parent, short_name)
254
-
255
- self.bswBehaviorRef = None # type: RefType
256
- self._runnableMappings = []
257
- self.swcBehaviorRef = None # type: RefType
258
- self.synchronizedModeGroups = []
259
- self.synchronizedTriggers = []
260
-
261
- def addRunnableMapping(self, mapping: SwcBswRunnableMapping):
262
- self._runnableMappings.append(mapping)
263
-
264
- def getRunnableMappings(self) -> List[SwcBswRunnableMapping]:
265
- return self._runnableMappings
266
-
267
- class ARElement(PackageableElement, metaclass=ABCMeta):
268
- def __init__(self, parent: ARObject, short_name: str):
269
- if type(self) == ARElement:
270
- raise NotImplementedError("ARElement is an abstract class.")
271
- super().__init__(parent, short_name)
272
-
273
-
274
- class AtpStructureElement(AtpFeature, metaclass=ABCMeta):
275
- def __init__(self, parent: ARObject, short_name: str):
276
- if type(self) == AtpFeature:
277
- raise NotImplementedError("AtpStructureElement is an abstract class.")
278
- super().__init__(parent, short_name)
279
-
280
- class Limit(ARObject):
281
- def __init__(self):
282
- super().__init__()
283
173
 
284
- self.intervalType = None # type: str
285
- self.value = None # type: str
@@ -1,71 +1,31 @@
1
1
  from abc import ABCMeta
2
2
  import re
3
- from typing import Dict, List
4
3
 
5
- import xml.etree.cElementTree as ET
4
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
6
5
 
7
-
8
- class ARObject(metaclass=ABCMeta):
9
- def __init__(self):
10
- if type(self) == ARObject:
11
- raise NotImplementedError("ARObject is an abstract class.")
12
-
13
- self.parent = None # type: ARObject
14
- self.checksum = None # type: str
15
-
16
- self.timestamp = None # type: str
17
- self.uuid = None # type: str
18
-
19
- def getTagName(self, tag: str, nsmap: Dict) -> str:
20
- return tag.replace("{%s}" % nsmap["xmlns"], "")
21
-
22
- class ARType(metaclass=ABCMeta):
6
+ class ARType(metaclass = ABCMeta):
23
7
  def __init__(self) -> None:
24
8
  self.timestamp = None # type: str
25
9
  self.uuid = None # type: str
26
- self._value = None
10
+ self._value = None
27
11
 
28
12
  @property
29
13
  def value(self):
30
14
  return self._value
31
-
15
+
32
16
  @value.setter
33
17
  def value(self, val):
34
18
  self._value = val
35
19
 
36
20
  def getValue(self):
37
21
  return self.value
38
-
22
+
39
23
  def setValue(self, val):
40
24
  self.value = val
41
25
 
42
26
  def getText(self) -> str:
43
27
  return str(self)
44
28
 
45
-
46
- class ARLiteral(ARType):
47
- def __init__(self) -> None:
48
- super().__init__()
49
-
50
- @property
51
- def value(self) -> str:
52
- if self._value is None:
53
- return ""
54
- return self._value
55
-
56
- @value.setter
57
- def value(self, val: any):
58
- if isinstance(val, str):
59
- self._value = val
60
- else:
61
- self._value = str(val)
62
-
63
- def __str__(self) -> str:
64
- return self.value
65
-
66
- def upper(self) -> str:
67
- return self.value.upper()
68
-
69
29
  class ARNumerical(ARType):
70
30
  def __init__(self) -> None:
71
31
  super().__init__()
@@ -88,11 +48,11 @@ class ARNumerical(ARType):
88
48
  return int(value)
89
49
  except:
90
50
  raise ValueError("Invalid Numerical Type <%s>" % value)
91
-
51
+
92
52
  @property
93
53
  def value(self) -> int:
94
54
  return self._value
95
-
55
+
96
56
  @value.setter
97
57
  def value(self, val: any):
98
58
  if isinstance(val, int):
@@ -108,26 +68,7 @@ class ARNumerical(ARType):
108
68
  return self._text
109
69
  else:
110
70
  return str(self._value)
111
-
112
- class ARPositiveInteger(ARNumerical):
113
- def __init__(self) -> None:
114
- super().__init__()
115
71
 
116
- @property
117
- def value(self) -> int:
118
- return self._value
119
-
120
- @value.setter
121
- def value(self, val: any):
122
- if isinstance(val, int):
123
- if val < 0:
124
- raise ValueError("Invalid Positive Integer <%s>" % val)
125
- self._value = val
126
- elif isinstance(val, str):
127
- self._text = val
128
- self._value = self._convertStringToNumberValue(val)
129
- else:
130
- raise ValueError("Unsupported Type <%s>", type(val))
131
72
 
132
73
  class ARFloat(ARNumerical):
133
74
  def __init__(self) -> None:
@@ -138,7 +79,7 @@ class ARFloat(ARNumerical):
138
79
  @property
139
80
  def value(self) -> float:
140
81
  return self._value
141
-
82
+
142
83
  @value.setter
143
84
  def value(self, val: any):
144
85
  if isinstance(val, float):
@@ -158,11 +99,74 @@ class ARFloat(ARNumerical):
158
99
  else:
159
100
  return str(self._value)
160
101
 
102
+ class TimeValue(ARFloat):
103
+ '''
104
+ This primitive type is taken for expressing time values. The numerical value is supposed to be interpreted
105
+ in the physical unit second.
106
+ Tags:
107
+ * xml.xsd.customType=TIME-VALUE
108
+ * xml.xsd.type=double
109
+ '''
110
+
111
+ def __init__(self):
112
+ super().__init__()
113
+
114
+
115
+ class ARLiteral(ARType):
116
+ def __init__(self) -> None:
117
+ super().__init__()
118
+
119
+ @property
120
+ def value(self) -> str:
121
+ if self._value is None:
122
+ return ""
123
+ return self._value
124
+
125
+ @value.setter
126
+ def value(self, val: any):
127
+ if isinstance(val, str):
128
+ self._value = val
129
+ else:
130
+ self._value = str(val)
131
+
132
+ def __str__(self) -> str:
133
+ return self.value
134
+
135
+ def upper(self) -> str:
136
+ return self.value.upper()
137
+
138
+
139
+ class String(ARLiteral):
140
+
141
+ pass
142
+
143
+
144
+ class ARPositiveInteger(ARNumerical):
145
+ def __init__(self) -> None:
146
+ super().__init__()
147
+
148
+ @property
149
+ def value(self) -> int:
150
+ return self._value
151
+
152
+ @value.setter
153
+ def value(self, val: any):
154
+ if isinstance(val, int):
155
+ if val < 0:
156
+ raise ValueError("Invalid Positive Integer <%s>" % val)
157
+ self._value = val
158
+ elif isinstance(val, str):
159
+ self._text = val
160
+ self._value = self._convertStringToNumberValue(val)
161
+ else:
162
+ raise ValueError("Unsupported Type <%s>", type(val))
163
+
164
+
161
165
  class ARBoolean(ARType):
162
166
  def __init__(self) -> None:
163
167
  super().__init__()
164
168
 
165
- self._text = None
169
+ self._text = None
166
170
 
167
171
  def _convertNumberToBoolean(self, value: int) -> bool:
168
172
  if value == 0:
@@ -181,7 +185,7 @@ class ARBoolean(ARType):
181
185
  @property
182
186
  def value(self) -> int:
183
187
  return self._value
184
-
188
+
185
189
  @value.setter
186
190
  def value(self, val: any):
187
191
  if isinstance(val, bool):
@@ -203,4 +207,93 @@ class ARBoolean(ARType):
203
207
  return "true"
204
208
  else:
205
209
  return "false"
206
-
210
+
211
+ class NameToken(ARLiteral):
212
+ '''
213
+ This is an identifier as used in xml, e.g. xml-names. Typical usages are, for example, the names of type
214
+ emitters, protocols, or profiles. For details see NMTOKEN definition on the W3C website
215
+ (https://www.w3.org/TR/xml/#NT-Nmtoken).
216
+
217
+ Note: Although NameToken supports a wide range of characters, the actually allowed patterns for a
218
+ certain attribute typed by NameToken may be further restricted by the specification of that attribute.
219
+
220
+ Tags:
221
+ * xml.xsd.customType=NMTOKEN-STRING
222
+ * xml.xsd.type=NMTOKEN
223
+ '''
224
+ def __init__(self):
225
+ super().__init__()
226
+
227
+ class PositiveInteger(ARPositiveInteger):
228
+ '''
229
+ This is a positive integer which can be denoted in decimal, binary, octal and hexadecimal. The value is
230
+ between 0 and 4294967295.
231
+
232
+ Tags:
233
+ * xml.xsd.customType=POSITIVE-INTEGER
234
+ * xml.xsd.pattern=0|[\+]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
235
+ * xml.xsd.type=string
236
+ '''
237
+ def __init__(self):
238
+ super().__init__()
239
+
240
+ class Integer(ARNumerical):
241
+ '''
242
+ An instance of Integer is an element in the set of integer numbers ( ..., -2, -1, 0, 1, 2, ...).
243
+ The value can be expressed in decimal, octal, hexadecimal and binary representation. Negative numbers
244
+ can only be expressed in decimal notation
245
+ Range is from -2147483648 and 2147483647.
246
+
247
+ Tags:
248
+ * xml.xsd.customType=INTEGER
249
+ * xml.xsd.pattern=0|[\+\-]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
250
+ * xml.xsd.type=string
251
+ '''
252
+ def __init__(self):
253
+ super().__init__()
254
+
255
+ class Identifier(ARLiteral):
256
+ '''
257
+ An Identifier is a string with a number of constraints on its appearance, satisfying the requirements typical
258
+ programming languages define for their Identifiers.
259
+ This datatype represents a string, that can be used as a c-Identifier.
260
+ It shall start with a letter, may consist of letters, digits and underscores.
261
+
262
+ Tags:
263
+ * xml.xsd.customType=IDENTIFIER
264
+ * xml.xsd.maxLength=128
265
+ * xml.xsd.pattern=[a-zA-Z][a-zA-Z0-9_]*
266
+ * xml.xsd.type=string
267
+ '''
268
+ def __init__(self):
269
+ super().__init__()
270
+ class Limit(ARObject):
271
+ def __init__(self):
272
+ super().__init__()
273
+
274
+ self.intervalType = None # type: str
275
+ self.value = None # type: str
276
+
277
+
278
+ class RefType(ARObject):
279
+ def __init__(self):
280
+ self.dest = ""
281
+ self.value = ""
282
+
283
+ def getDest(self):
284
+ return self.dest
285
+
286
+ def setDest(self, value):
287
+ self.dest = value
288
+ return self
289
+
290
+ def getValue(self):
291
+ return self.value
292
+
293
+ def setValue(self, value):
294
+ self.value = value
295
+ return self
296
+
297
+ class TRefType(RefType):
298
+ def __init__(self):
299
+ super().__init__()
@@ -0,0 +1 @@
1
+ from . import *
@@ -1,12 +1,14 @@
1
1
  from abc import ABCMeta
2
2
  from typing import List
3
3
 
4
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.port_interface.instance_refs import ApplicationCompositeElementInPortInterfaceInstanceRef
4
5
 
5
- from .....models.ar_object import ARNumerical, ARObject, ARLiteral, ARBoolean, ARPositiveInteger
6
- from .....models.ar_ref import RefType
7
- from .....models.communication import CompositeNetworkRepresentation, TransmissionAcknowledgementRequest
8
- from ...msr.data_dictionary.data_def_properties import SwDataDefProps
9
- from ..common_structure import ValueSpecification
6
+ from ..GenericStructure.GeneralTemplateClasses.ArObject import ARObject
7
+ from ..GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger
8
+ from ..GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
9
+ from ..GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
10
+ from ...MSR.DataDictionary.DataDefProperties import SwDataDefProps
11
+ from ..CommonStructure import ValueSpecification
10
12
 
11
13
  class PPortComSpec(ARObject, metaclass = ABCMeta):
12
14
  """
@@ -43,6 +45,21 @@ class RPortComSpec(ARObject, metaclass = ABCMeta):
43
45
  super().__init__()
44
46
 
45
47
 
48
+ class CompositeNetworkRepresentation(ARObject):
49
+ def __init__(self):
50
+ super().__init__()
51
+
52
+ self.leaf_element_iref = None # type: ApplicationCompositeElementInPortInterfaceInstanceRef
53
+ self.network_representation = None # type: SwDataDefProps
54
+
55
+
56
+ class TransmissionAcknowledgementRequest(ARObject):
57
+ def __init__(self):
58
+ super().__init__()
59
+
60
+ self.timeout = None # type: float
61
+
62
+
46
63
  class SenderComSpec(PPortComSpec, metaclass = ABCMeta):
47
64
  def __init__(self):
48
65
  if type(self) == SenderComSpec:
@@ -1,7 +1,7 @@
1
1
  from abc import ABCMeta
2
2
 
3
- from ...generic_structure.abstract_structure import AtpInstanceRef
4
- from .....ar_ref import RefType
3
+ from ...GenericStructure.AbstractStructure import AtpInstanceRef
4
+ from ...GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
5
5
 
6
6
 
7
7
  class ModeGroupInAtomicSwcInstanceRef(AtpInstanceRef, metaclass = ABCMeta):