armodel 1.7.7__py3-none-any.whl → 1.7.8__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 (52) hide show
  1. armodel/cli/arxml_dump_cli.py +33 -22
  2. armodel/cli/arxml_format_cli.py +25 -13
  3. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +64 -29
  4. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +322 -63
  5. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +134 -35
  6. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +10 -1
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +18 -2
  8. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +20 -19
  9. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +59 -0
  10. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +145 -0
  11. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +214 -156
  12. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +60 -32
  13. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +63 -42
  14. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +1 -0
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +13 -6
  16. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +111 -38
  17. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +9 -1
  18. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +5 -4
  19. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +9 -1
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +167 -5
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{ECUResourceMapping.py → EcuResourceMapping.py} +4 -3
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +31 -21
  23. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +5 -3
  24. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +76 -0
  25. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +654 -0
  26. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__init__.py +0 -0
  27. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +64 -31
  28. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +158 -40
  29. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +19 -6
  30. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +2 -0
  31. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +524 -0
  32. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +15 -13
  33. armodel/models/__init__.py +5 -1
  34. armodel/parser/abstract_arxml_parser.py +34 -30
  35. armodel/parser/arxml_parser.py +1196 -525
  36. armodel/parser/file_parser.py +5 -3
  37. armodel/tests/test_armodel/models/test_ar_package.py +6 -11
  38. armodel/tests/test_armodel/models/test_port_interface.py +116 -117
  39. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +109 -109
  40. armodel/tests/test_armodel/parser/test_sw_components.py +38 -27
  41. armodel/tests/test_armodel/parser/test_system.py +2 -8
  42. armodel/transformer/__init__.py +0 -0
  43. armodel/transformer/abstract.py +6 -0
  44. armodel/transformer/admin_data.py +31 -0
  45. armodel/writer/abstract_arxml_writer.py +22 -29
  46. armodel/writer/arxml_writer.py +1198 -477
  47. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/METADATA +41 -1
  48. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/RECORD +52 -43
  49. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/LICENSE +0 -0
  50. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/WHEEL +0 -0
  51. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/entry_points.txt +0 -0
  52. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,11 @@
1
+ from ....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import VariableDataPrototype
1
2
  from ....M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalBehavior
2
3
  from ....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroupPrototype
4
+ from ....M2.AUTOSARTemplates.CommonStructure.TriggerDeclaration import Trigger
3
5
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
6
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
5
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARPositiveInteger, RefType
6
- from typing import Dict, List
7
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger, RefType
8
+ from typing import List
7
9
 
8
10
  class BswModuleDescription(ARElement):
9
11
  '''
@@ -18,56 +20,153 @@ class BswModuleDescription(ARElement):
18
20
  def __init__(self, parent: ARObject, short_name: str):
19
21
  super().__init__(parent, short_name)
20
22
 
21
- # MODULE-ID
22
- self.moduleId = None # type: ARPositiveInteger
23
+ self.bswModuleDependencies = [] # type: List[BswModuleDependency]
24
+ self.bswModuleDocumentation = None # type: SwComponentDocumentation
25
+ self.expectedEntryRefs = [] # type: List[RefType]
26
+ self.implementedEntryRefs = [] # type: List[RefType]
27
+ self.internalBehaviors = [] # type: List[BswInternalBehavior]
28
+ self.moduleId = None # type: PositiveInteger
29
+ self.providedClientServerEntries = [] # type: List[BswModuleClientServerEntry]
30
+ self.providedDatas = [] # type: List[VariableDataPrototype]
31
+ self.providedModeGroups = [] # type: List[ModeDeclarationGroupPrototype]
32
+ self.releasedTriggers = [] # type: List[Trigger]
33
+ self.requiredClientServerEntries = [] # type: List[BswModuleClientServerEntry]
34
+ self.requiredDatas = [] # type: List[VariableDataPrototype]
35
+ self.requiredModeGroups = [] # type: List[ModeDeclarationGroupPrototype]
36
+ self.requiredTriggers = [] # typeL List[Trigger]
23
37
 
24
- # PROVIDED-ENTRYS
25
- self.implementedEntryRefs = [] # type: List[RefType]
38
+ def getBswModuleDependencies(self):
39
+ return self.bswModuleDependencies
26
40
 
27
- self.providedModeGroups = {} # type: Dict[str, ModeDeclarationGroupPrototype]
28
- self.requiredModeGroups = {} # type: Dict[str, ModeDeclarationGroupPrototype]
41
+ def setBswModuleDependencies(self, value):
42
+ if value is not None:
43
+ self.bswModuleDependencies = value
44
+ return self
45
+
46
+ def getBswModuleDocumentation(self):
47
+ return self.bswModuleDocumentation
48
+
49
+ def setBswModuleDocumentation(self, value):
50
+ if value is not None:
51
+ self.bswModuleDocumentation = value
52
+ return self
53
+
54
+ def getExpectedEntryRefs(self):
55
+ return self.expectedEntryRefs
56
+
57
+ def setExpectedEntryRefs(self, value):
58
+ if value is not None:
59
+ self.expectedEntryRefs = value
60
+ return self
61
+
62
+ def getImplementedEntryRefs(self):
63
+ return self.implementedEntryRefs
64
+
65
+ def addImplementedEntryRef(self, value):
66
+ if value is not None:
67
+ self.implementedEntryRefs.append(value)
68
+ return self
69
+
70
+ def getInternalBehaviors(self):
71
+ return self.internalBehaviors
72
+
73
+ def setInternalBehaviors(self, value):
74
+ if value is not None:
75
+ self.internalBehaviors = value
76
+ return self
29
77
 
78
+ def createBswInternalBehavior(self, short_name: str) -> BswInternalBehavior:
79
+ '''
80
+ Create the INTERNAL-BEHAVIORS tag
81
+ '''
82
+ if (not self.IsElementExists(short_name)):
83
+ behavior = BswInternalBehavior(self, short_name)
84
+ self.addElement(behavior)
85
+ self.internalBehaviors.append(behavior)
86
+ return self.getElement(short_name)
87
+
30
88
  def getModuleId(self):
31
89
  return self.moduleId
32
90
 
33
91
  def setModuleId(self, value):
34
- self.moduleId = value
92
+ if value is not None:
93
+ self.moduleId = value
35
94
  return self
36
95
 
37
- def addImplementedEntry(self, entry_ref: RefType):
38
- self.implementedEntryRefs.append(entry_ref)
96
+ def getProvidedClientServerEntries(self):
97
+ return self.providedClientServerEntries
39
98
 
40
- def getImplementedEntries(self) -> List[RefType]:
41
- return self.implementedEntryRefs
99
+ def setProvidedClientServerEntries(self, value):
100
+ if value is not None:
101
+ self.providedClientServerEntries = value
102
+ return self
103
+
104
+ def getProvidedDatas(self):
105
+ return self.providedDatas
106
+
107
+ def createProvidedData(self, short_name: str) -> VariableDataPrototype:
108
+ if (not self.IsElementExists(short_name)):
109
+ prototype = VariableDataPrototype(self, short_name)
110
+ self.addElement(prototype)
111
+ self.providedDatas.append(prototype)
112
+ return self.getElement(short_name)
42
113
 
114
+ def getProvidedModeGroups(self):
115
+ return self.providedModeGroups
116
+
43
117
  def createProvidedModeGroup(self, short_name: str) -> ModeDeclarationGroupPrototype:
44
- if (short_name not in self.elements):
118
+ if (not self.IsElementExists(short_name)):
45
119
  prototype = ModeDeclarationGroupPrototype(self, short_name)
46
- self.elements[short_name] = prototype
47
- self.providedModeGroups[short_name] = prototype
48
- return self.elements[short_name]
120
+ self.addElement(prototype)
121
+ self.providedModeGroups.append(prototype)
122
+ return self.getElement(short_name)
123
+
124
+ def getReleasedTriggers(self):
125
+ return self.releasedTriggers
49
126
 
50
- def getProvidedModeGroups(self) -> List[ModeDeclarationGroupPrototype]:
51
- return sorted(self.providedModeGroups.values(), key=lambda v: v.short_name)
127
+ def createReleasedTrigger(self, short_name: str) -> Trigger:
128
+ if (not self.IsElementExists(short_name)):
129
+ trigger = Trigger(self, short_name)
130
+ self.addElement(trigger)
131
+ self.releasedTriggers.append(trigger)
132
+ return self.getElement(short_name)
133
+
134
+ def getRequiredClientServerEntries(self):
135
+ return self.requiredClientServerEntries
136
+
137
+ def setRequiredClientServerEntries(self, value):
138
+ if value is not None:
139
+ self.requiredClientServerEntries = value
140
+ return self
141
+
142
+ def getRequiredDatas(self):
143
+ return self.requiredDatas
144
+
145
+ def createRequiredData(self, short_name: str) -> VariableDataPrototype:
146
+ if (not self.IsElementExists(short_name)):
147
+ prototype = VariableDataPrototype(self, short_name)
148
+ self.addElement(prototype)
149
+ self.requiredDatas.append(prototype)
150
+ return self.getElement(short_name)
151
+
152
+ def getRequiredModeGroups(self):
153
+ return self.requiredModeGroups
52
154
 
53
155
  def createRequiredModeGroup(self, short_name: str) -> ModeDeclarationGroupPrototype:
54
- if (short_name not in self.elements):
156
+ if (not self.IsElementExists(short_name)):
55
157
  prototype = ModeDeclarationGroupPrototype(self, short_name)
56
- self.elements[short_name] = prototype
57
- self.requiredModeGroups[short_name] = property
58
- return self.elements[short_name]
158
+ self.addElement(prototype)
159
+ self.requiredModeGroups.append(prototype)
160
+ return self.getElement(short_name)
59
161
 
60
- def getRequiredModeGroups(self) -> List[ModeDeclarationGroupPrototype]:
61
- return sorted(self.requiredModeGroups.values(), key=lambda v: v.short_name)
162
+ def getRequiredTriggers(self):
163
+ return self.requiredTriggers
62
164
 
63
- def createBswInternalBehavior(self, short_name: str) -> BswInternalBehavior:
64
- '''
65
- Create the INTERNAL-BEHAVIORS tag
66
- '''
67
- if (short_name not in self.elements):
68
- prototype = BswInternalBehavior(self, short_name)
69
- self.elements[short_name] = prototype
70
- return self.elements[short_name]
165
+ def createRequiredTrigger(self, short_name: str) -> Trigger:
166
+ if (not self.IsElementExists(short_name)):
167
+ trigger = Trigger(self, short_name)
168
+ self.addElement(trigger)
169
+ self.requiredTriggers.append(trigger)
170
+ return self.getElement(short_name)
71
171
 
72
- def getBswInternalBehaviors(self) -> List[BswInternalBehavior]:
73
- return list(filter(lambda a: isinstance(a, BswInternalBehavior), self.elements.values()))
172
+
@@ -4,7 +4,7 @@ from typing import List
4
4
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
5
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
6
6
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, RefType
7
- from ....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ParameterDataPrototype
7
+ from ....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ParameterDataPrototype, VariableDataPrototype
8
8
 
9
9
  class ReentrancyLevelEnum(Enum):
10
10
  ENUM_MULTICORE_REENTRANT = "multicoreReentrant"
@@ -109,7 +109,16 @@ class InternalBehavior(Identifiable, metaclass=ABCMeta):
109
109
 
110
110
  def getExclusiveAreas(self) -> List[ExclusiveArea]:
111
111
  return list(filter(lambda c: isinstance(c, ExclusiveArea), self.elements.values()))
112
+
113
+ def getStaticMemories(self):
114
+ return self.staticMemories
112
115
 
116
+ def createStaticMemory(self, short_name: str) -> VariableDataPrototype:
117
+ if (short_name not in self.elements):
118
+ prototype = VariableDataPrototype(self, short_name)
119
+ self.addElement(prototype)
120
+ self.staticMemories.append(prototype)
121
+ return self.getElement(short_name)
113
122
 
114
123
  class AbstractEvent(Identifiable):
115
124
  def __init__(self, parent: ARObject, short_name: str):
@@ -5,5 +5,21 @@ class Trigger(Identifiable):
5
5
  def __init__(self, parent: ARObject, short_name: str):
6
6
  super().__init__(parent, short_name)
7
7
 
8
- self.swImplPolicy = None # type: str
9
- self.triggerPeriod = None # type: float
8
+ self.swImplPolicy = None # type: SwImplPolicyEnum
9
+ self.triggerPeriod = None # type: MultidimensionalTime
10
+
11
+ def getSwImplPolicy(self):
12
+ return self.swImplPolicy
13
+
14
+ def setSwImplPolicy(self, value):
15
+ if value is not None:
16
+ self.swImplPolicy = value
17
+ return self
18
+
19
+ def getTriggerPeriod(self):
20
+ return self.triggerPeriod
21
+
22
+ def setTriggerPeriod(self, value):
23
+ if value is not None:
24
+ self.triggerPeriod = value
25
+ return self
@@ -7,6 +7,7 @@ from ...M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject imp
7
7
  from ...M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, RefType, ARBoolean
8
8
  from ...M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
9
9
 
10
+
10
11
  class EcucValueCollection(ARElement):
11
12
  def __init__(self, parent: ARObject, short_name: str):
12
13
  super().__init__(parent, short_name)
@@ -27,26 +28,21 @@ class EcucValueCollection(ARElement):
27
28
  def setEcuExtractRef(self, value):
28
29
  self.ecuExtractRef = value
29
30
  return self
30
-
31
- class EcucIndexableValue(ARObject, metaclass = ABCMeta):
31
+
32
+
33
+ class EcucIndexableValue(ARObject, metaclass=ABCMeta):
32
34
  def __init__(self):
33
- if type(self) == EcucIndexableValue:
35
+ if type(self) is EcucIndexableValue:
34
36
  raise NotImplementedError("EcucIndexableValue is an abstract class.")
35
-
36
- super().__init__()
37
37
 
38
- class EcucAbstractReferenceValue(EcucIndexableValue, metaclass=ABCMeta):
39
- def __init__(self):
40
- if type(self) == EcucAbstractReferenceValue:
41
- raise NotImplementedError("EcucAbstractReferenceValue is an abstract class.")
42
-
43
38
  super().__init__()
44
-
39
+
40
+
45
41
  class EcucParameterValue(EcucIndexableValue, metaclass=ABCMeta):
46
42
  def __init__(self):
47
- if type(self) == EcucParameterValue:
43
+ if type(self) is EcucParameterValue:
48
44
  raise NotImplementedError("EcucParameterValue is an abstract class.")
49
-
45
+
50
46
  super().__init__()
51
47
 
52
48
  self.annotations = [] # type: List[Annotation]
@@ -74,6 +70,7 @@ class EcucParameterValue(EcucIndexableValue, metaclass=ABCMeta):
74
70
  self.isAutoValue = value
75
71
  return self
76
72
 
73
+
77
74
  class EcucAddInfoParamValue(EcucParameterValue):
78
75
  def __init__(self):
79
76
  super().__init__()
@@ -86,6 +83,7 @@ class EcucAddInfoParamValue(EcucParameterValue):
86
83
  def setValue(self, value: DocumentationBlock):
87
84
  self.value = value
88
85
 
86
+
89
87
  class EcucTextualParamValue(EcucParameterValue):
90
88
  def __init__(self):
91
89
  super().__init__()
@@ -95,7 +93,7 @@ class EcucTextualParamValue(EcucParameterValue):
95
93
  def getValue(self) -> ARLiteral:
96
94
  return self.value
97
95
 
98
- def setValue(self, value:ARLiteral):
96
+ def setValue(self, value: ARLiteral):
99
97
  self.value = value
100
98
 
101
99
 
@@ -111,11 +109,12 @@ class EcucNumericalParamValue(EcucParameterValue):
111
109
  def setValue(self, value: ARNumerical):
112
110
  self.value = value
113
111
 
112
+
114
113
  class EcucAbstractReferenceValue(EcucIndexableValue, metaclass=ABCMeta):
115
114
  def __init__(self):
116
- if type(self) == EcucAbstractReferenceValue:
115
+ if type(self) is EcucAbstractReferenceValue:
117
116
  raise NotImplementedError("EcucAbstractReferenceValue is an abstract class.")
118
-
117
+
119
118
  super().__init__()
120
119
 
121
120
  self.annotations = [] # type: List[Annotation]
@@ -143,6 +142,7 @@ class EcucAbstractReferenceValue(EcucIndexableValue, metaclass=ABCMeta):
143
142
  self.isAutoValue = value
144
143
  return self
145
144
 
145
+
146
146
  class EcucInstanceReferenceValue(EcucAbstractReferenceValue):
147
147
  def __init__(self):
148
148
  super().__init__()
@@ -156,6 +156,7 @@ class EcucInstanceReferenceValue(EcucAbstractReferenceValue):
156
156
  self.valueRef = value
157
157
  return self
158
158
 
159
+
159
160
  class EcucReferenceValue(EcucAbstractReferenceValue):
160
161
  def __init__(self):
161
162
  super().__init__()
@@ -169,6 +170,7 @@ class EcucReferenceValue(EcucAbstractReferenceValue):
169
170
  self.valueRef = value
170
171
  return self
171
172
 
173
+
172
174
  class EcucContainerValue(ARElement, EcucIndexableValue):
173
175
  def __init__(self, parent: ARObject, short_name: str):
174
176
  ARElement.__init__(self, parent, short_name)
@@ -185,7 +187,7 @@ class EcucContainerValue(ARElement, EcucIndexableValue):
185
187
  self.definitionRef = value
186
188
  return self
187
189
 
188
- def getParameterValues(self)-> List[EcucParameterValue]:
190
+ def getParameterValues(self) -> List[EcucParameterValue]:
189
191
  return self.parameterValues
190
192
 
191
193
  def addParameterValue(self, value: EcucParameterValue):
@@ -229,7 +231,7 @@ class EcucModuleConfigurationValues(ARElement):
229
231
  return self.elements[short_name]
230
232
 
231
233
  def getContainers(self) -> List[EcucContainerValue]:
232
- return list(sorted(filter(lambda a: isinstance(a, EcucContainerValue), self.elements.values()), key= lambda o:o.short_name))
234
+ return list(sorted(filter(lambda a: isinstance(a, EcucContainerValue), self.elements.values()), key=lambda o: o.short_name))
233
235
 
234
236
  def getDefinitionRef(self) -> RefType:
235
237
  return self.definitionRef
@@ -265,4 +267,3 @@ class EcucModuleConfigurationValues(ARElement):
265
267
  def setPostBuildVariantUsed(self, value: ARBoolean):
266
268
  self.postBuildVariantUsed = value
267
269
  return self
268
-
@@ -0,0 +1,59 @@
1
+ from typing import List
2
+
3
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, RefType
4
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable
5
+
6
+
7
+ class HwType(ARElement):
8
+ def __init__(self, parent, short_name):
9
+ super().__init__(parent, short_name)
10
+
11
+
12
+ class HwAttributeDef(Identifiable):
13
+ def __init__(self, parent, short_name):
14
+ super().__init__(parent, short_name)
15
+
16
+ self.hwAttributeLiterals = [] # type: List[HwAttributeLiteralDef]
17
+ self.isRequired = None # type: Boolean
18
+ self.unitRef = None # type: RefType
19
+
20
+ def getHwAttributeLiterals(self):
21
+ return self.hwAttributeLiterals
22
+
23
+ def setHwAttributeLiterals(self, value):
24
+ if value is not None:
25
+ self.hwAttributeLiterals = value
26
+ return self
27
+
28
+ def getIsRequired(self):
29
+ return self.isRequired
30
+
31
+ def setIsRequired(self, value):
32
+ if value is not None:
33
+ self.isRequired = value
34
+ return self
35
+
36
+ def getUnitRef(self):
37
+ return self.unitRef
38
+
39
+ def setUnitRef(self, value):
40
+ if value is not None:
41
+ self.unitRef = value
42
+ return self
43
+
44
+
45
+ class HwCategory(ARElement):
46
+ def __init__(self, parent, short_name):
47
+ super().__init__(parent, short_name)
48
+
49
+ self.hwAttributeDefs = [] # type: List[HwAttributeDef]
50
+
51
+ def getHwAttributeDefs(self):
52
+ return self.hwAttributeDefs
53
+
54
+ def createHwAttributeDef(self, short_name: str) -> HwAttributeDef:
55
+ if (not self.IsElementExists(short_name)):
56
+ pin_group = HwAttributeDef(self, short_name)
57
+ self.addElement(pin_group)
58
+ self.hwAttributeDefs.append(pin_group)
59
+ return self.getElement(short_name)
@@ -0,0 +1,145 @@
1
+ from typing import List
2
+
3
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, RefType, String
5
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
6
+
7
+
8
+ class HwDescriptionEntity(ARElement):
9
+ def __init__(self, parent, short_name):
10
+ super().__init__(parent, short_name)
11
+
12
+ self.hwAttributeValues = [] # type: List[HwAttributeValue]
13
+ self.hwCategoryRefs = [] # type: List[RefType]
14
+ self.hwTypeRef = None # type: RefType
15
+
16
+ def getHwAttributeValues(self):
17
+ return self.hwAttributeValues
18
+
19
+ def setHwAttributeValues(self, value):
20
+ if value is not None:
21
+ self.hwAttributeValues = value
22
+ return self
23
+
24
+ def getHwCategoryRefs(self):
25
+ return self.hwCategoryRefs
26
+
27
+ def addHwCategoryRef(self, value):
28
+ if value is not None:
29
+ self.hwCategoryRefs.append(value)
30
+ return self
31
+
32
+ def getHwTypeRef(self):
33
+ return self.hwTypeRef
34
+
35
+ def setHwTypeRef(self, value):
36
+ if value is not None:
37
+ self.hwTypeRef = value
38
+ return self
39
+
40
+
41
+ class HwPin(HwDescriptionEntity):
42
+ def __init__(self, parent, short_name):
43
+ super().__init__(parent, short_name)
44
+
45
+ self.functionName = None # type: String
46
+ self.packagingPinName = None # type: String
47
+ self.pinNumber = None # type: Integer
48
+
49
+ def getFunctionName(self):
50
+ return self.functionName
51
+
52
+ def setFunctionName(self, value):
53
+ if value is not None:
54
+ self.functionName = value
55
+ return self
56
+
57
+ def getPackagingPinName(self):
58
+ return self.packagingPinName
59
+
60
+ def setPackagingPinName(self, value):
61
+ if value is not None:
62
+ self.packagingPinName = value
63
+ return self
64
+
65
+ def getPinNumber(self):
66
+ return self.pinNumber
67
+
68
+ def setPinNumber(self, value):
69
+ if value is not None:
70
+ self.pinNumber = value
71
+ return self
72
+
73
+
74
+ class HwPinGroupContent(ARObject):
75
+ def __init__(self):
76
+ super().__init__()
77
+
78
+ self.hwPin = None # type: HwPin
79
+ self.hwPinGroup = None # type: HwPinGroup
80
+
81
+ def getHwPin(self):
82
+ return self.hwPin
83
+
84
+ def createHwPin(self, short_name: str) -> HwPin:
85
+ pin = HwPin(self, short_name)
86
+ self.hwPin = pin
87
+ return pin
88
+
89
+ def getHwPinGroup(self):
90
+ return self.hwPinGroup
91
+
92
+ def setHwPinGroup(self, value):
93
+ if value is not None:
94
+ self.hwPinGroup = value
95
+ return self
96
+
97
+
98
+ class HwPinGroup(HwDescriptionEntity):
99
+ def __init__(self, parent, short_name):
100
+ super().__init__(parent, short_name)
101
+
102
+ self.hwPinGroupContent = None # type: HwPinGroupContent
103
+
104
+ def getHwPinGroupContent(self):
105
+ return self.hwPinGroupContent
106
+
107
+ def setHwPinGroupContent(self, value):
108
+ if value is not None:
109
+ self.hwPinGroupContent = value
110
+ return self
111
+
112
+
113
+ class HwElement(HwDescriptionEntity):
114
+ def __init__(self, parent, short_name):
115
+ super().__init__(parent, short_name)
116
+
117
+ self.hwElementConnections = [] # type: List[HwElementConnector]
118
+ self.hwPinGroups = [] # type: List[HwPinGroup]
119
+ self.nestedElementRefs = [] # type: List[RefType]
120
+
121
+ def getHwElementConnections(self):
122
+ return self.hwElementConnections
123
+
124
+ def setHwElementConnections(self, value):
125
+ if value is not None:
126
+ self.hwElementConnections = value
127
+ return self
128
+
129
+ def getHwPinGroups(self):
130
+ return self.hwPinGroups
131
+
132
+ def createHwPinGroup(self, short_name: str) -> HwPinGroup:
133
+ if (not self.IsElementExists(short_name)):
134
+ pin_group = HwPinGroup(self, short_name)
135
+ self.addElement(pin_group)
136
+ self.hwPinGroups.append(pin_group)
137
+ return self.getElement(short_name)
138
+
139
+ def getNestedElementRefs(self):
140
+ return self.nestedElementRefs
141
+
142
+ def setNestedElementRefs(self, value):
143
+ if value is not None:
144
+ self.nestedElementRefs = value
145
+ return self