armodel 1.8.0__py3-none-any.whl → 1.8.1__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/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +0 -1
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +14 -14
- armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +2 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +1 -1
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +7 -7
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +1 -1
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +4 -4
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +3 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +3 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +3 -3
- armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +86 -9
- armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1249 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +13 -10
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +238 -225
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +5 -4
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +46 -25
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +33 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +18 -20
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -19
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +4 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +71 -27
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +9 -9
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +172 -128
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +11 -11
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +8 -8
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +2 -2
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +6 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +6 -6
- armodel/models/M2/MSR/AsamHdo/AdminData.py +101 -8
- armodel/parser/abstract_arxml_parser.py +8 -5
- armodel/parser/arxml_parser.py +332 -16
- armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +116 -0
- armodel/tests/test_armodel/models/test_Identifiable.py +85 -0
- armodel/tests/test_armodel/models/test_ar_object.py +85 -86
- armodel/tests/test_armodel/models/test_ar_package.py +70 -70
- armodel/tests/test_armodel/models/test_ar_ref.py +36 -36
- armodel/tests/test_armodel/models/test_common_structure.py +37 -35
- armodel/tests/test_armodel/models/test_datatype.py +4 -4
- armodel/tests/test_armodel/models/test_general_structure.py +19 -18
- armodel/tests/test_armodel/models/test_port_interface.py +2 -6
- armodel/tests/test_armodel/parser/test_arxml_parser.py +8 -8
- armodel/writer/abstract_arxml_writer.py +6 -2
- armodel/writer/arxml_writer.py +376 -29
- {armodel-1.8.0.dist-info → armodel-1.8.1.dist-info}/METADATA +17 -1
- {armodel-1.8.0.dist-info → armodel-1.8.1.dist-info}/RECORD +49 -46
- {armodel-1.8.0.dist-info → armodel-1.8.1.dist-info}/LICENSE +0 -0
- {armodel-1.8.0.dist-info → armodel-1.8.1.dist-info}/WHEEL +0 -0
- {armodel-1.8.0.dist-info → armodel-1.8.1.dist-info}/entry_points.txt +0 -0
- {armodel-1.8.0.dist-info → armodel-1.8.1.dist-info}/top_level.txt +0 -0
|
@@ -6,16 +6,21 @@ from .....M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBe
|
|
|
6
6
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ParameterDataPrototype, VariableDataPrototype
|
|
7
7
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
8
8
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PerInstanceMemory import PerInstanceMemory
|
|
9
|
-
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import AsynchronousServerCallReturnsEvent, BackgroundEvent
|
|
9
|
+
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import AsynchronousServerCallReturnsEvent, BackgroundEvent
|
|
10
|
+
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent
|
|
11
|
+
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import ModeSwitchedAckEvent, OperationInvokedEvent, RTEEvent
|
|
12
|
+
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import SwcModeSwitchEvent, TimingEvent
|
|
10
13
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import SwcServiceDependency
|
|
11
14
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, Boolean, RefType, ARBoolean
|
|
12
15
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
|
|
13
16
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
|
|
14
|
-
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet, ModeAccessPoint
|
|
17
|
+
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet, ModeAccessPoint
|
|
18
|
+
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import ModeSwitchPoint
|
|
15
19
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.Trigger import InternalTriggeringPoint
|
|
16
20
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
17
21
|
from .....M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
|
|
18
22
|
|
|
23
|
+
|
|
19
24
|
class RunnableEntityArgument(ARObject):
|
|
20
25
|
def __init__(self):
|
|
21
26
|
super().__init__()
|
|
@@ -28,7 +33,8 @@ class RunnableEntityArgument(ARObject):
|
|
|
28
33
|
def setSymbol(self, value):
|
|
29
34
|
self.symbol = value
|
|
30
35
|
return self
|
|
31
|
-
|
|
36
|
+
|
|
37
|
+
|
|
32
38
|
class AsynchronousServerCallResultPoint(AbstractAccessPoint):
|
|
33
39
|
def __init__(self, parent: ARObject, short_name: str):
|
|
34
40
|
super().__init__(parent, short_name)
|
|
@@ -40,12 +46,14 @@ class AsynchronousServerCallResultPoint(AbstractAccessPoint):
|
|
|
40
46
|
|
|
41
47
|
def setAsynchronousServerCallPointRef(self, value):
|
|
42
48
|
self.asynchronousServerCallPointRef = value
|
|
43
|
-
return self
|
|
49
|
+
return self
|
|
50
|
+
|
|
44
51
|
|
|
45
52
|
class AsynchronousServerCallPoint(ServerCallPoint):
|
|
46
53
|
def __init__(self, parent: ARObject, short_name: str):
|
|
47
54
|
super().__init__(parent, short_name)
|
|
48
55
|
|
|
56
|
+
|
|
49
57
|
class SynchronousServerCallPoint(ServerCallPoint):
|
|
50
58
|
def __init__(self, parent: ARObject, short_name: str):
|
|
51
59
|
super().__init__(parent, short_name)
|
|
@@ -59,42 +67,57 @@ class SynchronousServerCallPoint(ServerCallPoint):
|
|
|
59
67
|
self.calledFromWithinExclusiveAreaRef = value
|
|
60
68
|
return self
|
|
61
69
|
|
|
70
|
+
|
|
62
71
|
class RunnableEntity(ExecutableEntity):
|
|
63
72
|
def __init__(self, parent: ARObject, short_name: str):
|
|
64
73
|
super().__init__(parent, short_name)
|
|
65
74
|
|
|
66
|
-
|
|
67
|
-
self.
|
|
75
|
+
# type: List[RunnableEntityArgument]
|
|
76
|
+
self.arguments = []
|
|
77
|
+
# type: List[AsynchronousServerCallResultPoint]
|
|
78
|
+
self.asynchronousServerCallResultPoints = []
|
|
68
79
|
self.canBeInvokedConcurrently = None # type: ARBoolean
|
|
69
|
-
|
|
70
|
-
self.
|
|
71
|
-
|
|
72
|
-
self.
|
|
73
|
-
|
|
74
|
-
self.
|
|
75
|
-
|
|
80
|
+
# type: Dict[str, VariableAccess]
|
|
81
|
+
self.dataReadAccesses = {}
|
|
82
|
+
# type: Dict[str, VariableAccess]
|
|
83
|
+
self.dataReceivePointByArguments = {}
|
|
84
|
+
# type: Dict[str, VariableAccess]
|
|
85
|
+
self.dataReceivePointByValues = {}
|
|
86
|
+
# type: Dict[str, VariableAccess]
|
|
87
|
+
self.dataSendPoints = {}
|
|
88
|
+
# type: Dict[str, VariableAccess]
|
|
89
|
+
self.dataWriteAccesses = {}
|
|
90
|
+
# type: Dict[str, ExternalTriggeringPoint]
|
|
91
|
+
self.externalTriggeringPoints = {}
|
|
92
|
+
# type: Dict[str, InternalTriggeringPoint]
|
|
93
|
+
self.internalTriggeringPoints = {}
|
|
76
94
|
self.modeAccessPoints = [] # type: List[ModeAccessPoint]
|
|
77
95
|
self.modeSwitchPoints = [] # type: List[ModeSwitchPoint]
|
|
78
|
-
|
|
79
|
-
self.
|
|
80
|
-
|
|
96
|
+
# type: Dict[str, ParameterAccess]
|
|
97
|
+
self.parameterAccesses = {}
|
|
98
|
+
# type: Dict[str, VariableAccess]
|
|
99
|
+
self.readLocalVariables = {}
|
|
100
|
+
# type: Dict[str, ServerCallPoint]
|
|
101
|
+
self.serverCallPoints = {}
|
|
81
102
|
self.symbol = None # type: ARLiteral
|
|
82
|
-
|
|
83
|
-
self.
|
|
103
|
+
# type: Dict[str, WaitPoint]
|
|
104
|
+
self.waitPoints = {}
|
|
105
|
+
# type: Dict[str, VariableAccess]
|
|
106
|
+
self.writtenLocalVariables = {}
|
|
84
107
|
|
|
85
108
|
def _createVariableAccess(self, short_name, variable_accesses: Dict[str, VariableAccess]):
|
|
86
|
-
if
|
|
109
|
+
if not self.IsElementExists(short_name):
|
|
87
110
|
variable_access = VariableAccess(self, short_name)
|
|
88
111
|
variable_accesses[short_name] = variable_access
|
|
89
112
|
return variable_accesses[short_name]
|
|
90
|
-
|
|
113
|
+
|
|
91
114
|
def getArguments(self):
|
|
92
115
|
return self.arguments
|
|
93
116
|
|
|
94
117
|
def addArgument(self, value):
|
|
95
118
|
self.arguments.append(value)
|
|
96
119
|
return self
|
|
97
|
-
|
|
120
|
+
|
|
98
121
|
def getCanBeInvokedConcurrently(self):
|
|
99
122
|
return self.canBeInvokedConcurrently
|
|
100
123
|
|
|
@@ -103,25 +126,25 @@ class RunnableEntity(ExecutableEntity):
|
|
|
103
126
|
return self
|
|
104
127
|
|
|
105
128
|
def createDataReadAccess(self, short_name: str) -> VariableAccess:
|
|
106
|
-
|
|
129
|
+
return self._createVariableAccess(short_name, self.dataReadAccesses)
|
|
107
130
|
|
|
108
131
|
def getDataReadAccesses(self) -> List[VariableAccess]:
|
|
109
132
|
return sorted(self.dataReadAccesses.values(), key=lambda v: v.short_name)
|
|
110
|
-
|
|
133
|
+
|
|
111
134
|
def createDataWriteAccess(self, short_name: str) -> VariableAccess:
|
|
112
|
-
|
|
135
|
+
return self._createVariableAccess(short_name, self.dataWriteAccesses)
|
|
113
136
|
|
|
114
137
|
def getDataWriteAccesses(self) -> List[VariableAccess]:
|
|
115
138
|
return sorted(self.dataWriteAccesses.values(), key=lambda v: v.short_name)
|
|
116
139
|
|
|
117
140
|
def createDataReceivePointByArgument(self, short_name: str) -> VariableAccess:
|
|
118
|
-
|
|
141
|
+
return self._createVariableAccess(short_name, self.dataReceivePointByArguments)
|
|
119
142
|
|
|
120
143
|
def getDataReceivePointByArguments(self) -> List[VariableAccess]:
|
|
121
144
|
return sorted(self.dataReceivePointByArguments.values(), key=lambda v: v.short_name)
|
|
122
145
|
|
|
123
146
|
def createDataReceivePointByValue(self, short_name: str) -> VariableAccess:
|
|
124
|
-
|
|
147
|
+
return self._createVariableAccess(short_name, self.dataReceivePointByValues)
|
|
125
148
|
|
|
126
149
|
def getDataReceivePointByValues(self) -> List[VariableAccess]:
|
|
127
150
|
return sorted(self.dataReceivePointByValues.values(), key=lambda v: v.short_name)
|
|
@@ -130,45 +153,48 @@ class RunnableEntity(ExecutableEntity):
|
|
|
130
153
|
return self._createVariableAccess(short_name, self.dataSendPoints)
|
|
131
154
|
|
|
132
155
|
def getDataSendPoints(self) -> List[VariableAccess]:
|
|
133
|
-
return sorted(self.dataSendPoints.values(), key=lambda v: v.short_name)
|
|
156
|
+
# return sorted(self.dataSendPoints.values(), key=lambda v: v.short_name)
|
|
157
|
+
return self.dataSendPoints.values()
|
|
134
158
|
|
|
135
159
|
def createReadLocalVariable(self, short_name: str) -> VariableAccess:
|
|
136
160
|
return self._createVariableAccess(short_name, self.readLocalVariables)
|
|
137
161
|
|
|
138
162
|
def getReadLocalVariables(self) -> List[VariableAccess]:
|
|
139
|
-
return sorted(self.readLocalVariables.values(), key=lambda v: v.short_name)
|
|
163
|
+
# return sorted(self.readLocalVariables.values(), key=lambda v: v.short_name)
|
|
164
|
+
return self.readLocalVariables.values()
|
|
140
165
|
|
|
141
166
|
def createWrittenLocalVariable(self, short_name: str) -> VariableAccess:
|
|
142
167
|
return self._createVariableAccess(short_name, self.writtenLocalVariables)
|
|
143
168
|
|
|
144
169
|
def getWrittenLocalVariables(self) -> List[VariableAccess]:
|
|
145
|
-
return sorted(self.writtenLocalVariables.values(), key=lambda v: v.short_name)
|
|
146
|
-
|
|
170
|
+
# return sorted(self.writtenLocalVariables.values(), key=lambda v: v.short_name)
|
|
171
|
+
return self.writtenLocalVariables.values()
|
|
172
|
+
|
|
147
173
|
def getParameterAccesses(self) -> List[ParameterAccess]:
|
|
148
|
-
return list(sorted(filter(lambda a: isinstance(a, ParameterAccess), self.elements
|
|
149
|
-
|
|
174
|
+
return list(sorted(filter(lambda a: isinstance(a, ParameterAccess), self.elements), key=lambda o: o.short_name))
|
|
175
|
+
|
|
150
176
|
def createParameterAccess(self, short_name: str) -> ParameterAccess:
|
|
151
|
-
if
|
|
177
|
+
if not self.IsElementExists(short_name):
|
|
152
178
|
access = ParameterAccess(self, short_name)
|
|
153
179
|
self.addElement(access)
|
|
154
180
|
return self.getElement(short_name)
|
|
155
|
-
|
|
181
|
+
|
|
156
182
|
def createSynchronousServerCallPoint(self, short_name: str) -> SynchronousServerCallPoint:
|
|
157
183
|
if (short_name not in self.serverCallPoints):
|
|
158
184
|
point = SynchronousServerCallPoint(self, short_name)
|
|
159
185
|
self.addElement(point)
|
|
160
186
|
return self.getElement(short_name)
|
|
161
|
-
|
|
162
|
-
#return self.serverCallPoints[short_name]
|
|
187
|
+
# self.serverCallPoints[short_name] = server_call_point
|
|
188
|
+
# return self.serverCallPoints[short_name]
|
|
163
189
|
|
|
164
190
|
def createAsynchronousServerCallPoint(self, short_name: str) -> AsynchronousServerCallPoint:
|
|
165
191
|
if (short_name not in self.serverCallPoints):
|
|
166
192
|
point = AsynchronousServerCallPoint(self, short_name)
|
|
167
193
|
self.addElement(point)
|
|
168
194
|
return self.getElement(short_name)
|
|
169
|
-
|
|
170
|
-
#return self.serverCallPoints[short_name]
|
|
171
|
-
|
|
195
|
+
# self.serverCallPoints[short_name] = server_call_point
|
|
196
|
+
# return self.serverCallPoints[short_name]
|
|
197
|
+
|
|
172
198
|
def createAsynchronousServerCallResultPoint(self, short_name: str) -> AsynchronousServerCallResultPoint:
|
|
173
199
|
if (short_name not in self.serverCallPoints):
|
|
174
200
|
point = AsynchronousServerCallResultPoint(self, short_name)
|
|
@@ -176,42 +202,42 @@ class RunnableEntity(ExecutableEntity):
|
|
|
176
202
|
return self.getElement(short_name)
|
|
177
203
|
|
|
178
204
|
def getSynchronousServerCallPoint(self) -> List[SynchronousServerCallPoint]:
|
|
179
|
-
return list(sorted(filter(lambda a: isinstance(a, SynchronousServerCallPoint), self.elements
|
|
180
|
-
|
|
205
|
+
return list(sorted(filter(lambda a: isinstance(a, SynchronousServerCallPoint), self.elements), key=lambda o: o.getShortName()))
|
|
206
|
+
|
|
181
207
|
def getAsynchronousServerCallPoint(self) -> List[AsynchronousServerCallPoint]:
|
|
182
|
-
return list(sorted(filter(lambda a: isinstance(a, AsynchronousServerCallPoint), self.elements
|
|
183
|
-
|
|
208
|
+
return list(sorted(filter(lambda a: isinstance(a, AsynchronousServerCallPoint), self.elements), key=lambda o: o.getShortName()))
|
|
209
|
+
|
|
184
210
|
def getAsynchronousServerCallResultPoints(self) -> List[AsynchronousServerCallResultPoint]:
|
|
185
|
-
return list(sorted(filter(lambda a: isinstance(a, AsynchronousServerCallResultPoint), self.elements
|
|
211
|
+
return list(sorted(filter(lambda a: isinstance(a, AsynchronousServerCallResultPoint), self.elements), key=lambda o: o.getShortName())) # noqa E501
|
|
186
212
|
|
|
187
213
|
def getServerCallPoints(self) -> List[ServerCallPoint]:
|
|
188
|
-
return list(sorted(filter(lambda a: isinstance(a, ServerCallPoint), self.elements
|
|
214
|
+
return list(sorted(filter(lambda a: isinstance(a, ServerCallPoint), self.elements), key=lambda o: o.getShortName()))
|
|
189
215
|
|
|
190
216
|
def createInternalTriggeringPoint(self, short_name: str) -> InternalTriggeringPoint:
|
|
191
|
-
if
|
|
217
|
+
if not self.IsElementExists(short_name):
|
|
192
218
|
point = InternalTriggeringPoint(self, short_name)
|
|
193
|
-
self.
|
|
194
|
-
return self.
|
|
219
|
+
self.addElement(point)
|
|
220
|
+
return self.getElement(short_name, InternalTriggeringPoint)
|
|
195
221
|
|
|
196
222
|
def getInternalTriggeringPoints(self) -> List[InternalTriggeringPoint]:
|
|
197
223
|
return filter(lambda o: isinstance(o, InternalTriggeringPoint), self.elements)
|
|
198
|
-
|
|
224
|
+
|
|
199
225
|
def getModeAccessPoints(self) -> List[ModeAccessPoint]:
|
|
200
226
|
return self.modeAccessPoints
|
|
201
|
-
|
|
227
|
+
|
|
202
228
|
def addModeAccessPoint(self, value):
|
|
203
229
|
self.modeAccessPoints.append(value)
|
|
204
|
-
|
|
230
|
+
|
|
205
231
|
def getModeSwitchPoints(self) -> List[ModeSwitchPoint]:
|
|
206
|
-
return list(sorted(filter(lambda a: isinstance(a, ModeSwitchPoint), self.elements
|
|
207
|
-
|
|
232
|
+
return list(sorted(filter(lambda a: isinstance(a, ModeSwitchPoint), self.elements), key=lambda o: o.short_name))
|
|
233
|
+
|
|
208
234
|
def createModeSwitchPoint(self, short_name: str) -> ModeSwitchPoint:
|
|
209
|
-
if
|
|
235
|
+
if not self.IsElementExists(short_name):
|
|
210
236
|
access = ModeSwitchPoint(self, short_name)
|
|
211
|
-
self.
|
|
237
|
+
self.addElement(access)
|
|
212
238
|
self.modeSwitchPoints.append(access)
|
|
213
|
-
return self.
|
|
214
|
-
|
|
239
|
+
return self.getElement(short_name, ModeSwitchPoint)
|
|
240
|
+
|
|
215
241
|
def getSymbol(self):
|
|
216
242
|
return self.symbol
|
|
217
243
|
|
|
@@ -224,29 +250,44 @@ class SwcInternalBehavior(InternalBehavior):
|
|
|
224
250
|
def __init__(self, parent: ARObject, short_name: str):
|
|
225
251
|
super().__init__(parent, short_name)
|
|
226
252
|
|
|
227
|
-
|
|
228
|
-
self.
|
|
229
|
-
|
|
230
|
-
self.
|
|
253
|
+
# type: List[VariableDataPrototype]
|
|
254
|
+
self.arTypedPerInstanceMemories = []
|
|
255
|
+
# type: List[RTEEvent]
|
|
256
|
+
self.events = []
|
|
257
|
+
# type: List[SwcExclusiveAreaPolicy]
|
|
258
|
+
self.exclusiveAreaPolicies = []
|
|
259
|
+
# type: List[VariableDataPrototype]
|
|
260
|
+
self.explicitInterRunnableVariables = []
|
|
231
261
|
self.handleTerminationAndRestart = None # type: str
|
|
232
|
-
|
|
233
|
-
self.
|
|
234
|
-
|
|
235
|
-
self.
|
|
236
|
-
|
|
237
|
-
self.
|
|
238
|
-
|
|
239
|
-
self.
|
|
240
|
-
|
|
241
|
-
self.
|
|
262
|
+
# type: List[VariableDataPrototype]
|
|
263
|
+
self.implicitInterRunnableVariables = []
|
|
264
|
+
# type: List[IncludedDataTypeSet]
|
|
265
|
+
self.includedDataTypeSets = []
|
|
266
|
+
# type: List[IncludedModeDeclarationGroupSet]
|
|
267
|
+
self.includedModeDeclarationGroupSets = []
|
|
268
|
+
# type: List[InstantiationDataDefProps]
|
|
269
|
+
self.instantiationDataDefProps = []
|
|
270
|
+
# type: List[PerInstanceMemory]
|
|
271
|
+
self.perInstanceMemories = []
|
|
272
|
+
# type: List[ParameterDataPrototype]
|
|
273
|
+
self.perInstanceParameters = []
|
|
274
|
+
# type: List[PortAPIOption]
|
|
275
|
+
self.portAPIOptions = []
|
|
276
|
+
# type: List[RunnableEntity]
|
|
277
|
+
self.runnables = []
|
|
278
|
+
# type: List[SwcServiceDependency]
|
|
279
|
+
self.serviceDependencies = []
|
|
280
|
+
# type: List[ParameterDataPrototype]
|
|
281
|
+
self.sharedParameters = []
|
|
242
282
|
self.supportsMultipleInstantiation = None # type: Boolean
|
|
243
|
-
|
|
283
|
+
# type: VariationPointProxy
|
|
284
|
+
self.variationPointProxies = []
|
|
244
285
|
|
|
245
286
|
def getArTypedPerInstanceMemories(self) -> List[VariableDataPrototype]:
|
|
246
287
|
return self.arTypedPerInstanceMemories
|
|
247
|
-
|
|
288
|
+
|
|
248
289
|
def createArTypedPerInstanceMemory(self, short_name: str) -> VariableDataPrototype:
|
|
249
|
-
if
|
|
290
|
+
if not self.IsElementExists(short_name):
|
|
250
291
|
prototype = VariableDataPrototype(self, short_name)
|
|
251
292
|
self.addElement(prototype)
|
|
252
293
|
self.arTypedPerInstanceMemories.append(prototype)
|
|
@@ -254,14 +295,14 @@ class SwcInternalBehavior(InternalBehavior):
|
|
|
254
295
|
|
|
255
296
|
def getExplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
|
|
256
297
|
return self.explicitInterRunnableVariables
|
|
257
|
-
|
|
298
|
+
|
|
258
299
|
def createExplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
|
|
259
|
-
if
|
|
300
|
+
if not self.IsElementExists(short_name):
|
|
260
301
|
prototype = VariableDataPrototype(self, short_name)
|
|
261
302
|
self.addElement(prototype)
|
|
262
303
|
self.explicitInterRunnableVariables.append(prototype)
|
|
263
304
|
return self.getElement(short_name)
|
|
264
|
-
|
|
305
|
+
|
|
265
306
|
def getHandleTerminationAndRestart(self):
|
|
266
307
|
return self.handleTerminationAndRestart
|
|
267
308
|
|
|
@@ -269,7 +310,6 @@ class SwcInternalBehavior(InternalBehavior):
|
|
|
269
310
|
self.handleTerminationAndRestart = value
|
|
270
311
|
return self
|
|
271
312
|
|
|
272
|
-
|
|
273
313
|
def getImplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
|
|
274
314
|
return self.implicitInterRunnableVariables
|
|
275
315
|
|
|
@@ -290,7 +330,7 @@ class SwcInternalBehavior(InternalBehavior):
|
|
|
290
330
|
|
|
291
331
|
def getIncludedDataTypeSets(self) -> List[IncludedDataTypeSet]:
|
|
292
332
|
return self.includedDataTypeSets
|
|
293
|
-
|
|
333
|
+
|
|
294
334
|
def getIncludedModeDeclarationGroupSets(self):
|
|
295
335
|
return self.includedModeDeclarationGroupSets
|
|
296
336
|
|
|
@@ -300,145 +340,149 @@ class SwcInternalBehavior(InternalBehavior):
|
|
|
300
340
|
return self
|
|
301
341
|
|
|
302
342
|
def createOperationInvokedEvent(self, short_name: str) -> OperationInvokedEvent:
|
|
303
|
-
if
|
|
343
|
+
if not self.IsElementExists(short_name):
|
|
304
344
|
event = OperationInvokedEvent(self, short_name)
|
|
305
345
|
self.addElement(event)
|
|
306
|
-
return self.getElement(short_name)
|
|
346
|
+
return self.getElement(short_name, OperationInvokedEvent)
|
|
307
347
|
|
|
308
348
|
def createTimingEvent(self, short_name: str) -> TimingEvent:
|
|
309
|
-
if
|
|
349
|
+
if not self.IsElementExists(short_name):
|
|
310
350
|
event = TimingEvent(self, short_name)
|
|
311
351
|
self.addElement(event)
|
|
312
|
-
return self.getElement(short_name)
|
|
352
|
+
return self.getElement(short_name, TimingEvent)
|
|
313
353
|
|
|
314
354
|
def createInitEvent(self, short_name: str) -> InitEvent:
|
|
315
|
-
if
|
|
355
|
+
if not self.IsElementExists(short_name):
|
|
316
356
|
event = InitEvent(self, short_name)
|
|
317
357
|
self.addElement(event)
|
|
318
|
-
return self.getElement(short_name)
|
|
319
|
-
|
|
358
|
+
return self.getElement(short_name, InitEvent)
|
|
359
|
+
|
|
320
360
|
def createAsynchronousServerCallReturnsEvent(self, short_name: str) -> AsynchronousServerCallReturnsEvent:
|
|
321
|
-
if
|
|
361
|
+
if not self.IsElementExists(short_name):
|
|
322
362
|
event = AsynchronousServerCallReturnsEvent(self, short_name)
|
|
323
363
|
self.addElement(event)
|
|
324
|
-
return self.getElement(short_name)
|
|
364
|
+
return self.getElement(short_name, AsynchronousServerCallReturnsEvent)
|
|
325
365
|
|
|
326
366
|
def createDataReceivedEvent(self, short_name: str) -> DataReceivedEvent:
|
|
327
|
-
if
|
|
367
|
+
if not self.IsElementExists(short_name):
|
|
328
368
|
event = DataReceivedEvent(self, short_name)
|
|
329
369
|
self.addElement(event)
|
|
330
|
-
return self.getElement(short_name)
|
|
370
|
+
return self.getElement(short_name, DataReceivedEvent)
|
|
331
371
|
|
|
332
372
|
def createSwcModeSwitchEvent(self, short_name: str) -> SwcModeSwitchEvent:
|
|
333
|
-
if
|
|
373
|
+
if not self.IsElementExists(short_name):
|
|
334
374
|
event = SwcModeSwitchEvent(self, short_name)
|
|
335
375
|
self.addElement(event)
|
|
336
|
-
return self.getElement(short_name)
|
|
376
|
+
return self.getElement(short_name, SwcModeSwitchEvent)
|
|
337
377
|
|
|
338
378
|
def createInternalTriggerOccurredEvent(self, short_name: str) -> InternalTriggerOccurredEvent:
|
|
339
|
-
if
|
|
379
|
+
if not self.IsElementExists(short_name):
|
|
340
380
|
event = InternalTriggerOccurredEvent(self, short_name)
|
|
341
381
|
self.addElement(event)
|
|
342
|
-
return self.getElement(short_name)
|
|
382
|
+
return self.getElement(short_name, InternalTriggerOccurredEvent)
|
|
343
383
|
|
|
344
384
|
def createSwcServiceDependency(self, short_name: str) -> SwcServiceDependency:
|
|
345
|
-
if
|
|
385
|
+
if not self.IsElementExists(short_name):
|
|
346
386
|
event = SwcServiceDependency(self, short_name)
|
|
347
|
-
self.
|
|
348
|
-
return self.
|
|
349
|
-
|
|
387
|
+
self.addElement(event)
|
|
388
|
+
return self.getElement(short_name, SwcServiceDependency)
|
|
389
|
+
|
|
350
390
|
def createModeSwitchedAckEvent(self, short_name: str) -> ModeSwitchedAckEvent:
|
|
351
|
-
if
|
|
391
|
+
if not self.IsElementExists(short_name):
|
|
352
392
|
event = ModeSwitchedAckEvent(self, short_name)
|
|
353
393
|
self.addElement(event)
|
|
354
|
-
return self.getElement(short_name)
|
|
355
|
-
|
|
394
|
+
return self.getElement(short_name, ModeSwitchedAckEvent)
|
|
395
|
+
|
|
356
396
|
def createBackgroundEvent(self, short_name: str) -> BackgroundEvent:
|
|
357
|
-
if
|
|
397
|
+
if not self.IsElementExists(short_name):
|
|
358
398
|
event = BackgroundEvent(self, short_name)
|
|
359
399
|
self.addElement(event)
|
|
360
|
-
return self.getElement(short_name)
|
|
400
|
+
return self.getElement(short_name, BackgroundEvent)
|
|
361
401
|
|
|
362
402
|
def getRteEvents(self) -> List[RTEEvent]:
|
|
363
|
-
return sorted(filter(lambda c: isinstance(c, RTEEvent), self.elements
|
|
403
|
+
return sorted(filter(lambda c: isinstance(c, RTEEvent), self.elements), key=lambda e: e.short_name)
|
|
364
404
|
|
|
365
405
|
def getOperationInvokedEvents(self) -> List[OperationInvokedEvent]:
|
|
366
|
-
return sorted(filter(lambda c: isinstance(c, OperationInvokedEvent), self.elements
|
|
406
|
+
return sorted(filter(lambda c: isinstance(c, OperationInvokedEvent), self.elements), key=lambda e: e.short_name)
|
|
367
407
|
|
|
368
408
|
def getInitEvents(self) -> List[InitEvent]:
|
|
369
|
-
return sorted(filter(lambda c: isinstance(c, InitEvent), self.elements
|
|
409
|
+
return sorted(filter(lambda c: isinstance(c, InitEvent), self.elements), key=lambda e: e.short_name)
|
|
370
410
|
|
|
371
411
|
def getTimingEvents(self) -> List[TimingEvent]:
|
|
372
|
-
return sorted(filter(lambda c: isinstance(c, TimingEvent), self.elements
|
|
412
|
+
return sorted(filter(lambda c: isinstance(c, TimingEvent), self.elements), key=lambda e: e.short_name)
|
|
373
413
|
|
|
374
414
|
def getDataReceivedEvents(self) -> List[DataReceivedEvent]:
|
|
375
|
-
return sorted(filter(lambda c: isinstance(c, DataReceivedEvent), self.elements
|
|
415
|
+
return sorted(filter(lambda c: isinstance(c, DataReceivedEvent), self.elements), key=lambda e: e.short_name)
|
|
376
416
|
|
|
377
417
|
def getSwcModeSwitchEvents(self) -> List[SwcModeSwitchEvent]:
|
|
378
|
-
return sorted(filter(lambda c: isinstance(c, SwcModeSwitchEvent), self.elements
|
|
418
|
+
return sorted(filter(lambda c: isinstance(c, SwcModeSwitchEvent), self.elements), key=lambda e: e.short_name)
|
|
379
419
|
|
|
380
420
|
def getInternalTriggerOccurredEvents(self) -> List[InternalTriggerOccurredEvent]:
|
|
381
|
-
return sorted(filter(lambda c: isinstance(c, InternalTriggerOccurredEvent), self.elements
|
|
382
|
-
|
|
421
|
+
return sorted(filter(lambda c: isinstance(c, InternalTriggerOccurredEvent), self.elements), key=lambda e: e.short_name)
|
|
422
|
+
|
|
383
423
|
def getModeSwitchedAckEvents(self) -> List[ModeSwitchedAckEvent]:
|
|
384
|
-
return sorted(filter(lambda c: isinstance(c, ModeSwitchedAckEvent), self.elements
|
|
385
|
-
|
|
424
|
+
return sorted(filter(lambda c: isinstance(c, ModeSwitchedAckEvent), self.elements), key=lambda e: e.short_name)
|
|
425
|
+
|
|
386
426
|
def getBackgroundEvents(self) -> List[BackgroundEvent]:
|
|
387
|
-
return sorted(filter(lambda c: isinstance(c, BackgroundEvent), self.elements
|
|
427
|
+
return sorted(filter(lambda c: isinstance(c, BackgroundEvent), self.elements), key=lambda e: e.short_name)
|
|
388
428
|
|
|
389
429
|
def getSwcServiceDependencies(self) -> List[SwcServiceDependency]:
|
|
390
|
-
return sorted(filter(lambda c: isinstance(c, SwcServiceDependency), self.elements
|
|
430
|
+
return sorted(filter(lambda c: isinstance(c, SwcServiceDependency), self.elements), key=lambda e: e.short_name)
|
|
391
431
|
|
|
392
432
|
def getEvent(self, short_name: str) -> RTEEvent:
|
|
433
|
+
'''
|
|
393
434
|
if (not isinstance(self.elements[short_name], RTEEvent)):
|
|
394
|
-
raise ValueError("Invalid Event Type <%s> of <%s>" %
|
|
395
|
-
|
|
435
|
+
raise ValueError("Invalid Event Type <%s> of <%s>" %
|
|
436
|
+
type(self.elements[short_name]), short_name)
|
|
437
|
+
return self.elements[short_name]'
|
|
438
|
+
'''
|
|
439
|
+
return self.getElement(short_name, RTEEvent)
|
|
396
440
|
|
|
397
441
|
def createImplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
|
|
398
|
-
if
|
|
442
|
+
if not self.IsElementExists(short_name):
|
|
399
443
|
prototype = VariableDataPrototype(self, short_name)
|
|
400
444
|
self.addElement(prototype)
|
|
401
445
|
self.implicitInterRunnableVariables.append(prototype)
|
|
402
446
|
return self.getElement(short_name)
|
|
403
447
|
|
|
404
448
|
def createPerInstanceMemory(self, short_name: str) -> PerInstanceMemory:
|
|
405
|
-
if
|
|
449
|
+
if not self.IsElementExists(short_name):
|
|
406
450
|
memory = PerInstanceMemory(self, short_name)
|
|
407
451
|
self.addElement(memory)
|
|
408
452
|
self.perInstanceMemories.append(memory)
|
|
409
453
|
return self.getElement(short_name)
|
|
410
454
|
|
|
411
455
|
def createPerInstanceParameter(self, short_name: str) -> ParameterDataPrototype:
|
|
412
|
-
if
|
|
456
|
+
if not self.IsElementExists(short_name):
|
|
413
457
|
prototype = ParameterDataPrototype(self, short_name)
|
|
414
458
|
self.addElement(prototype)
|
|
415
459
|
self.perInstanceParameters.append(prototype)
|
|
416
460
|
return self.getElement(short_name)
|
|
417
461
|
|
|
418
462
|
def getVariableDataPrototypes(self) -> List[VariableDataPrototype]:
|
|
419
|
-
return sorted(filter(lambda c: isinstance(c, VariableDataPrototype), self.elements
|
|
463
|
+
return sorted(filter(lambda c: isinstance(c, VariableDataPrototype), self.elements), key=lambda e: e.short_name)
|
|
420
464
|
|
|
421
465
|
def createRunnableEntity(self, short_name: str) -> RunnableEntity:
|
|
422
|
-
if
|
|
466
|
+
if not self.IsElementExists(short_name):
|
|
423
467
|
runnable = RunnableEntity(self, short_name)
|
|
424
468
|
self.addElement(runnable)
|
|
425
469
|
return self.getElement(short_name)
|
|
426
470
|
|
|
427
471
|
def getRunnableEntities(self) -> List[RunnableEntity]:
|
|
428
|
-
return sorted(filter(lambda c: isinstance(c, RunnableEntity), self.elements
|
|
472
|
+
return sorted(filter(lambda c: isinstance(c, RunnableEntity), self.elements), key=lambda r: r.short_name)
|
|
429
473
|
|
|
430
474
|
def getRunnableEntity(self, short_name) -> RunnableEntity:
|
|
431
|
-
return self.
|
|
432
|
-
|
|
475
|
+
return self.getElement(short_name, RunnableEntity)
|
|
476
|
+
|
|
433
477
|
def getSharedParameters(self) -> List[ParameterDataPrototype]:
|
|
434
478
|
return self.sharedParameters
|
|
435
|
-
|
|
479
|
+
|
|
436
480
|
def createSharedParameter(self, short_name: str) -> ParameterDataPrototype:
|
|
437
|
-
if
|
|
481
|
+
if not self.IsElementExists(short_name):
|
|
438
482
|
memory = ParameterDataPrototype(self, short_name)
|
|
439
483
|
self.addElement(memory)
|
|
440
484
|
self.sharedParameters.append(memory)
|
|
441
|
-
return self.getElement(short_name)
|
|
485
|
+
return self.getElement(short_name)
|
|
442
486
|
|
|
443
487
|
def getSupportsMultipleInstantiation(self):
|
|
444
488
|
return self.supportsMultipleInstantiation
|
|
@@ -72,14 +72,14 @@ class Frame(Identifiable, metaclass=ABCMeta):
|
|
|
72
72
|
return self
|
|
73
73
|
|
|
74
74
|
def createPduToFrameMapping(self, short_name: str) -> PduToFrameMapping:
|
|
75
|
-
if
|
|
75
|
+
if not self.IsElementExists(short_name):
|
|
76
76
|
mapping = PduToFrameMapping(self, short_name)
|
|
77
|
-
self.
|
|
77
|
+
self.addElement(mapping)
|
|
78
78
|
self.pduToFrameMappings.append(mapping)
|
|
79
|
-
return self.
|
|
79
|
+
return self.getElement(short_name, PduToFrameMapping)
|
|
80
80
|
|
|
81
81
|
def getPduToFrameMappings(self) -> List[PduToFrameMapping]:
|
|
82
|
-
return list(sorted(filter(lambda a: isinstance(a, PduToFrameMapping), self.elements
|
|
82
|
+
return list(sorted(filter(lambda a: isinstance(a, PduToFrameMapping), self.elements), key=lambda o: o.short_name))
|
|
83
83
|
|
|
84
84
|
|
|
85
85
|
class ContainedIPduProps(ARObject):
|
|
@@ -542,11 +542,11 @@ class NmPdu(Pdu):
|
|
|
542
542
|
return self.iSignalToIPduMappings
|
|
543
543
|
|
|
544
544
|
def createISignalToIPduMapping(self, short_name: str) -> ISignalToIPduMapping:
|
|
545
|
-
if
|
|
545
|
+
if not self.IsElementExists(short_name):
|
|
546
546
|
mapping = ISignalToIPduMapping(self, short_name)
|
|
547
547
|
self.addElement(mapping)
|
|
548
548
|
self.iSignalToIPduMappings.append(mapping)
|
|
549
|
-
return self.getElement(short_name)
|
|
549
|
+
return self.getElement(short_name, ISignalToIPduMapping)
|
|
550
550
|
|
|
551
551
|
def getNmDataInformation(self):
|
|
552
552
|
return self.nmDataInformation
|
|
@@ -633,11 +633,11 @@ class ISignalIPdu(IPdu):
|
|
|
633
633
|
return self.iSignalToPduMappings
|
|
634
634
|
|
|
635
635
|
def createISignalToPduMappings(self, short_name: str) -> ISignalToIPduMapping:
|
|
636
|
-
if
|
|
636
|
+
if not self.IsElementExists(short_name):
|
|
637
637
|
mapping = ISignalToIPduMapping(self, short_name)
|
|
638
|
-
self.
|
|
638
|
+
self.addElement(mapping)
|
|
639
639
|
self.iSignalToPduMappings.append(mapping)
|
|
640
|
-
return self.
|
|
640
|
+
return self.getElement(short_name, ISignalToIPduMapping)
|
|
641
641
|
|
|
642
642
|
def getUnusedBitPattern(self):
|
|
643
643
|
return self.unusedBitPattern
|
|
@@ -1219,7 +1219,7 @@ class SecureCommunicationPropsSet(Identifiable):
|
|
|
1219
1219
|
props = SecureCommunicationAuthenticationProps(self, short_name)
|
|
1220
1220
|
self.addElement(props)
|
|
1221
1221
|
self.authenticationProps.append(props)
|
|
1222
|
-
return self.getElement(short_name)
|
|
1222
|
+
return self.getElement(short_name, SecureCommunicationAuthenticationProps)
|
|
1223
1223
|
|
|
1224
1224
|
def getFreshnessProps(self):
|
|
1225
1225
|
return self.freshnessProps
|
|
@@ -1229,4 +1229,4 @@ class SecureCommunicationPropsSet(Identifiable):
|
|
|
1229
1229
|
props = SecureCommunicationFreshnessProps(self, short_name)
|
|
1230
1230
|
self.addElement(props)
|
|
1231
1231
|
self.freshnessProps.append(props)
|
|
1232
|
-
return self.getElement(short_name)
|
|
1232
|
+
return self.getElement(short_name, SecureCommunicationFreshnessProps)
|