armodel 1.7.7__py3-none-any.whl → 1.7.9__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 +84 -28
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +410 -61
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +80 -9
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +141 -35
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +10 -8
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +17 -6
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +38 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +91 -18
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +73 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +45 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +45 -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 +243 -156
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +73 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +60 -32
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +35 -14
- armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +151 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +66 -42
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +1 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +13 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +166 -50
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +80 -0
- 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 +11 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +16 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +9 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +167 -5
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/{ECUResourceMapping.py → EcuResourceMapping.py} +4 -3
- 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 +18 -6
- 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 +64 -31
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +158 -40
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +19 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +2 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +524 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +15 -13
- armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +10 -1
- armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +163 -0
- armodel/models/M2/MSR/Documentation/BlockElements/__init__.py +0 -0
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +5 -3
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +22 -1
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +94 -9
- armodel/models/__init__.py +7 -1
- armodel/parser/abstract_arxml_parser.py +39 -32
- armodel/parser/arxml_parser.py +1439 -551
- armodel/parser/file_parser.py +5 -3
- armodel/tests/test_armodel/models/test_ar_package.py +6 -11
- armodel/tests/test_armodel/models/test_port_interface.py +116 -117
- armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +109 -109
- armodel/tests/test_armodel/parser/test_sw_components.py +301 -28
- 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 +22 -29
- armodel/writer/arxml_writer.py +1500 -526
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/METADATA +61 -1
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/RECORD +73 -57
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/LICENSE +0 -0
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/WHEEL +0 -0
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/top_level.txt +0 -0
|
@@ -1,9 +1,45 @@
|
|
|
1
1
|
from typing import List
|
|
2
2
|
|
|
3
3
|
from ....M2.MSR.DataDictionary.ServiceProcessTask import SwServiceArg
|
|
4
|
+
from ....M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import ServiceNeeds
|
|
4
5
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
5
|
-
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
6
|
-
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import
|
|
6
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, Referrable
|
|
7
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARNumerical, Boolean, Identifier, NameToken, RefType
|
|
8
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class BswModuleDependency(Identifiable):
|
|
12
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
13
|
+
super().__init__(parent, short_name)
|
|
14
|
+
|
|
15
|
+
self.serviceItems = [] # type: List[ServiceNeeds]
|
|
16
|
+
self.targetModuleId = None # type: PositiveInteger
|
|
17
|
+
self.targetModuleRef = None # type: RefType
|
|
18
|
+
|
|
19
|
+
def getServiceItems(self):
|
|
20
|
+
return self.serviceItems
|
|
21
|
+
|
|
22
|
+
def setServiceItems(self, value):
|
|
23
|
+
if value is not None:
|
|
24
|
+
self.serviceItems = value
|
|
25
|
+
return self
|
|
26
|
+
|
|
27
|
+
def getTargetModuleId(self):
|
|
28
|
+
return self.targetModuleId
|
|
29
|
+
|
|
30
|
+
def setTargetModuleId(self, value):
|
|
31
|
+
if value is not None:
|
|
32
|
+
self.targetModuleId = value
|
|
33
|
+
return self
|
|
34
|
+
|
|
35
|
+
def getTargetModuleRef(self):
|
|
36
|
+
return self.targetModuleRef
|
|
37
|
+
|
|
38
|
+
def setTargetModuleRef(self, value):
|
|
39
|
+
if value is not None:
|
|
40
|
+
self.targetModuleRef = value
|
|
41
|
+
return self
|
|
42
|
+
|
|
7
43
|
|
|
8
44
|
class BswModuleEntry(ARElement):
|
|
9
45
|
def __init__(self, parent: ARObject, short_name: str):
|
|
@@ -109,18 +145,53 @@ class BswModuleEntry(ARElement):
|
|
|
109
145
|
result = []
|
|
110
146
|
|
|
111
147
|
result.append("short_name : %s" % self.short_name)
|
|
112
|
-
if self.serviceId
|
|
148
|
+
if self.serviceId is not None:
|
|
113
149
|
result.append("service_id : %d" % self.serviceId)
|
|
114
|
-
if self.isReentrant
|
|
150
|
+
if self.isReentrant is not None:
|
|
115
151
|
result.append("is_reentrant : %s" % self.isReentrant)
|
|
116
|
-
if self.isSynchronous
|
|
152
|
+
if self.isSynchronous is not None:
|
|
117
153
|
result.append("is_synchronous : %s" % self.isSynchronous)
|
|
118
|
-
if self.callType
|
|
154
|
+
if self.callType is not None:
|
|
119
155
|
result.append("call_type : %s" % self.callType)
|
|
120
|
-
if self.
|
|
156
|
+
if self.executionContext is not None:
|
|
121
157
|
result.append("execution_context : %s" % self.executionContext)
|
|
122
|
-
if self.
|
|
158
|
+
if self.swServiceImplPolicy is not None:
|
|
123
159
|
result.append("sw_service_impl_policy : %s" % self.swServiceImplPolicy)
|
|
124
160
|
|
|
125
161
|
return "\n".join(result)
|
|
126
|
-
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
class BswModuleClientServerEntry(Referrable):
|
|
165
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
166
|
+
super().__init__(parent, short_name)
|
|
167
|
+
|
|
168
|
+
self.encapsulatedEntryRef = None # type: RefType
|
|
169
|
+
self.isReentrant = None # type: Boolean
|
|
170
|
+
self.isSynchronous = None # type: Boolean
|
|
171
|
+
|
|
172
|
+
def getEncapsulatedEntryRef(self):
|
|
173
|
+
return self.encapsulatedEntryRef
|
|
174
|
+
|
|
175
|
+
def setEncapsulatedEntryRef(self, value):
|
|
176
|
+
if value is not None:
|
|
177
|
+
self.encapsulatedEntryRef = value
|
|
178
|
+
return self
|
|
179
|
+
|
|
180
|
+
def getIsReentrant(self):
|
|
181
|
+
return self.isReentrant
|
|
182
|
+
|
|
183
|
+
def setIsReentrant(self, value):
|
|
184
|
+
if value is not None:
|
|
185
|
+
self.isReentrant = value
|
|
186
|
+
return self
|
|
187
|
+
|
|
188
|
+
def getIsSynchronous(self):
|
|
189
|
+
return self.isSynchronous
|
|
190
|
+
|
|
191
|
+
def setIsSynchronous(self, value):
|
|
192
|
+
if value is not None:
|
|
193
|
+
self.isSynchronous = value
|
|
194
|
+
return self
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.SoftwareComponentDocumentation import SwComponentDocumentation
|
|
2
|
+
from ....M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleClientServerEntry, BswModuleDependency
|
|
1
3
|
from ....M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalBehavior
|
|
2
4
|
from ....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroupPrototype
|
|
5
|
+
from ....M2.AUTOSARTemplates.CommonStructure.TriggerDeclaration import Trigger
|
|
3
6
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
4
7
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
5
|
-
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import
|
|
6
|
-
from
|
|
8
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger, RefType
|
|
9
|
+
from ....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import VariableDataPrototype
|
|
10
|
+
from typing import List
|
|
11
|
+
|
|
7
12
|
|
|
8
13
|
class BswModuleDescription(ARElement):
|
|
9
14
|
'''
|
|
@@ -18,56 +23,157 @@ class BswModuleDescription(ARElement):
|
|
|
18
23
|
def __init__(self, parent: ARObject, short_name: str):
|
|
19
24
|
super().__init__(parent, short_name)
|
|
20
25
|
|
|
21
|
-
#
|
|
22
|
-
self.
|
|
26
|
+
self.bswModuleDependencies = [] # type: List[BswModuleDependency]
|
|
27
|
+
self.bswModuleDocumentation = None # type: SwComponentDocumentation
|
|
28
|
+
self.expectedEntryRefs = [] # type: List[RefType]
|
|
29
|
+
self.implementedEntryRefs = [] # type: List[RefType]
|
|
30
|
+
self.internalBehaviors = [] # type: List[BswInternalBehavior]
|
|
31
|
+
self.moduleId = None # type: PositiveInteger
|
|
32
|
+
self.providedClientServerEntries = [] # type: List[BswModuleClientServerEntry]
|
|
33
|
+
self.providedDatas = [] # type: List[VariableDataPrototype]
|
|
34
|
+
self.providedModeGroups = [] # type: List[ModeDeclarationGroupPrototype]
|
|
35
|
+
self.releasedTriggers = [] # type: List[Trigger]
|
|
36
|
+
self.requiredClientServerEntries = [] # type: List[BswModuleClientServerEntry]
|
|
37
|
+
self.requiredDatas = [] # type: List[VariableDataPrototype]
|
|
38
|
+
self.requiredModeGroups = [] # type: List[ModeDeclarationGroupPrototype]
|
|
39
|
+
self.requiredTriggers = [] # typeL List[Trigger]
|
|
40
|
+
|
|
41
|
+
def getBswModuleDependencies(self):
|
|
42
|
+
return self.bswModuleDependencies
|
|
43
|
+
|
|
44
|
+
def setBswModuleDependencies(self, value):
|
|
45
|
+
if value is not None:
|
|
46
|
+
self.bswModuleDependencies = value
|
|
47
|
+
return self
|
|
48
|
+
|
|
49
|
+
def getBswModuleDocumentation(self):
|
|
50
|
+
return self.bswModuleDocumentation
|
|
23
51
|
|
|
24
|
-
|
|
25
|
-
|
|
52
|
+
def setBswModuleDocumentation(self, value):
|
|
53
|
+
if value is not None:
|
|
54
|
+
self.bswModuleDocumentation = value
|
|
55
|
+
return self
|
|
56
|
+
|
|
57
|
+
def getExpectedEntryRefs(self):
|
|
58
|
+
return self.expectedEntryRefs
|
|
59
|
+
|
|
60
|
+
def setExpectedEntryRefs(self, value):
|
|
61
|
+
if value is not None:
|
|
62
|
+
self.expectedEntryRefs = value
|
|
63
|
+
return self
|
|
26
64
|
|
|
27
|
-
|
|
28
|
-
self.
|
|
65
|
+
def getImplementedEntryRefs(self):
|
|
66
|
+
return self.implementedEntryRefs
|
|
67
|
+
|
|
68
|
+
def addImplementedEntryRef(self, value):
|
|
69
|
+
if value is not None:
|
|
70
|
+
self.implementedEntryRefs.append(value)
|
|
71
|
+
return self
|
|
72
|
+
|
|
73
|
+
def getInternalBehaviors(self):
|
|
74
|
+
return self.internalBehaviors
|
|
75
|
+
|
|
76
|
+
def setInternalBehaviors(self, value):
|
|
77
|
+
if value is not None:
|
|
78
|
+
self.internalBehaviors = value
|
|
79
|
+
return self
|
|
29
80
|
|
|
81
|
+
def createBswInternalBehavior(self, short_name: str) -> BswInternalBehavior:
|
|
82
|
+
'''
|
|
83
|
+
Create the INTERNAL-BEHAVIORS tag
|
|
84
|
+
'''
|
|
85
|
+
if (not self.IsElementExists(short_name)):
|
|
86
|
+
behavior = BswInternalBehavior(self, short_name)
|
|
87
|
+
self.addElement(behavior)
|
|
88
|
+
self.internalBehaviors.append(behavior)
|
|
89
|
+
return self.getElement(short_name)
|
|
90
|
+
|
|
30
91
|
def getModuleId(self):
|
|
31
92
|
return self.moduleId
|
|
32
93
|
|
|
33
94
|
def setModuleId(self, value):
|
|
34
|
-
|
|
95
|
+
if value is not None:
|
|
96
|
+
self.moduleId = value
|
|
35
97
|
return self
|
|
36
98
|
|
|
37
|
-
def
|
|
38
|
-
self.
|
|
99
|
+
def getProvidedClientServerEntries(self):
|
|
100
|
+
return self.providedClientServerEntries
|
|
39
101
|
|
|
40
|
-
def
|
|
41
|
-
|
|
102
|
+
def createProvidedClientServerEntry(self, short_name: str) -> BswModuleClientServerEntry:
|
|
103
|
+
if (not self.IsElementExists(short_name)):
|
|
104
|
+
entry = BswModuleClientServerEntry(self, short_name)
|
|
105
|
+
self.addElement(entry)
|
|
106
|
+
self.providedClientServerEntries.append(entry)
|
|
107
|
+
return self.getElement(short_name)
|
|
108
|
+
|
|
109
|
+
def getProvidedDatas(self):
|
|
110
|
+
return self.providedDatas
|
|
42
111
|
|
|
112
|
+
def createProvidedData(self, short_name: str) -> VariableDataPrototype:
|
|
113
|
+
if (not self.IsElementExists(short_name)):
|
|
114
|
+
prototype = VariableDataPrototype(self, short_name)
|
|
115
|
+
self.addElement(prototype)
|
|
116
|
+
self.providedDatas.append(prototype)
|
|
117
|
+
return self.getElement(short_name)
|
|
118
|
+
|
|
119
|
+
def getProvidedModeGroups(self):
|
|
120
|
+
return self.providedModeGroups
|
|
121
|
+
|
|
43
122
|
def createProvidedModeGroup(self, short_name: str) -> ModeDeclarationGroupPrototype:
|
|
44
|
-
if (
|
|
123
|
+
if (not self.IsElementExists(short_name)):
|
|
45
124
|
prototype = ModeDeclarationGroupPrototype(self, short_name)
|
|
46
|
-
self.
|
|
47
|
-
self.providedModeGroups
|
|
48
|
-
return self.
|
|
125
|
+
self.addElement(prototype)
|
|
126
|
+
self.providedModeGroups.append(prototype)
|
|
127
|
+
return self.getElement(short_name)
|
|
128
|
+
|
|
129
|
+
def getReleasedTriggers(self):
|
|
130
|
+
return self.releasedTriggers
|
|
131
|
+
|
|
132
|
+
def createReleasedTrigger(self, short_name: str) -> Trigger:
|
|
133
|
+
if (not self.IsElementExists(short_name)):
|
|
134
|
+
trigger = Trigger(self, short_name)
|
|
135
|
+
self.addElement(trigger)
|
|
136
|
+
self.releasedTriggers.append(trigger)
|
|
137
|
+
return self.getElement(short_name)
|
|
49
138
|
|
|
50
|
-
def
|
|
51
|
-
return
|
|
139
|
+
def getRequiredClientServerEntries(self):
|
|
140
|
+
return self.requiredClientServerEntries
|
|
141
|
+
|
|
142
|
+
def createRequiredClientServerEntry(self, short_name: str) -> BswModuleClientServerEntry:
|
|
143
|
+
if (not self.IsElementExists(short_name)):
|
|
144
|
+
entry = BswModuleClientServerEntry(self, short_name)
|
|
145
|
+
self.addElement(entry)
|
|
146
|
+
self.requiredClientServerEntries.append(entry)
|
|
147
|
+
return self.getElement(short_name)
|
|
148
|
+
|
|
149
|
+
def getRequiredDatas(self):
|
|
150
|
+
return self.requiredDatas
|
|
151
|
+
|
|
152
|
+
def createRequiredData(self, short_name: str) -> VariableDataPrototype:
|
|
153
|
+
if (not self.IsElementExists(short_name)):
|
|
154
|
+
prototype = VariableDataPrototype(self, short_name)
|
|
155
|
+
self.addElement(prototype)
|
|
156
|
+
self.requiredDatas.append(prototype)
|
|
157
|
+
return self.getElement(short_name)
|
|
158
|
+
|
|
159
|
+
def getRequiredModeGroups(self):
|
|
160
|
+
return self.requiredModeGroups
|
|
52
161
|
|
|
53
162
|
def createRequiredModeGroup(self, short_name: str) -> ModeDeclarationGroupPrototype:
|
|
54
|
-
if (
|
|
163
|
+
if (not self.IsElementExists(short_name)):
|
|
55
164
|
prototype = ModeDeclarationGroupPrototype(self, short_name)
|
|
56
|
-
self.
|
|
57
|
-
self.requiredModeGroups
|
|
58
|
-
return self.
|
|
165
|
+
self.addElement(prototype)
|
|
166
|
+
self.requiredModeGroups.append(prototype)
|
|
167
|
+
return self.getElement(short_name)
|
|
59
168
|
|
|
60
|
-
def
|
|
61
|
-
return
|
|
169
|
+
def getRequiredTriggers(self):
|
|
170
|
+
return self.requiredTriggers
|
|
62
171
|
|
|
63
|
-
def
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
self.elements[short_name] = prototype
|
|
70
|
-
return self.elements[short_name]
|
|
172
|
+
def createRequiredTrigger(self, short_name: str) -> Trigger:
|
|
173
|
+
if (not self.IsElementExists(short_name)):
|
|
174
|
+
trigger = Trigger(self, short_name)
|
|
175
|
+
self.addElement(trigger)
|
|
176
|
+
self.requiredTriggers.append(trigger)
|
|
177
|
+
return self.getElement(short_name)
|
|
71
178
|
|
|
72
|
-
|
|
73
|
-
return list(filter(lambda a: isinstance(a, BswInternalBehavior), self.elements.values()))
|
|
179
|
+
|
|
@@ -7,9 +7,9 @@ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTy
|
|
|
7
7
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
class ImplementationProps(Referrable, metaclass
|
|
10
|
+
class ImplementationProps(Referrable, metaclass=ABCMeta):
|
|
11
11
|
def __init__(self, parent: ARObject, short_name: str):
|
|
12
|
-
if type(self)
|
|
12
|
+
if type(self) is ImplementationProps:
|
|
13
13
|
raise NotImplementedError("ImplementationProps is an abstract class.")
|
|
14
14
|
|
|
15
15
|
super().__init__(parent, short_name)
|
|
@@ -35,12 +35,13 @@ class Code(Identifiable):
|
|
|
35
35
|
self.artifactDescriptors.append(desc)
|
|
36
36
|
return self
|
|
37
37
|
|
|
38
|
-
def getArtifactDescriptors(self, category:str = "") -> List[AutosarEngineeringObject]:
|
|
38
|
+
def getArtifactDescriptors(self, category: str = "") -> List[AutosarEngineeringObject]:
|
|
39
39
|
if (category == ""):
|
|
40
40
|
return self.artifactDescriptors
|
|
41
41
|
else:
|
|
42
42
|
return list(filter(lambda a: a.getCategory().getText() == category, self.artifactDescriptors))
|
|
43
43
|
|
|
44
|
+
|
|
44
45
|
class Compiler(Identifiable):
|
|
45
46
|
def __init__(self, parent: ARObject, short_name: str):
|
|
46
47
|
super().__init__(parent, short_name)
|
|
@@ -77,7 +78,8 @@ class Compiler(Identifiable):
|
|
|
77
78
|
def setVersion(self, value):
|
|
78
79
|
self.version = value
|
|
79
80
|
return self
|
|
80
|
-
|
|
81
|
+
|
|
82
|
+
|
|
81
83
|
class DependencyOnArtifact(Identifiable):
|
|
82
84
|
def __init__(self, parent: ARObject, short_name: str):
|
|
83
85
|
super().__init__(parent, short_name)
|
|
@@ -101,9 +103,9 @@ class DependencyOnArtifact(Identifiable):
|
|
|
101
103
|
return self
|
|
102
104
|
|
|
103
105
|
|
|
104
|
-
class Implementation(PackageableElement, metaclass
|
|
106
|
+
class Implementation(PackageableElement, metaclass=ABCMeta):
|
|
105
107
|
def __init__(self, parent: ARObject, short_name: str):
|
|
106
|
-
if type(self)
|
|
108
|
+
if type(self) is Implementation:
|
|
107
109
|
raise NotImplementedError("Implementation is an abstract class.")
|
|
108
110
|
|
|
109
111
|
super().__init__(parent, short_name)
|
|
@@ -131,8 +133,8 @@ class Implementation(PackageableElement, metaclass = ABCMeta):
|
|
|
131
133
|
self.buildActionManifestRef = value
|
|
132
134
|
return self
|
|
133
135
|
|
|
134
|
-
def getCodeDescriptors(self)-> List[Code]:
|
|
135
|
-
return list(filter(lambda a
|
|
136
|
+
def getCodeDescriptors(self) -> List[Code]:
|
|
137
|
+
return list(filter(lambda a: isinstance(a, Code), self.elements.values()))
|
|
136
138
|
|
|
137
139
|
def createCodeDescriptor(self, short_name: str) -> Code:
|
|
138
140
|
if (short_name not in self.elements):
|
|
@@ -4,13 +4,15 @@ 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
10
|
class ReentrancyLevelEnum(Enum):
|
|
10
11
|
ENUM_MULTICORE_REENTRANT = "multicoreReentrant"
|
|
11
12
|
ENUM_NON_REENTRANT = "nonReentrant"
|
|
12
13
|
ENUM_SINGLE_CORE_REENTRANT = "singleCoreReentrant"
|
|
13
14
|
|
|
15
|
+
|
|
14
16
|
class ExclusiveArea(Identifiable):
|
|
15
17
|
def __init__(self, parent: ARObject, short_name: str):
|
|
16
18
|
super().__init__(parent, short_name)
|
|
@@ -18,16 +20,15 @@ class ExclusiveArea(Identifiable):
|
|
|
18
20
|
|
|
19
21
|
class ExecutableEntity(Identifiable, metaclass=ABCMeta):
|
|
20
22
|
def __init__(self, parent: ARObject, short_name: str):
|
|
21
|
-
if type(self)
|
|
23
|
+
if type(self) is ExecutableEntity:
|
|
22
24
|
raise NotImplementedError("ExecutableEntity is an abstract class.")
|
|
23
25
|
|
|
24
26
|
super().__init__(parent, short_name)
|
|
25
27
|
|
|
26
28
|
self.activationReasons = [] # type: List[ExecutableEntityActivationReason]
|
|
27
|
-
self.canEnterExclusiveAreaRefs = [] # type: List[RefType]
|
|
29
|
+
self.canEnterExclusiveAreaRefs = [] # type: List[RefType]
|
|
28
30
|
self.minimumStartInterval = None # type: ARFloat
|
|
29
|
-
self.reentrancyLevel = None #
|
|
30
|
-
|
|
31
|
+
self.reentrancyLevel = None # type: ReentrancyLevelEnum
|
|
31
32
|
self.swAddrMethodRef = None # type: RefType
|
|
32
33
|
|
|
33
34
|
def getActivationReasons(self):
|
|
@@ -73,7 +74,7 @@ class ExecutableEntity(Identifiable, metaclass=ABCMeta):
|
|
|
73
74
|
|
|
74
75
|
class InternalBehavior(Identifiable, metaclass=ABCMeta):
|
|
75
76
|
def __init__(self, parent: ARObject, short_name: str):
|
|
76
|
-
if type(self)
|
|
77
|
+
if type(self) is InternalBehavior:
|
|
77
78
|
raise NotImplementedError("InternalBehavior is an abstract class.")
|
|
78
79
|
super().__init__(parent, short_name)
|
|
79
80
|
|
|
@@ -109,6 +110,16 @@ class InternalBehavior(Identifiable, metaclass=ABCMeta):
|
|
|
109
110
|
|
|
110
111
|
def getExclusiveAreas(self) -> List[ExclusiveArea]:
|
|
111
112
|
return list(filter(lambda c: isinstance(c, ExclusiveArea), self.elements.values()))
|
|
113
|
+
|
|
114
|
+
def getStaticMemories(self):
|
|
115
|
+
return self.staticMemories
|
|
116
|
+
|
|
117
|
+
def createStaticMemory(self, short_name: str) -> VariableDataPrototype:
|
|
118
|
+
if (short_name not in self.elements):
|
|
119
|
+
prototype = VariableDataPrototype(self, short_name)
|
|
120
|
+
self.addElement(prototype)
|
|
121
|
+
self.staticMemories.append(prototype)
|
|
122
|
+
return self.getElement(short_name)
|
|
112
123
|
|
|
113
124
|
|
|
114
125
|
class AbstractEvent(Identifiable):
|
|
@@ -3,11 +3,45 @@ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject im
|
|
|
3
3
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
4
4
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARNumerical, PositiveInteger, RefType, TRefType
|
|
5
5
|
|
|
6
|
+
|
|
7
|
+
class ModeDeclarationGroupPrototypeMapping(ARObject):
|
|
8
|
+
def __init__(self):
|
|
9
|
+
super().__init__()
|
|
10
|
+
|
|
11
|
+
self.firstModeGroupRef = None # type: RefType
|
|
12
|
+
self.modeDeclarationMappingSetRef = None # type: RefType
|
|
13
|
+
self.secondModeGroupRef = None # type: RefType
|
|
14
|
+
|
|
15
|
+
def getFirstModeGroupRef(self):
|
|
16
|
+
return self.firstModeGroupRef
|
|
17
|
+
|
|
18
|
+
def setFirstModeGroupRef(self, value):
|
|
19
|
+
if value is not None:
|
|
20
|
+
self.firstModeGroupRef = value
|
|
21
|
+
return self
|
|
22
|
+
|
|
23
|
+
def getModeDeclarationMappingSetRef(self):
|
|
24
|
+
return self.modeDeclarationMappingSetRef
|
|
25
|
+
|
|
26
|
+
def setModeDeclarationMappingSetRef(self, value):
|
|
27
|
+
if value is not None:
|
|
28
|
+
self.modeDeclarationMappingSetRef = value
|
|
29
|
+
return self
|
|
30
|
+
|
|
31
|
+
def getSecondModeGroupRef(self):
|
|
32
|
+
return self.secondModeGroupRef
|
|
33
|
+
|
|
34
|
+
def setSecondModeGroupRef(self, value):
|
|
35
|
+
if value is not None:
|
|
36
|
+
self.secondModeGroupRef = value
|
|
37
|
+
return self
|
|
38
|
+
|
|
39
|
+
|
|
6
40
|
class ModeDeclaration(Identifiable):
|
|
7
41
|
def __init__(self, parent: ARObject, short_name: str):
|
|
8
42
|
super().__init__(parent, short_name)
|
|
9
43
|
|
|
10
|
-
self.value = None
|
|
44
|
+
self.value = None # type: ARNumerical
|
|
11
45
|
|
|
12
46
|
def setValue(self, value):
|
|
13
47
|
self.value = value
|
|
@@ -38,6 +72,7 @@ class ModeRequestTypeMap(ARObject):
|
|
|
38
72
|
self.modeGroupRef = value
|
|
39
73
|
return self
|
|
40
74
|
|
|
75
|
+
|
|
41
76
|
class ModeDeclarationGroup(Identifiable):
|
|
42
77
|
def __init__(self, parent: ARObject, short_name: str):
|
|
43
78
|
super().__init__(parent, short_name)
|
|
@@ -56,7 +91,7 @@ class ModeDeclarationGroup(Identifiable):
|
|
|
56
91
|
return self.elements[short_name]
|
|
57
92
|
|
|
58
93
|
def getModeDeclarations(self) -> List[ModeDeclaration]:
|
|
59
|
-
return list(sorted(filter(lambda a: isinstance(a, ModeDeclaration), self.elements.values()), key=
|
|
94
|
+
return list(sorted(filter(lambda a: isinstance(a, ModeDeclaration), self.elements.values()), key=lambda o: o.short_name))
|
|
60
95
|
|
|
61
96
|
def setInitialModeRef(self, ref: RefType):
|
|
62
97
|
self.initialModeRef = ref
|
|
@@ -110,4 +145,4 @@ class ModeDeclarationGroupPrototype(Identifiable):
|
|
|
110
145
|
|
|
111
146
|
def setTypeTRef(self, value):
|
|
112
147
|
self.typeTRef = value
|
|
113
|
-
return self
|
|
148
|
+
return self
|