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.
- armodel/cli/arxml_dump_cli.py +2 -2
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +3 -3
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +41 -19
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +22 -11
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +26 -9
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +8 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +711 -27
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +0 -3
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +3 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +43 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +41 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -15
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +44 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +46 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +55 -34
- armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +170 -23
- armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +4 -4
- armodel/models/M2/MSR/DataDictionary/RecordLayout.py +130 -37
- armodel/models/__init__.py +1 -0
- armodel/parser/abstract_arxml_parser.py +26 -13
- armodel/parser/arxml_parser.py +361 -216
- armodel/tests/test_armodel/models/test_datatype.py +4 -4
- armodel/tests/test_armodel/models/test_m2_msr.py +5 -5
- armodel/tests/test_armodel/parser/test_sw_components.py +1 -1
- armodel/tests/test_armodel/parser/test_system.py +0 -1
- armodel/writer/abstract_arxml_writer.py +9 -0
- armodel/writer/arxml_writer.py +358 -173
- {armodel-1.7.1.dist-info → armodel-1.7.2.dist-info}/METADATA +21 -1
- {armodel-1.7.1.dist-info → armodel-1.7.2.dist-info}/RECORD +34 -34
- {armodel-1.7.1.dist-info → armodel-1.7.2.dist-info}/LICENSE +0 -0
- {armodel-1.7.1.dist-info → armodel-1.7.2.dist-info}/WHEEL +0 -0
- {armodel-1.7.1.dist-info → armodel-1.7.2.dist-info}/entry_points.txt +0 -0
- {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.
|
|
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
|
-
|
|
34
|
-
self.
|
|
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
|
-
|
|
37
|
-
self.
|
|
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.
|
|
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.
|
|
99
|
-
self.
|
|
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.
|
|
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.
|
|
135
|
-
self.
|
|
136
|
-
self.
|
|
137
|
-
self.
|
|
138
|
-
self.
|
|
139
|
-
self.
|
|
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.
|
|
265
|
+
self.compuScales = [] # type: List[CompuScale]
|
|
147
266
|
|
|
148
267
|
def addCompuScale(self, compu_scale: CompuScale):
|
|
149
|
-
self.
|
|
268
|
+
self.compuScales.append(compu_scale)
|
|
150
269
|
|
|
151
270
|
def getCompuScales(self) -> List[CompuScale]:
|
|
152
|
-
return self.
|
|
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.
|
|
162
|
-
self.
|
|
163
|
-
self.
|
|
164
|
-
self.
|
|
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.
|
|
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
|
|
23
|
-
return self.
|
|
22
|
+
def getOptions(self):
|
|
23
|
+
return self.options
|
|
24
24
|
|
|
25
25
|
def addOption(self, value):
|
|
26
|
-
self.
|
|
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
|
|
20
|
-
self.
|
|
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
|
|
24
|
-
self.
|
|
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
|
|
28
|
-
self.swRecordLayoutVAxis
|
|
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
|
|
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
|
|
36
|
-
self.swRecordLayoutVIndex
|
|
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
|
|
40
|
-
self.swRecordLayoutVProp
|
|
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,
|
|
69
|
-
self.category =
|
|
127
|
+
def setCategory(self, value):
|
|
128
|
+
self.category = value
|
|
70
129
|
return self
|
|
71
130
|
|
|
72
|
-
def
|
|
73
|
-
self.desc
|
|
74
|
-
return self
|
|
131
|
+
def getDesc(self):
|
|
132
|
+
return self.desc
|
|
75
133
|
|
|
76
|
-
def
|
|
77
|
-
self.
|
|
134
|
+
def setDesc(self, value):
|
|
135
|
+
self.desc = value
|
|
78
136
|
return self
|
|
79
137
|
|
|
80
|
-
def
|
|
81
|
-
self.
|
|
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
|
|
85
|
-
self.
|
|
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
|
|
89
|
-
self.
|
|
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
|
|
93
|
-
self.
|
|
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
|
|
97
|
-
self.
|
|
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
|
|
101
|
-
self.
|
|
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
|
|
105
|
-
self.
|
|
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
|
|
118
|
-
self.swRecordLayoutGroup
|
|
119
|
-
|
|
207
|
+
def getSwRecordLayoutGroup(self):
|
|
208
|
+
return self.swRecordLayoutGroup
|
|
209
|
+
|
|
210
|
+
def setSwRecordLayoutGroup(self, value):
|
|
211
|
+
self.swRecordLayoutGroup = value
|
|
212
|
+
return self
|
armodel/models/__init__.py
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|