armodel 1.7.2__py3-none-any.whl → 1.7.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- armodel/cli/arxml_dump_cli.py +1 -1
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +42 -19
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +104 -30
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +12 -16
- armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +70 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +12 -9
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +29 -22
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +33 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +10 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +23 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +93 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +39 -5
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +26 -2
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +48 -6
- armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +5 -5
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +21 -1
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +12 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +8 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +196 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +11 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +36 -21
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +10 -1
- armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +16 -1
- armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +34 -3
- armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +7 -0
- armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +33 -0
- armodel/models/__init__.py +3 -0
- armodel/parser/abstract_arxml_parser.py +4 -14
- armodel/parser/arxml_parser.py +347 -180
- armodel/tests/test_armodel/models/test_ar_object.py +6 -2
- armodel/tests/test_armodel/models/test_port_interface.py +4 -4
- armodel/tests/test_armodel/parser/test_parse_bswmd.py +48 -48
- armodel/writer/abstract_arxml_writer.py +1 -0
- armodel/writer/arxml_writer.py +351 -226
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/METADATA +15 -2
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/RECORD +40 -34
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/LICENSE +0 -0
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/WHEEL +0 -0
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/top_level.txt +0 -0
|
@@ -8,7 +8,7 @@ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDa
|
|
|
8
8
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PerInstanceMemory import PerInstanceMemory
|
|
9
9
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import AsynchronousServerCallReturnsEvent, DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent, TimingEvent
|
|
10
10
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import SwcServiceDependency
|
|
11
|
-
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, RefType, ARBoolean
|
|
11
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, Boolean, RefType, ARBoolean
|
|
12
12
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
|
|
13
13
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
|
|
14
14
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import ModeAccessPoint, ModeSwitchPoint
|
|
@@ -224,38 +224,47 @@ class SwcInternalBehavior(InternalBehavior):
|
|
|
224
224
|
def __init__(self, parent: ARObject, short_name: str):
|
|
225
225
|
super().__init__(parent, short_name)
|
|
226
226
|
|
|
227
|
-
self.
|
|
228
|
-
self.
|
|
229
|
-
self.
|
|
230
|
-
self.
|
|
231
|
-
self.
|
|
232
|
-
self.
|
|
233
|
-
self.
|
|
234
|
-
self.
|
|
227
|
+
self.arTypedPerInstanceMemories = [] # type: List[VariableDataPrototype]
|
|
228
|
+
self.events = [] # type: List[RTEEvent]
|
|
229
|
+
self.exclusiveAreaPolicies = [] # type: List[SwcExclusiveAreaPolicy]
|
|
230
|
+
self.explicitInterRunnableVariables = [] # type: List[VariableDataPrototype]
|
|
231
|
+
self.handleTerminationAndRestart = None # type: str
|
|
232
|
+
self.implicitInterRunnableVariables = [] # type: List[VariableDataPrototype]
|
|
233
|
+
self.includedDataTypeSets = [] # type: List[IncludedDataTypeSet]
|
|
234
|
+
self.includedModeDeclarationGroupSets = [] # type: List[IncludedModeDeclarationGroupSet]
|
|
235
|
+
self.instantiationDataDefProps = [] # type: List[InstantiationDataDefProps]
|
|
236
|
+
self.perInstanceMemories = [] # type: List[PerInstanceMemory]
|
|
237
|
+
self.perInstanceParameters = [] # type: List[ParameterDataPrototype]
|
|
238
|
+
self.portAPIOptions = [] # type: List[PortAPIOption]
|
|
239
|
+
self.runnables = [] # type: List[RunnableEntity]
|
|
240
|
+
self.serviceDependencies = [] # type: List[SwcServiceDependency]
|
|
241
|
+
self.sharedParameters = [] # type: List[ParameterDataPrototype]
|
|
242
|
+
self.supportsMultipleInstantiation = None # type: Boolean
|
|
243
|
+
self.variationPointProxies = [] # type: VariationPointProxy
|
|
235
244
|
|
|
236
245
|
def getExplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
|
|
237
|
-
return self.
|
|
246
|
+
return self.explicitInterRunnableVariables
|
|
238
247
|
|
|
239
248
|
def getImplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
|
|
240
|
-
return self.
|
|
249
|
+
return self.implicitInterRunnableVariables
|
|
241
250
|
|
|
242
251
|
def getPerInstanceMemories(self) -> List[PerInstanceMemory]:
|
|
243
|
-
return self.
|
|
252
|
+
return self.perInstanceMemories
|
|
244
253
|
|
|
245
254
|
def getPerInstanceParameters(self) -> List[ParameterDataPrototype]:
|
|
246
|
-
return self.
|
|
255
|
+
return self.perInstanceParameters
|
|
247
256
|
|
|
248
257
|
def addPortAPIOption(self, option: PortAPIOption):
|
|
249
|
-
self.
|
|
258
|
+
self.portAPIOptions.append(option)
|
|
250
259
|
|
|
251
260
|
def getPortAPIOptions(self) -> List[PortAPIOption]:
|
|
252
|
-
return self.
|
|
261
|
+
return self.portAPIOptions
|
|
253
262
|
|
|
254
263
|
def addIncludedDataTypeSet(self, set: IncludedDataTypeSet):
|
|
255
|
-
self.
|
|
264
|
+
self.includedDataTypeSets.append(set)
|
|
256
265
|
|
|
257
266
|
def getIncludedDataTypeSets(self) -> List[IncludedDataTypeSet]:
|
|
258
|
-
return self.
|
|
267
|
+
return self.includedDataTypeSets
|
|
259
268
|
|
|
260
269
|
def createOperationInvokedEvent(self, short_name: str) -> OperationInvokedEvent:
|
|
261
270
|
if (short_name not in self.elements):
|
|
@@ -338,28 +347,28 @@ class SwcInternalBehavior(InternalBehavior):
|
|
|
338
347
|
if (short_name not in self.elements):
|
|
339
348
|
prototype = VariableDataPrototype(self, short_name)
|
|
340
349
|
self.elements[short_name] = prototype
|
|
341
|
-
self.
|
|
350
|
+
self.explicitInterRunnableVariables.append(prototype)
|
|
342
351
|
return self.elements[short_name]
|
|
343
352
|
|
|
344
353
|
def createImplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
|
|
345
354
|
if (short_name not in self.elements):
|
|
346
355
|
prototype = VariableDataPrototype(self, short_name)
|
|
347
356
|
self.elements[short_name] = prototype
|
|
348
|
-
self.
|
|
357
|
+
self.implicitInterRunnableVariables.append(prototype)
|
|
349
358
|
return self.elements[short_name]
|
|
350
359
|
|
|
351
360
|
def createPerInstanceMemory(self, short_name: str) -> PerInstanceMemory:
|
|
352
361
|
if (short_name not in self.elements):
|
|
353
362
|
memory = PerInstanceMemory(self, short_name)
|
|
354
363
|
self.elements[short_name] = memory
|
|
355
|
-
self.
|
|
364
|
+
self.perInstanceMemories.append(memory)
|
|
356
365
|
return self.elements[short_name]
|
|
357
366
|
|
|
358
367
|
def createPerInstanceParameter(self, short_name: str) -> ParameterDataPrototype:
|
|
359
368
|
if (short_name not in self.elements):
|
|
360
369
|
prototype = ParameterDataPrototype(self, short_name)
|
|
361
370
|
self.elements[short_name] = prototype
|
|
362
|
-
self.
|
|
371
|
+
self.perInstanceParameters.append(prototype)
|
|
363
372
|
return self.elements[short_name]
|
|
364
373
|
|
|
365
374
|
def getVariableDataPrototypes(self) -> List[VariableDataPrototype]:
|
|
@@ -377,3 +386,9 @@ class SwcInternalBehavior(InternalBehavior):
|
|
|
377
386
|
def getRunnableEntity(self, short_name) -> RunnableEntity:
|
|
378
387
|
return self.elements[short_name]
|
|
379
388
|
|
|
389
|
+
def getSupportsMultipleInstantiation(self):
|
|
390
|
+
return self.supportsMultipleInstantiation
|
|
391
|
+
|
|
392
|
+
def setSupportsMultipleInstantiation(self, value):
|
|
393
|
+
self.supportsMultipleInstantiation = value
|
|
394
|
+
return self
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
|
+
|
|
2
3
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
|
|
3
4
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
5
|
+
from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationDirectionType
|
|
4
6
|
|
|
5
7
|
class DataMapping(ARObject, metaclass = ABCMeta):
|
|
6
8
|
def __init__(self):
|
|
@@ -18,16 +20,23 @@ class DataMapping(ARObject, metaclass = ABCMeta):
|
|
|
18
20
|
self.introduction = value
|
|
19
21
|
return self
|
|
20
22
|
|
|
21
|
-
|
|
22
23
|
class SenderReceiverToSignalMapping(DataMapping):
|
|
23
24
|
def __init__(self):
|
|
24
25
|
super().__init__()
|
|
25
26
|
|
|
27
|
+
self.communicationDirection = None # type: CommunicationDirectionType
|
|
26
28
|
self.dataElementIRef = None
|
|
27
29
|
self.senderToSignalTextTableMapping = None
|
|
28
30
|
self.signalToReceiverTextTableMapping = None
|
|
29
31
|
self.systemSignalRef = None
|
|
30
32
|
|
|
33
|
+
def getCommunicationDirection(self):
|
|
34
|
+
return self.communicationDirection
|
|
35
|
+
|
|
36
|
+
def setCommunicationDirection(self, value):
|
|
37
|
+
self.communicationDirection = value
|
|
38
|
+
return self
|
|
39
|
+
|
|
31
40
|
def getDataElementIRef(self):
|
|
32
41
|
return self.dataElementIRef
|
|
33
42
|
|
|
@@ -87,7 +87,6 @@ class CompuConstTextContent(CompuConstContent):
|
|
|
87
87
|
return self
|
|
88
88
|
|
|
89
89
|
class CompuConstNumericContent(CompuConstContent):
|
|
90
|
-
|
|
91
90
|
def __init__(self):
|
|
92
91
|
super().__init__()
|
|
93
92
|
|
|
@@ -99,6 +98,22 @@ class CompuConstNumericContent(CompuConstContent):
|
|
|
99
98
|
def setV(self, value):
|
|
100
99
|
self.v = value
|
|
101
100
|
return self
|
|
101
|
+
|
|
102
|
+
class CompuConstFormulaContent(CompuConstContent):
|
|
103
|
+
def __init__(self):
|
|
104
|
+
super().__init__()
|
|
105
|
+
|
|
106
|
+
self.vf = None
|
|
107
|
+
|
|
108
|
+
def getVf(self):
|
|
109
|
+
return self.vf
|
|
110
|
+
|
|
111
|
+
def setVf(self, value):
|
|
112
|
+
self.vf = value
|
|
113
|
+
return self
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
102
117
|
|
|
103
118
|
class CompuScaleContents(ARObject, metaclass=ABCMeta):
|
|
104
119
|
def __init__(self):
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
from typing import List
|
|
2
|
+
|
|
3
|
+
from ....M2.MSR.AsamHdo.Units import SingleLanguageUnitNames
|
|
2
4
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
3
5
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARNumerical, RefType
|
|
4
6
|
from ....M2.MSR.DataDictionary.DataDefProperties import ValueList
|
|
@@ -21,6 +23,35 @@ class SwValueCont(ARObject):
|
|
|
21
23
|
def __init__(self):
|
|
22
24
|
super().__init__()
|
|
23
25
|
|
|
24
|
-
self.
|
|
25
|
-
self.
|
|
26
|
-
self.
|
|
26
|
+
self.swArraysize = None # type: ValueList
|
|
27
|
+
self.swValuesPhys = None # type: SwValues
|
|
28
|
+
self.unitRef = None # type: RefType
|
|
29
|
+
self.unitDisplayName = None # type: SingleLanguageUnitNames
|
|
30
|
+
|
|
31
|
+
def getSwArraysize(self):
|
|
32
|
+
return self.swArraysize
|
|
33
|
+
|
|
34
|
+
def setSwArraysize(self, value):
|
|
35
|
+
self.swArraysize = value
|
|
36
|
+
return self
|
|
37
|
+
|
|
38
|
+
def getSwValuesPhys(self):
|
|
39
|
+
return self.swValuesPhys
|
|
40
|
+
|
|
41
|
+
def setSwValuesPhys(self, value):
|
|
42
|
+
self.swValuesPhys = value
|
|
43
|
+
return self
|
|
44
|
+
|
|
45
|
+
def getUnitRef(self):
|
|
46
|
+
return self.unitRef
|
|
47
|
+
|
|
48
|
+
def setUnitRef(self, value):
|
|
49
|
+
self.unitRef = value
|
|
50
|
+
return self
|
|
51
|
+
|
|
52
|
+
def getUnitDisplayName(self):
|
|
53
|
+
return self.unitDisplayName
|
|
54
|
+
|
|
55
|
+
def setUnitDisplayName(self, value):
|
|
56
|
+
self.unitDisplayName = value
|
|
57
|
+
return self
|
|
@@ -296,6 +296,13 @@ class ValueList(ARObject):
|
|
|
296
296
|
self.v = None # type: ARFloat
|
|
297
297
|
self._vf = [] # type: List[ARLiteral]
|
|
298
298
|
|
|
299
|
+
def getV(self):
|
|
300
|
+
return self.v
|
|
301
|
+
|
|
302
|
+
def setV(self, value):
|
|
303
|
+
self.v = value
|
|
304
|
+
return self
|
|
305
|
+
|
|
299
306
|
def addVf(self, vf: ARLiteral):
|
|
300
307
|
self._vf.append(vf)
|
|
301
308
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from ....M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, ValueList
|
|
2
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ArgumentDirectionEnum
|
|
3
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
4
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
5
|
+
|
|
6
|
+
class SwServiceArg(Identifiable):
|
|
7
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
8
|
+
super().__init__(parent, short_name)
|
|
9
|
+
|
|
10
|
+
self.direction = None # type: ArgumentDirectionEnum
|
|
11
|
+
self.swArraysize = None # type: ValueList
|
|
12
|
+
self.swDataDefProps = None # type: SwDataDefProps
|
|
13
|
+
|
|
14
|
+
def getDirection(self):
|
|
15
|
+
return self.direction
|
|
16
|
+
|
|
17
|
+
def setDirection(self, value):
|
|
18
|
+
self.direction = value
|
|
19
|
+
return self
|
|
20
|
+
|
|
21
|
+
def getSwArraysize(self):
|
|
22
|
+
return self.swArraysize
|
|
23
|
+
|
|
24
|
+
def setSwArraysize(self, value):
|
|
25
|
+
self.swArraysize = value
|
|
26
|
+
return self
|
|
27
|
+
|
|
28
|
+
def getSwDataDefProps(self):
|
|
29
|
+
return self.swDataDefProps
|
|
30
|
+
|
|
31
|
+
def setSwDataDefProps(self, value):
|
|
32
|
+
self.swDataDefProps = value
|
|
33
|
+
return self
|
armodel/models/__init__.py
CHANGED
|
@@ -22,11 +22,14 @@ from .M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import *
|
|
|
22
22
|
from .M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import *
|
|
23
23
|
from .M2.AUTOSARTemplates.CommonStructure import *
|
|
24
24
|
from .M2.AUTOSARTemplates.CommonStructure.Filter import *
|
|
25
|
+
from .M2.AUTOSARTemplates.CommonStructure.FlatMap import *
|
|
25
26
|
from .M2.AUTOSARTemplates.CommonStructure.Implementation import *
|
|
26
27
|
from .M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import *
|
|
27
28
|
from .M2.AUTOSARTemplates.CommonStructure.InternalBehavior import *
|
|
28
29
|
from .M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import *
|
|
29
30
|
from .M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import *
|
|
31
|
+
from .M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.HeapUsage import *
|
|
32
|
+
from .M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.StackUsage import *
|
|
30
33
|
from .M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.MemorySectionUsage import *
|
|
31
34
|
from .M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import *
|
|
32
35
|
from .M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import *
|
|
@@ -133,6 +133,7 @@ class AbstractARXMLParser:
|
|
|
133
133
|
float_value = None
|
|
134
134
|
if (child_element is not None) and (child_element.text is not None):
|
|
135
135
|
float_value = ARFloat()
|
|
136
|
+
self.readARObjectAttributes(child_element, float_value)
|
|
136
137
|
float_value.setValue(child_element.text)
|
|
137
138
|
return float_value
|
|
138
139
|
|
|
@@ -162,7 +163,9 @@ class AbstractARXMLParser:
|
|
|
162
163
|
|
|
163
164
|
def getChildElementOptionalBooleanValue(self, element: ET.Element, key: str) -> Boolean:
|
|
164
165
|
literal = self.getChildElementOptionalLiteral(element, key)
|
|
165
|
-
if
|
|
166
|
+
if literal == None:
|
|
167
|
+
return None
|
|
168
|
+
if literal.getText() == "":
|
|
166
169
|
return None
|
|
167
170
|
bool_value = Boolean()
|
|
168
171
|
bool_value.timestamp = literal.timestamp
|
|
@@ -175,19 +178,6 @@ class AbstractARXMLParser:
|
|
|
175
178
|
return int(m.group(1), 16)
|
|
176
179
|
return int(value)
|
|
177
180
|
|
|
178
|
-
'''
|
|
179
|
-
def getChildElementNumberValue(self, short_name: str, element: ET.Element, key: str) -> int:
|
|
180
|
-
value = self.getChildElement(short_name, element, key)
|
|
181
|
-
return self._convertStringToNumberValue(value)
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
def getChildElementOptionalNumberValue(self, element: ET.Element, key: str) -> int:
|
|
185
|
-
value = self.getChildElementOptionalValue(element, key)
|
|
186
|
-
if (value == None):
|
|
187
|
-
return None
|
|
188
|
-
return self._convertStringToNumberValue(value)
|
|
189
|
-
'''
|
|
190
|
-
|
|
191
181
|
def getChildElementOptionalNumericalValue(self, element: ET.Element, key: str) -> ARNumerical:
|
|
192
182
|
child_element = self.find(element, key)
|
|
193
183
|
if child_element == None:
|