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
@@ -1,7 +1,7 @@
1
1
  from typing import List
2
2
  from abc import ABCMeta
3
3
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
4
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
4
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, CIdentifier, Identifier, PositiveUnlimitedInteger, String
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.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Limit
@@ -23,18 +23,35 @@ class CompuConst(ARObject):
23
23
  def __init__(self):
24
24
  super().__init__()
25
25
 
26
- self.compu_const_content_type = None # type: CompuConstContent
26
+ self.compuConstContentType = None # type: CompuConstContent
27
27
 
28
+ def getCompuConstContentType(self):
29
+ return self.compuConstContentType
30
+
31
+ def setCompuConstContentType(self, value):
32
+ self.compuConstContentType = value
33
+ return self
28
34
 
29
35
  class Compu(ARObject):
30
36
  def __init__(self):
31
37
  super().__init__()
32
38
 
33
- '''required'''
34
- self.compu_content = None # type: CompuContent
39
+ self.compuContent = None # type: CompuContent
40
+ self.compuDefaultValue = None # type: CompuConst
41
+
42
+ def getCompuContent(self):
43
+ return self.compuContent
44
+
45
+ def setCompuContent(self, value):
46
+ self.compuContent = value
47
+ return self
35
48
 
36
- '''optional'''
37
- self.compu_default_value = None # type: CompuConst
49
+ def getCompuDefaultValue(self):
50
+ return self.compuDefaultValue
51
+
52
+ def setCompuDefaultValue(self, value):
53
+ self.compuDefaultValue = value
54
+ return self
38
55
 
39
56
 
40
57
  class CompuConstContent(ARObject, metaclass=ABCMeta):
@@ -62,6 +79,12 @@ class CompuConstTextContent(CompuConstContent):
62
79
 
63
80
  self.vt = None
64
81
 
82
+ def getVt(self):
83
+ return self.vt
84
+
85
+ def setVt(self, value):
86
+ self.vt = value
87
+ return self
65
88
 
66
89
  class CompuConstNumericContent(CompuConstContent):
67
90
 
@@ -70,6 +93,12 @@ class CompuConstNumericContent(CompuConstContent):
70
93
 
71
94
  self.v = None
72
95
 
96
+ def getV(self):
97
+ return self.v
98
+
99
+ def setV(self, value):
100
+ self.v = value
101
+ return self
73
102
 
74
103
  class CompuScaleContents(ARObject, metaclass=ABCMeta):
75
104
  def __init__(self):
@@ -83,8 +112,14 @@ class CompuScaleConstantContents(CompuScaleContents):
83
112
  def __init__(self):
84
113
  super().__init__()
85
114
 
86
- self.compu_const = None # type: CompuConst
115
+ self.compuConst = None # type: CompuConst
116
+
117
+ def getCompuConst(self):
118
+ return self.compuConst
87
119
 
120
+ def setCompuConst(self, value):
121
+ self.compuConst = value
122
+ return self
88
123
 
89
124
  class CompuRationalCoeffs(ARObject):
90
125
  '''
@@ -95,9 +130,22 @@ class CompuRationalCoeffs(ARObject):
95
130
  def __init__(self):
96
131
  super().__init__()
97
132
 
98
- self.compu_denominator = None # type: CompuNominatorDenominator
99
- self.compu_numerator = None # type: CompuNominatorDenominator
133
+ self.compuDenominator = None # type: CompuNominatorDenominator
134
+ self.compuNumerator = None # type: CompuNominatorDenominator
135
+
136
+ def getCompuDenominator(self):
137
+ return self.compuDenominator
138
+
139
+ def setCompuDenominator(self, value):
140
+ self.compuDenominator = value
141
+ return self
100
142
 
143
+ def getCompuNumerator(self):
144
+ return self.compuNumerator
145
+
146
+ def setCompuNumerator(self, value):
147
+ self.compuNumerator = value
148
+ return self
101
149
 
102
150
  class CompuScaleRationalFormula(CompuScaleContents):
103
151
  '''
@@ -106,8 +154,14 @@ class CompuScaleRationalFormula(CompuScaleContents):
106
154
  def __init__(self):
107
155
  super().__init__()
108
156
 
109
- self.compu_rational_coeffs = None # type: CompuRationalCoeffs
157
+ self.compuRationalCoeffs = None # type: CompuRationalCoeffs
158
+
159
+ def getCompuRationalCoeffs(self):
160
+ return self.compuRationalCoeffs
110
161
 
162
+ def setCompuRationalCoeffs(self, value):
163
+ self.compuRationalCoeffs = value
164
+ return self
111
165
 
112
166
  class CompuNominatorDenominator(ARObject):
113
167
  '''
@@ -131,25 +185,90 @@ class CompuScale(Compu):
131
185
  def __init__(self):
132
186
  super().__init__()
133
187
 
134
- self.symbol = None # type: ARLiteral
135
- self.lowerLimit = None # type: Limit
136
- self.upperLimit = None # type: Limit
137
- self.compuInverseValue = None # type: CompuConst
138
- self.compuScaleContents = None # type: CompuScaleContents
139
- self.short_label = None # type: ARLiteral
188
+ self.a2lDisplayText = None # type: String
189
+ self.compuInverseValue = None # type: CompuConst
190
+ self.compuScaleContents = None # type: CompuScaleContents
191
+ self.desc = None # type: MultiLanguageOverviewParagraph
192
+ self.lowerLimit = None # type: Limit
193
+ self.mask = None # type: PositiveUnlimitedInteger
194
+ self.shortLabel = None # type: Identifier
195
+ self.symbol = None # type: CIdentifier
196
+ self.upperLimit = None # type: Limit
197
+
198
+ def getA2lDisplayText(self):
199
+ return self.a2lDisplayText
200
+
201
+ def setA2lDisplayText(self, value):
202
+ self.a2lDisplayText = value
203
+ return self
204
+
205
+ def getCompuInverseValue(self):
206
+ return self.compuInverseValue
207
+
208
+ def setCompuInverseValue(self, value):
209
+ self.compuInverseValue = value
210
+ return self
211
+
212
+ def getCompuScaleContents(self):
213
+ return self.compuScaleContents
214
+
215
+ def setCompuScaleContents(self, value):
216
+ self.compuScaleContents = value
217
+ return self
218
+
219
+ def getDesc(self):
220
+ return self.desc
140
221
 
222
+ def setDesc(self, value):
223
+ self.desc = value
224
+ return self
225
+
226
+ def getLowerLimit(self):
227
+ return self.lowerLimit
228
+
229
+ def setLowerLimit(self, value):
230
+ self.lowerLimit = value
231
+ return self
232
+
233
+ def getMask(self):
234
+ return self.mask
235
+
236
+ def setMask(self, value):
237
+ self.mask = value
238
+ return self
239
+
240
+ def getShortLabel(self):
241
+ return self.shortLabel
242
+
243
+ def setShortLabel(self, value):
244
+ self.shortLabel = value
245
+ return self
246
+
247
+ def getSymbol(self):
248
+ return self.symbol
249
+
250
+ def setSymbol(self, value):
251
+ self.symbol = value
252
+ return self
253
+
254
+ def getUpperLimit(self):
255
+ return self.upperLimit
256
+
257
+ def setUpperLimit(self, value):
258
+ self.upperLimit = value
259
+ return self
141
260
 
142
261
  class CompuScales(CompuContent):
143
262
  def __init__(self):
144
263
  super().__init__()
145
264
 
146
- self.compu_scales = [] # type: List[CompuScale]
265
+ self.compuScales = [] # type: List[CompuScale]
147
266
 
148
267
  def addCompuScale(self, compu_scale: CompuScale):
149
- self.compu_scales.append(compu_scale)
268
+ self.compuScales.append(compu_scale)
150
269
 
151
270
  def getCompuScales(self) -> List[CompuScale]:
152
- return self.compu_scales
271
+ return self.compuScales
153
272
 
154
273
 
155
274
  class CompuMethod(ARElement):
@@ -158,7 +277,35 @@ class CompuMethod(ARElement):
158
277
  def __init__(self, parent: ARObject, short_name: str):
159
278
  super().__init__(parent, short_name)
160
279
 
161
- self.compu_internal_to_phys = None # type: Compu
162
- self.compu_phys_to_internal = None # type: Compu
163
- self.display_format = None # type: DisplayFormatString
164
- self.unit_ref = None # type: RefType
280
+ self.compuInternalToPhys = None # type: Compu
281
+ self.compuPhysToInternal = None # type: Compu
282
+ self.displayFormat = None # type: DisplayFormatString
283
+ self.unitRef = None # type: RefType
284
+
285
+ def getCompuInternalToPhys(self):
286
+ return self.compuInternalToPhys
287
+
288
+ def setCompuInternalToPhys(self, value):
289
+ self.compuInternalToPhys = value
290
+ return self
291
+
292
+ def getCompuPhysToInternal(self):
293
+ return self.compuPhysToInternal
294
+
295
+ def setCompuPhysToInternal(self, value):
296
+ self.compuPhysToInternal = value
297
+ return self
298
+
299
+ def getDisplayFormat(self):
300
+ return self.displayFormat
301
+
302
+ def setDisplayFormat(self, value):
303
+ self.displayFormat = value
304
+ return self
305
+
306
+ def getUnitRef(self):
307
+ return self.unitRef
308
+
309
+ def setUnitRef(self, value):
310
+ self.unitRef = value
311
+ return self
@@ -8,7 +8,7 @@ class SwAddrMethod(Identifiable):
8
8
  super().__init__(parent, short_name)
9
9
 
10
10
  self.memoryAllocationKeywordPolicy = None # type: ARLiteral
11
- self.option = [] # type: List[ARLiteral]
11
+ self.options = [] # type: List[ARLiteral]
12
12
  self.sectionInitializationPolicy = None # type: ARLiteral
13
13
  self.sectionType = None # type: ARLiteral
14
14
 
@@ -19,11 +19,11 @@ class SwAddrMethod(Identifiable):
19
19
  self.memoryAllocationKeywordPolicy = value
20
20
  return self
21
21
 
22
- def getOption(self):
23
- return self.option
22
+ def getOptions(self):
23
+ return self.options
24
24
 
25
25
  def addOption(self, value):
26
- self.option.append(value)
26
+ self.options.append(value)
27
27
  return self
28
28
 
29
29
  def getSectionInitializationPolicy(self):
@@ -1,6 +1,6 @@
1
1
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
2
2
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
3
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, RefType
3
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, Integer, RefType
4
4
  from ....M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph
5
5
 
6
6
  class SwRecordLayoutV(ARObject):
@@ -16,29 +16,64 @@ class SwRecordLayoutV(ARObject):
16
16
  self.swRecordLayoutVIndex = None # type: ARLiteral
17
17
  self.swRecordLayoutVProp = None # type: ARLiteral
18
18
 
19
- def setShortLabel(self, short_label: ARLiteral):
20
- self.shortLabel = short_label
19
+ def getBaseTypeRef(self):
20
+ return self.baseTypeRef
21
+
22
+ def setBaseTypeRef(self, value):
23
+ self.baseTypeRef = value
24
+ return self
25
+
26
+ def getDesc(self):
27
+ return self.desc
28
+
29
+ def setDesc(self, value):
30
+ self.desc = value
31
+ return self
32
+
33
+ def getShortLabel(self):
34
+ return self.shortLabel
35
+
36
+ def setShortLabel(self, value):
37
+ self.shortLabel = value
21
38
  return self
22
39
 
23
- def setBaseTypeRef(self, ref: RefType):
24
- self.baseTypeRef = ref
40
+ def getSwGenericAxisParamTypeRef(self):
41
+ return self.swGenericAxisParamTypeRef
42
+
43
+ def setSwGenericAxisParamTypeRef(self, value):
44
+ self.swGenericAxisParamTypeRef = value
25
45
  return self
26
46
 
27
- def setSwRecordLayoutVAxis(self, axis: ARNumerical):
28
- self.swRecordLayoutVAxis = axis
47
+ def getSwRecordLayoutVAxis(self):
48
+ return self.swRecordLayoutVAxis
49
+
50
+ def setSwRecordLayoutVAxis(self, value):
51
+ self.swRecordLayoutVAxis = value
29
52
  return self
30
53
 
31
- def setSwRecordLayoutVFixValue(self, value: ARNumerical):
54
+ def getSwRecordLayoutVFixValue(self):
55
+ return self.swRecordLayoutVFixValue
56
+
57
+ def setSwRecordLayoutVFixValue(self, value):
32
58
  self.swRecordLayoutVFixValue = value
33
59
  return self
34
60
 
35
- def setSwRecordLayoutVIndex(self, index: ARLiteral):
36
- self.swRecordLayoutVIndex = index
61
+ def getSwRecordLayoutVIndex(self):
62
+ return self.swRecordLayoutVIndex
63
+
64
+ def setSwRecordLayoutVIndex(self, value):
65
+ self.swRecordLayoutVIndex = value
37
66
  return self
38
67
 
39
- def setSwRecordLayoutVProp(self, prop: ARLiteral):
40
- self.swRecordLayoutVProp = prop
68
+ def getSwRecordLayoutVProp(self):
69
+ return self.swRecordLayoutVProp
70
+
71
+ def setSwRecordLayoutVProp(self, value):
72
+ self.swRecordLayoutVProp = value
41
73
  return self
74
+
75
+
76
+
42
77
 
43
78
  class SwRecordLayoutGroupContent(ARObject):
44
79
  def __init__(self):
@@ -48,6 +83,27 @@ class SwRecordLayoutGroupContent(ARObject):
48
83
  self.swRecordLayoutGroup = None # type: SwRecordLayoutGroup
49
84
  self.swRecordLayoutV = None # type: SwRecordLayoutV
50
85
 
86
+ def getSwRecordLayoutRef(self):
87
+ return self.swRecordLayoutRef
88
+
89
+ def setSwRecordLayoutRef(self, value):
90
+ self.swRecordLayoutRef = value
91
+ return self
92
+
93
+ def getSwRecordLayoutGroup(self):
94
+ return self.swRecordLayoutGroup
95
+
96
+ def setSwRecordLayoutGroup(self, value):
97
+ self.swRecordLayoutGroup = value
98
+ return self
99
+
100
+ def getSwRecordLayoutV(self):
101
+ return self.swRecordLayoutV
102
+
103
+ def setSwRecordLayoutV(self, value):
104
+ self.swRecordLayoutV = value
105
+ return self
106
+
51
107
 
52
108
  class SwRecordLayoutGroup(ARObject):
53
109
  def __init__(self):
@@ -60,53 +116,87 @@ class SwRecordLayoutGroup(ARObject):
60
116
  self.swRecordLayoutComponent = None # type: ARLiteral
61
117
  self.swRecordLayoutGroupAxis = None # type: ARNumerical
62
118
  self.swRecordLayoutGroupContentType = None # type: SwRecordLayoutGroupContent
63
- self.swRecordLayoutGroupIndex = None # type: ARLiteral
64
119
  self.swRecordLayoutGroupFrom = None # type: ARLiteral
120
+ self.swRecordLayoutGroupIndex = None # type: ARLiteral
121
+ self.swRecordLayoutGroupStep = None # type: Integer
65
122
  self.swRecordLayoutGroupTo = None # type: ARLiteral
66
123
 
124
+ def getCategory(self):
125
+ return self.category
67
126
 
68
- def setCategory(self, category: ARLiteral):
69
- self.category = category
127
+ def setCategory(self, value):
128
+ self.category = value
70
129
  return self
71
130
 
72
- def setDesc(self, desc):
73
- self.desc = desc
74
- return self
131
+ def getDesc(self):
132
+ return self.desc
75
133
 
76
- def setShortLabel(self, label: ARLiteral):
77
- self.shortLabel = label
134
+ def setDesc(self, value):
135
+ self.desc = value
78
136
  return self
79
137
 
80
- def setSwGenericAxisParamTypeRef(self, ref: RefType):
81
- self.swGenericAxisParamTypeRef = ref
138
+ def getShortLabel(self):
139
+ return self.shortLabel
140
+
141
+ def setShortLabel(self, value):
142
+ self.shortLabel = value
82
143
  return self
83
144
 
84
- def setSwRecordLayoutComponent(self, component: ARLiteral):
85
- self.swRecordLayoutComponent = component
145
+ def getSwGenericAxisParamTypeRef(self):
146
+ return self.swGenericAxisParamTypeRef
147
+
148
+ def setSwGenericAxisParamTypeRef(self, value):
149
+ self.swGenericAxisParamTypeRef = value
86
150
  return self
87
151
 
88
- def setSwRecordLayoutGroupAxis(self, axis: ARNumerical):
89
- self.swRecordLayoutGroupAxis = axis
152
+ def getSwRecordLayoutComponent(self):
153
+ return self.swRecordLayoutComponent
154
+
155
+ def setSwRecordLayoutComponent(self, value):
156
+ self.swRecordLayoutComponent = value
90
157
  return self
91
158
 
92
- def setSwRecordLayoutGroupIndex(self, index: ARLiteral):
93
- self.swRecordLayoutGroupIndex = index
159
+ def getSwRecordLayoutGroupAxis(self):
160
+ return self.swRecordLayoutGroupAxis
161
+
162
+ def setSwRecordLayoutGroupAxis(self, value):
163
+ self.swRecordLayoutGroupAxis = value
94
164
  return self
95
165
 
96
- def setSwRecordLayoutGroupFrom(self, from_value: ARLiteral):
97
- self.swRecordLayoutGroupFrom = from_value
166
+ def getSwRecordLayoutGroupContentType(self):
167
+ return self.swRecordLayoutGroupContentType
168
+
169
+ def setSwRecordLayoutGroupContentType(self, value):
170
+ self.swRecordLayoutGroupContentType = value
98
171
  return self
99
172
 
100
- def setSwRecordLayoutGroupTo(self, to_value: ARLiteral):
101
- self.swRecordLayoutGroupTo = to_value
173
+ def getSwRecordLayoutGroupFrom(self):
174
+ return self.swRecordLayoutGroupFrom
175
+
176
+ def setSwRecordLayoutGroupFrom(self, value):
177
+ self.swRecordLayoutGroupFrom = value
102
178
  return self
103
179
 
104
- def setSwRecordLayoutGroupContentType(self, content_type: SwRecordLayoutGroupContent):
105
- self.swRecordLayoutGroupContentType = content_type
180
+ def getSwRecordLayoutGroupIndex(self):
181
+ return self.swRecordLayoutGroupIndex
182
+
183
+ def setSwRecordLayoutGroupIndex(self, value):
184
+ self.swRecordLayoutGroupIndex = value
106
185
  return self
107
186
 
187
+ def getSwRecordLayoutGroupStep(self):
188
+ return self.swRecordLayoutGroupStep
108
189
 
190
+ def setSwRecordLayoutGroupStep(self, value):
191
+ self.swRecordLayoutGroupStep = value
192
+ return self
109
193
 
194
+ def getSwRecordLayoutGroupTo(self):
195
+ return self.swRecordLayoutGroupTo
196
+
197
+ def setSwRecordLayoutGroupTo(self, value):
198
+ self.swRecordLayoutGroupTo = value
199
+ return self
110
200
 
111
201
  class SwRecordLayout(ARElement):
112
202
  def __init__(self, parent: ARObject, short_name: str):
@@ -114,6 +204,9 @@ class SwRecordLayout(ARElement):
114
204
 
115
205
  self.swRecordLayoutGroup = None # type: SwRecordLayoutGroup
116
206
 
117
- def setSwRecordLayoutGroup(self, group: SwRecordLayoutGroup):
118
- self.swRecordLayoutGroup = group
119
- return self
207
+ def getSwRecordLayoutGroup(self):
208
+ return self.swRecordLayoutGroup
209
+
210
+ def setSwRecordLayoutGroup(self, value):
211
+ self.swRecordLayoutGroup = value
212
+ return self
@@ -44,6 +44,7 @@ from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTy
44
44
  from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import *
45
45
  from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import *
46
46
  from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PerInstanceMemory import *
47
+ from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import *
47
48
  from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import *
48
49
  from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import *
49
50
  from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.Trigger import *
@@ -1,4 +1,3 @@
1
-
2
1
  from abc import ABCMeta
3
2
  from typing import List
4
3
  from colorama import Fore
@@ -8,15 +7,12 @@ import logging
8
7
  import xml.etree.ElementTree as ET
9
8
 
10
9
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
11
-
12
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, Boolean, Integer, TimeValue
13
-
10
+ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, ARFloat, ARLiteral, ARNumerical, Boolean, Integer, PositiveInteger, TimeValue
14
11
  from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
15
12
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
16
13
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
17
14
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Limit
18
15
 
19
-
20
16
  class AbstractARXMLParser:
21
17
  __metaclass__ = ABCMeta
22
18
 
@@ -49,6 +45,12 @@ class AbstractARXMLParser:
49
45
  else:
50
46
  raise ValueError(error_msg)
51
47
 
48
+ def notImplemented(self, error_msg):
49
+ if (self.options['warning'] == True):
50
+ self.logger.error(Fore.RED + error_msg + Fore.WHITE)
51
+ else:
52
+ raise NotImplementedError(error_msg)
53
+
52
54
  def _raiseWarning(self, error_msg):
53
55
  self.logger.warning(error_msg)
54
56
 
@@ -76,7 +78,7 @@ class AbstractARXMLParser:
76
78
  child_element = self.find(element, key)
77
79
  if (child_element is not None):
78
80
  literal = ARLiteral()
79
- self.readElementAttributes(child_element, literal)
81
+ self.readARObjectAttributes(child_element, literal)
80
82
  literal._value = child_element.text
81
83
  return literal
82
84
  self._raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
@@ -96,7 +98,7 @@ class AbstractARXMLParser:
96
98
  if (child_element is not None):
97
99
  self.logger.debug("getChildElementOptionalLiteral : %s" % child_element.text)
98
100
  literal = ARLiteral()
99
- self.readElementAttributes(child_element, literal)
101
+ self.readARObjectAttributes(child_element, literal)
100
102
  # Patch for empty element <USED-CODE-GENERATOR></USED-CODE-GENERATOR>
101
103
  if child_element.text is None:
102
104
  literal.setValue("")
@@ -113,14 +115,14 @@ class AbstractARXMLParser:
113
115
  if not m:
114
116
  raise ValueError("Invalid RevisionLabelString <%s>" % child_element.text)
115
117
  literal = ARLiteral()
116
- self.readElementAttributes(child_element, literal)
118
+ self.readARObjectAttributes(child_element, literal)
117
119
  # Patch for empty element <USED-CODE-GENERATOR></USED-CODE-GENERATOR>
118
120
  if child_element.text is None:
119
121
  literal.setValue("")
120
122
  else:
121
123
  literal.setValue(child_element.text)
122
124
  return literal
123
-
125
+
124
126
  def _convertStringToBooleanValue(self, value: str) -> bool:
125
127
  if (value == "true"):
126
128
  return True
@@ -191,7 +193,7 @@ class AbstractARXMLParser:
191
193
  if child_element == None:
192
194
  return None
193
195
  numerical = ARNumerical()
194
- self.readElementAttributes(child_element, numerical)
196
+ self.readARObjectAttributes(child_element, numerical)
195
197
  numerical.setValue(child_element.text)
196
198
  return numerical
197
199
 
@@ -200,8 +202,19 @@ class AbstractARXMLParser:
200
202
  if child_element == None:
201
203
  return None
202
204
  numerical = Integer()
203
- self.readElementAttributes(child_element, numerical)
205
+ self.readARObjectAttributes(child_element, numerical)
206
+ numerical.setValue(child_element.text)
207
+ return numerical
208
+
209
+ def getChildElementOptionalPositiveInteger(self, element: ET.Element, key: str) -> PositiveInteger:
210
+ child_element = self.find(element, key)
211
+ if child_element == None:
212
+ return None
213
+ numerical = PositiveInteger()
214
+ self.readARObjectAttributes(child_element, numerical)
204
215
  numerical.setValue(child_element.text)
216
+ if numerical.getValue() < 0:
217
+ raise ValueError("Invalid PositiveInteger <%s>" % child_element.text)
205
218
  return numerical
206
219
 
207
220
  def getChildElementNumericalValueList(self, element: ET.Element, key: str) -> List[ARNumerical]:
@@ -217,7 +230,7 @@ class AbstractARXMLParser:
217
230
  child_element = self.find(element, key)
218
231
  if (child_element is not None):
219
232
  limit = Limit()
220
- self.readElementAttributes(child_element, limit)
233
+ self.readARObjectAttributes(child_element, limit)
221
234
  if ('INTERVAL-TYPE' in child_element.attrib):
222
235
  limit.intervalType = child_element.attrib['INTERVAL-TYPE']
223
236
  else:
@@ -262,7 +275,7 @@ class AbstractARXMLParser:
262
275
  return element.attrib[key]
263
276
  return None
264
277
 
265
- def readElementAttributes(self, element: ET.Element, ar_object: ARObject):
278
+ def readARObjectAttributes(self, element: ET.Element, ar_object: ARObject):
266
279
  ar_object.timestamp = self.readElementOptionalAttrib(element, "T") # read the timestamp
267
280
  ar_object.uuid = self.readElementOptionalAttrib(element, "UUID") # read the uuid
268
281