armodel 1.7.6__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.
- armodel/cli/arxml_dump_cli.py +33 -22
- armodel/cli/arxml_format_cli.py +25 -13
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +95 -21
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +359 -59
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +134 -35
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +17 -7
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +10 -1
- armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +18 -2
- armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +20 -19
- armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +59 -0
- armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +145 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +215 -157
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +69 -35
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +17 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +19 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +113 -39
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +3 -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/EndToEndProtection.py +13 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +111 -38
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +9 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +5 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +26 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +28 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +167 -5
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +29 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/EcuResourceMapping.py +45 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +31 -21
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +5 -3
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +9 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +76 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +654 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +539 -77
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +158 -40
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +28 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +2 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +245 -130
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +27 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +524 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +592 -17
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +33 -21
- 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 +8 -0
- armodel/parser/abstract_arxml_parser.py +34 -27
- armodel/parser/arxml_parser.py +1778 -616
- armodel/parser/file_parser.py +5 -3
- armodel/tests/test_armodel/models/test_ar_package.py +6 -11
- 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/models/test_port_interface.py +116 -117
- armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +218 -0
- armodel/tests/test_armodel/parser/test_sw_components.py +54 -22
- armodel/tests/test_armodel/parser/test_system.py +2 -8
- armodel/transformer/__init__.py +0 -0
- armodel/transformer/abstract.py +6 -0
- armodel/transformer/admin_data.py +31 -0
- armodel/writer/abstract_arxml_writer.py +27 -33
- armodel/writer/arxml_writer.py +1875 -599
- {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/METADATA +81 -3
- {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/RECORD +69 -56
- {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/LICENSE +0 -0
- {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/WHEEL +0 -0
- {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.6.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
|
|
6
|
-
from typing import
|
|
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
|
-
#
|
|
22
|
-
self.
|
|
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
|
-
|
|
25
|
-
self.
|
|
38
|
+
def getBswModuleDependencies(self):
|
|
39
|
+
return self.bswModuleDependencies
|
|
26
40
|
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
92
|
+
if value is not None:
|
|
93
|
+
self.moduleId = value
|
|
35
94
|
return self
|
|
36
95
|
|
|
37
|
-
def
|
|
38
|
-
self.
|
|
96
|
+
def getProvidedClientServerEntries(self):
|
|
97
|
+
return self.providedClientServerEntries
|
|
39
98
|
|
|
40
|
-
def
|
|
41
|
-
|
|
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 (
|
|
118
|
+
if (not self.IsElementExists(short_name)):
|
|
45
119
|
prototype = ModeDeclarationGroupPrototype(self, short_name)
|
|
46
|
-
self.
|
|
47
|
-
self.providedModeGroups
|
|
48
|
-
return self.
|
|
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
|
|
51
|
-
|
|
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 (
|
|
156
|
+
if (not self.IsElementExists(short_name)):
|
|
55
157
|
prototype = ModeDeclarationGroupPrototype(self, short_name)
|
|
56
|
-
self.
|
|
57
|
-
self.requiredModeGroups
|
|
58
|
-
return self.
|
|
158
|
+
self.addElement(prototype)
|
|
159
|
+
self.requiredModeGroups.append(prototype)
|
|
160
|
+
return self.getElement(short_name)
|
|
59
161
|
|
|
60
|
-
def
|
|
61
|
-
return
|
|
162
|
+
def getRequiredTriggers(self):
|
|
163
|
+
return self.requiredTriggers
|
|
62
164
|
|
|
63
|
-
def
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
73
|
-
return list(filter(lambda a: isinstance(a, BswInternalBehavior), self.elements.values()))
|
|
172
|
+
|
|
@@ -40,47 +40,57 @@ class DataFilter(ARObject):
|
|
|
40
40
|
return self.dataFilterType
|
|
41
41
|
|
|
42
42
|
def setDataFilterType(self, value):
|
|
43
|
-
|
|
43
|
+
if value is not None:
|
|
44
|
+
self.dataFilterType = value
|
|
44
45
|
return self
|
|
45
46
|
|
|
46
47
|
def getMask(self):
|
|
47
48
|
return self.mask
|
|
48
49
|
|
|
49
50
|
def setMask(self, value):
|
|
50
|
-
|
|
51
|
+
if value is not None:
|
|
52
|
+
self.mask = value
|
|
51
53
|
return self
|
|
52
54
|
|
|
53
55
|
def getMax(self):
|
|
54
56
|
return self.max
|
|
55
57
|
|
|
56
58
|
def setMax(self, value):
|
|
57
|
-
|
|
59
|
+
if value is not None:
|
|
60
|
+
self.max = value
|
|
58
61
|
return self
|
|
59
62
|
|
|
60
63
|
def getMin(self):
|
|
61
64
|
return self.min
|
|
62
65
|
|
|
63
66
|
def setMin(self, value):
|
|
64
|
-
|
|
67
|
+
if value is not None:
|
|
68
|
+
self.min = value
|
|
65
69
|
return self
|
|
66
70
|
|
|
67
71
|
def getOffset(self):
|
|
68
72
|
return self.offset
|
|
69
73
|
|
|
70
74
|
def setOffset(self, value):
|
|
71
|
-
|
|
75
|
+
if value is not None:
|
|
76
|
+
self.offset = value
|
|
72
77
|
return self
|
|
73
78
|
|
|
74
79
|
def getPeriod(self):
|
|
75
80
|
return self.period
|
|
76
81
|
|
|
77
82
|
def setPeriod(self, value):
|
|
78
|
-
|
|
83
|
+
if value is not None:
|
|
84
|
+
self.period = value
|
|
79
85
|
return self
|
|
80
86
|
|
|
81
87
|
def getX(self):
|
|
82
88
|
return self.x
|
|
83
89
|
|
|
84
90
|
def setX(self, value):
|
|
85
|
-
|
|
91
|
+
if value is not None:
|
|
92
|
+
self.x = value
|
|
86
93
|
return self
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
@@ -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
|
|
9
|
-
self.triggerPeriod = None
|
|
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
|
-
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class EcucIndexableValue(ARObject, metaclass=ABCMeta):
|
|
32
34
|
def __init__(self):
|
|
33
|
-
if type(self)
|
|
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)
|
|
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)
|
|
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=
|
|
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
|