armodel 1.7.1__py3-none-any.whl → 1.7.2__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 (34) hide show
  1. armodel/cli/arxml_dump_cli.py +2 -2
  2. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +3 -3
  3. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +41 -19
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +22 -11
  5. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +26 -9
  6. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +8 -0
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +711 -27
  8. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +0 -3
  9. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +3 -0
  10. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +43 -1
  11. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +41 -3
  12. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -15
  13. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -8
  14. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +44 -1
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +46 -5
  16. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +55 -34
  17. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +170 -23
  18. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +4 -4
  19. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +130 -37
  20. armodel/models/__init__.py +1 -0
  21. armodel/parser/abstract_arxml_parser.py +26 -13
  22. armodel/parser/arxml_parser.py +361 -216
  23. armodel/tests/test_armodel/models/test_datatype.py +4 -4
  24. armodel/tests/test_armodel/models/test_m2_msr.py +5 -5
  25. armodel/tests/test_armodel/parser/test_sw_components.py +1 -1
  26. armodel/tests/test_armodel/parser/test_system.py +0 -1
  27. armodel/writer/abstract_arxml_writer.py +9 -0
  28. armodel/writer/arxml_writer.py +358 -173
  29. {armodel-1.7.1.dist-info → armodel-1.7.2.dist-info}/METADATA +21 -1
  30. {armodel-1.7.1.dist-info → armodel-1.7.2.dist-info}/RECORD +34 -34
  31. {armodel-1.7.1.dist-info → armodel-1.7.2.dist-info}/LICENSE +0 -0
  32. {armodel-1.7.1.dist-info → armodel-1.7.2.dist-info}/WHEEL +0 -0
  33. {armodel-1.7.1.dist-info → armodel-1.7.2.dist-info}/entry_points.txt +0 -0
  34. {armodel-1.7.1.dist-info → armodel-1.7.2.dist-info}/top_level.txt +0 -0
@@ -52,8 +52,8 @@ def show_type(indent: int, data_type: ImplementationDataType):
52
52
  def show_data_type_mapping(indent: int, mapping_set: DataTypeMappingSet):
53
53
  print("%s- Data Mapping Set <%s>:" % (" " * indent, mapping_set.short_name))
54
54
  for mapping in mapping_set.getDataTypeMaps():
55
- print("%s- appl: %s" % (" " * (indent + 2), mapping.application_data_type_ref.value))
56
- print("%s- impl: %s" % (" " * (indent + 4), mapping.implementation_data_type_ref.value))
55
+ print("%s- appl: %s" % (" " * (indent + 2), mapping.applicationDataTypeRef.value))
56
+ print("%s- impl: %s" % (" " * (indent + 4), mapping.implementationDataTypeRef.value))
57
57
 
58
58
  def show_behavior(indent:int, behavior: SwcInternalBehavior):
59
59
  print("%s-Behavior: %s" % (" " * indent, behavior.short_name))
@@ -111,10 +111,10 @@ class AbstractAUTOSAR(CollectableElement):
111
111
  raise ValueError("%s is not ImplementationDataType." % data_type)
112
112
 
113
113
  def addDataTypeMap(self, data_type_map: DataTypeMap):
114
- if (data_type_map.application_data_type_ref is None) or (data_type_map.implementation_data_type_ref is None):
114
+ if (data_type_map.applicationDataTypeRef is None) or (data_type_map.implementationDataTypeRef is None):
115
115
  return
116
- self._appl_impl_type_maps[data_type_map.application_data_type_ref.value] = data_type_map.implementation_data_type_ref.value
117
- self._impl_appl_type_maps[data_type_map.implementation_data_type_ref.value] = data_type_map.application_data_type_ref.value
116
+ self._appl_impl_type_maps[data_type_map.applicationDataTypeRef.value] = data_type_map.implementationDataTypeRef.value
117
+ self._impl_appl_type_maps[data_type_map.implementationDataTypeRef.value] = data_type_map.applicationDataTypeRef.value
118
118
 
119
119
  def convertToImplementationDataType(self, appl_data_type: str) -> ImplementationDataType:
120
120
  if (appl_data_type not in self._appl_impl_type_maps.keys()):
@@ -1,7 +1,7 @@
1
1
  from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
2
2
  from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
3
3
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
4
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean, ARFloat, ARNumerical
4
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean, ARFloat, ARNumerical, TimeValue
5
5
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
6
6
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
7
7
  from ....M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
@@ -128,12 +128,10 @@ class BswCalledEntity(BswModuleEntity):
128
128
  def __init__(self, parent: ARObject, short_name: str):
129
129
  super().__init__(parent, short_name)
130
130
 
131
-
132
131
  class BswSchedulableEntity(BswModuleEntity):
133
132
  def __init__(self, parent: ARObject, short_name: str):
134
133
  super().__init__(parent, short_name)
135
134
 
136
-
137
135
  class BswInterruptEntity(BswModuleEntity):
138
136
  def __init__(self, parent: ARObject, short_name: str):
139
137
  super().__init__(parent, short_name)
@@ -158,43 +156,50 @@ class BswEvent(Identifiable, metaclass=ABCMeta):
158
156
  raise NotImplementedError("BswEvent is an abstract class.")
159
157
  super().__init__(parent, short_name)
160
158
 
161
- self.startsOnEventRef = None # type: RefType
159
+ self.startsOnEventRef = None # type: RefType
162
160
 
161
+ def getStartsOnEventRef(self):
162
+ return self.startsOnEventRef
163
+
164
+ def setStartsOnEventRef(self, value):
165
+ self.startsOnEventRef = value
166
+ return self
163
167
 
164
168
  class BswOperationInvokedEvent(BswEvent):
165
169
  def __init__(self, parent: ARObject, short_name: str):
166
170
  super().__init__(parent, short_name)
167
171
 
168
-
169
172
  class BswScheduleEvent(BswEvent, metaclass=ABCMeta):
170
173
  def __init__(self, parent: ARObject, short_name: str):
171
174
  if type(self) == BswScheduleEvent:
172
175
  raise NotImplementedError("BswScheduleEvent is an abstract class.")
173
176
  super().__init__(parent, short_name)
174
177
 
175
-
176
178
  class BswModeSwitchEvent(BswScheduleEvent):
177
179
  def __init__(self, parent: ARObject, short_name: str):
178
180
  super().__init__(parent, short_name)
179
181
 
180
- self._activation = ""
181
-
182
- @property
183
- def activation(self) -> str:
184
- return self._activation
182
+ self.activation = None
185
183
 
186
- @activation.setter
187
- def activation(self, value: str):
188
- if (value not in ()):
189
- raise ValueError("Invalid activation <%s> of BswModeSwitchEvent <%s>" % (value, self.short_name))
190
- self._activation = value
184
+ def getActivation(self):
185
+ return self.activation
191
186
 
187
+ def setActivation(self, value):
188
+ self.activation = value
189
+ return self
192
190
 
193
191
  class BswTimingEvent(BswScheduleEvent):
194
192
  def __init__(self, parent: ARObject, short_name: str):
195
193
  super().__init__(parent, short_name)
196
194
 
197
- self.period = None # type: ARFloat
195
+ self.period = None # type: TimeValue
196
+
197
+ def getPeriod(self):
198
+ return self.period
199
+
200
+ def setPeriod(self, value):
201
+ self.period = value
202
+ return self
198
203
 
199
204
  @property
200
205
  def periodMs(self) -> int:
@@ -207,22 +212,39 @@ class BswDataReceivedEvent(BswScheduleEvent):
207
212
  def __init__(self, parent: ARObject, short_name: str):
208
213
  super().__init__(parent, short_name)
209
214
 
210
- self.data_ref = None # type: RefType
215
+ self.dataRef = None # type: RefType
216
+
217
+ def getDataRef(self):
218
+ return self.dataRef
211
219
 
220
+ def setDataRef(self, value):
221
+ self.dataRef = value
222
+ return self
212
223
 
213
224
  class BswInternalTriggerOccurredEvent(BswScheduleEvent):
214
225
  def __init__(self, parent: ARObject, short_name: str):
215
226
  super().__init__(parent, short_name)
216
227
 
217
- self.event_source_ref = None # type: RefType
228
+ self.eventSourceRef = None # type: RefType
218
229
 
230
+ def getEventSourceRef(self):
231
+ return self.eventSourceRef
219
232
 
233
+ def setEventSourceRef(self, value):
234
+ self.eventSourceRef = value
235
+ return self
220
236
  class BswModeSwitchAckRequest(ARObject):
221
237
  def __init__(self):
222
238
  super().__init__()
223
239
 
224
240
  self.timeout = None # type: ARFloat
225
241
 
242
+ def getTimeout(self):
243
+ return self.timeout
244
+
245
+ def setTimeout(self, value):
246
+ self.timeout = value
247
+ return self
226
248
 
227
249
  class BswModeSenderPolicy(ARObject):
228
250
  def __init__(self):
@@ -1,7 +1,7 @@
1
1
  from abc import ABCMeta
2
2
  from typing import List
3
3
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical
4
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, Boolean, String
5
5
  from ....M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps
6
6
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
7
7
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
@@ -96,19 +96,30 @@ class ImplementationDataType(AbstractImplementationDataType):
96
96
  def __init__(self, parent: ARObject, short_name: str):
97
97
  super().__init__(parent, short_name)
98
98
 
99
- self.arrayImplPolicy = None
100
- self.arraySize = None
101
- self.arraySizeHandling = None # type: ARLiteral
102
- self.arraySizeSemantics = None # type: ARLiteral
99
+ self.dynamicArraySizeProfile = None # type: String
100
+ self.isStructWithOptionalElement = None # type: Boolean
103
101
 
104
102
  self.subElements = [] # type: List[str]
105
103
  self.symbolProps = None # type: SymbolProps
106
- self._type_emitter = None # type: ARLiteral
104
+ self.typeEmitter = None # type: ARLiteral
107
105
 
108
- self._array_type = None # ImplementationDataType
109
- self._struct_type = None # ImplementationDataType
106
+ #self._array_type = None # ImplementationDataType
107
+ #self._struct_type = None # ImplementationDataType
108
+
109
+ def getDynamicArraySizeProfile(self):
110
+ return self.dynamicArraySizeProfile
111
+
112
+ def setDynamicArraySizeProfile(self, value):
113
+ self.dynamicArraySizeProfile = value
114
+ return self
115
+
116
+ def getIsStructWithOptionalElement(self):
117
+ return self.isStructWithOptionalElement
118
+
119
+ def setIsStructWithOptionalElement(self, value):
120
+ self.isStructWithOptionalElement = value
121
+ return self
110
122
 
111
-
112
123
  def createImplementationDataTypeElement(self, short_name: str) -> ImplementationDataTypeElement:
113
124
  self.subElements.append(short_name)
114
125
  if (short_name not in self.elements):
@@ -131,11 +142,11 @@ class ImplementationDataType(AbstractImplementationDataType):
131
142
  return self
132
143
 
133
144
  def setTypeEmitter(self, emitter: str):
134
- self._type_emitter = emitter
145
+ self.typeEmitter = emitter
135
146
  return self
136
147
 
137
148
  def getTypeEmitter(self) -> str:
138
- return self._type_emitter
149
+ return self.typeEmitter
139
150
 
140
151
  def setStructElementType(self, type: str):
141
152
  self._struct_type = type
@@ -1,7 +1,7 @@
1
1
  from typing import List
2
2
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
3
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
4
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARNumerical, RefType, TRefType
4
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARNumerical, PositiveInteger, RefType, TRefType
5
5
 
6
6
  class ModeDeclaration(Identifiable):
7
7
  def __init__(self, parent: ARObject, short_name: str):
@@ -21,16 +21,33 @@ class ModeRequestTypeMap(ARObject):
21
21
  def __init__(self):
22
22
  super().__init__()
23
23
 
24
- self.implementation_data_type_ref = None # type: RefType
25
- self.mode_group_ref = None # type: RefType
24
+ self.implementationDataTypeRef = None # type: RefType
25
+ self.modeGroupRef = None # type: RefType
26
26
 
27
+ def getImplementationDataTypeRef(self):
28
+ return self.implementationDataTypeRef
29
+
30
+ def setImplementationDataTypeRef(self, value):
31
+ self.implementationDataTypeRef = value
32
+ return self
33
+
34
+ def getModeGroupRef(self):
35
+ return self.modeGroupRef
36
+
37
+ def setModeGroupRef(self, value):
38
+ self.modeGroupRef = value
39
+ return self
27
40
 
28
41
  class ModeDeclarationGroup(Identifiable):
29
42
  def __init__(self, parent: ARObject, short_name: str):
30
43
  super().__init__(parent, short_name)
31
44
 
32
- self._initial_mode_ref = None # type: RefType
33
- self._on_transition_value = None # type: ARNumerical
45
+ self.initialModeRef = None # type: RefType
46
+ self.modeDeclarations = [] # type: ModeDeclaration
47
+ self.modeManagerErrorBehavior = None # type: ModeErrorBehavior
48
+ self.modeTransition = None # type: ModeTransition
49
+ self.modeUserErrorBehavior = None # type: ModeErrorBehavior
50
+ self.onTransitionValue = None # type: PositiveInteger
34
51
 
35
52
  def createModeDeclaration(self, short_name: str) -> ModeDeclaration:
36
53
  if (short_name not in self.elements):
@@ -42,21 +59,21 @@ class ModeDeclarationGroup(Identifiable):
42
59
  return list(sorted(filter(lambda a: isinstance(a, ModeDeclaration), self.elements.values()), key= lambda o:o.short_name))
43
60
 
44
61
  def setInitialModeRef(self, ref: RefType):
45
- self._initial_mode_ref = ref
62
+ self.initialModeRef = ref
46
63
  return self
47
64
 
48
65
  def getInitialModeRef(self) -> RefType:
49
- return self._initial_mode_ref
66
+ return self.initialModeRef
50
67
 
51
68
  def setOnTransitionValue(self, value):
52
69
  if isinstance(value, int):
53
70
  value = ARNumerical()
54
71
  value.setValue(value)
55
- self._on_transition_value = value
72
+ self.onTransitionValue = value
56
73
  return self
57
74
 
58
75
  def getOnTransitionValue(self) -> ARNumerical:
59
- return self._on_transition_value
76
+ return self.onTransitionValue
60
77
 
61
78
 
62
79
  class ModeDeclarationGroupPrototype(Identifiable):
@@ -9,6 +9,7 @@ class MemorySection(Identifiable):
9
9
  super().__init__(parent, short_name)
10
10
 
11
11
  self._alignment = None # type: ARLiteral
12
+ self.memClassSymbol = None # type: ARLiteral
12
13
  self.size = None
13
14
  self.options = [] # type: List[ARLiteral]
14
15
  self.swAddrMethodRef = None # type: RefType
@@ -20,6 +21,13 @@ class MemorySection(Identifiable):
20
21
  def setAlignment(self, value):
21
22
  self.alignment = value
22
23
  return self
24
+
25
+ def getMemClassSymbol(self):
26
+ return self.memClassSymbol
27
+
28
+ def setMemClassSymbol(self, value):
29
+ self.memClassSymbol = value
30
+ return self
23
31
 
24
32
  def getSize(self):
25
33
  return self.size