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.
Files changed (40) hide show
  1. armodel/cli/arxml_dump_cli.py +1 -1
  2. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +42 -19
  3. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +104 -30
  4. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +12 -16
  5. armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +70 -0
  6. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +12 -9
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +29 -22
  8. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +33 -0
  9. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +10 -0
  10. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +23 -0
  11. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +93 -0
  12. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +39 -5
  13. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +26 -2
  14. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +48 -6
  15. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +5 -5
  16. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +21 -1
  17. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +12 -0
  18. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +8 -0
  19. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +196 -5
  20. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +11 -2
  21. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +36 -21
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +10 -1
  23. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +16 -1
  24. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +34 -3
  25. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +7 -0
  26. armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +33 -0
  27. armodel/models/__init__.py +3 -0
  28. armodel/parser/abstract_arxml_parser.py +4 -14
  29. armodel/parser/arxml_parser.py +347 -180
  30. armodel/tests/test_armodel/models/test_ar_object.py +6 -2
  31. armodel/tests/test_armodel/models/test_port_interface.py +4 -4
  32. armodel/tests/test_armodel/parser/test_parse_bswmd.py +48 -48
  33. armodel/writer/abstract_arxml_writer.py +1 -0
  34. armodel/writer/arxml_writer.py +351 -226
  35. {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/METADATA +15 -2
  36. {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/RECORD +40 -34
  37. {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/LICENSE +0 -0
  38. {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/WHEEL +0 -0
  39. {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/entry_points.txt +0 -0
  40. {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.handle_termination_and_restart = None # type: str
228
- self.supports_multiple_instantiation = None # type: ARBoolean
229
- self.explicit_inter_runnable_variables = [] # type: List[VariableDataPrototype]
230
- self.implicit_inter_runnable_variables = [] # type: List[VariableDataPrototype]
231
- self.per_instance_memories = [] # type: List[PerInstanceMemory]
232
- self.per_instance_parameters = [] # type: List[ParameterDataPrototype]
233
- self.port_api_options = [] # type: List[PortAPIOption]
234
- self.included_data_type_sets = [] # type: List[IncludedDataTypeSet]
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.explicit_inter_runnable_variables
246
+ return self.explicitInterRunnableVariables
238
247
 
239
248
  def getImplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
240
- return self.implicit_inter_runnable_variables
249
+ return self.implicitInterRunnableVariables
241
250
 
242
251
  def getPerInstanceMemories(self) -> List[PerInstanceMemory]:
243
- return self.per_instance_memories
252
+ return self.perInstanceMemories
244
253
 
245
254
  def getPerInstanceParameters(self) -> List[ParameterDataPrototype]:
246
- return self.per_instance_parameters
255
+ return self.perInstanceParameters
247
256
 
248
257
  def addPortAPIOption(self, option: PortAPIOption):
249
- self.port_api_options.append(option)
258
+ self.portAPIOptions.append(option)
250
259
 
251
260
  def getPortAPIOptions(self) -> List[PortAPIOption]:
252
- return self.port_api_options
261
+ return self.portAPIOptions
253
262
 
254
263
  def addIncludedDataTypeSet(self, set: IncludedDataTypeSet):
255
- self.included_data_type_sets.append(set)
264
+ self.includedDataTypeSets.append(set)
256
265
 
257
266
  def getIncludedDataTypeSets(self) -> List[IncludedDataTypeSet]:
258
- return self.included_data_type_sets
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.explicit_inter_runnable_variables.append(prototype)
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.implicit_inter_runnable_variables.append(prototype)
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.per_instance_memories.append(memory)
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.per_instance_parameters.append(prototype)
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.sw_arraysize = None # type: ValueList
25
- self.unit_ref = None # type: RefType
26
- self.sw_values_phys = None # type: SwValues
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
@@ -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 (literal == None):
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: