armodel 1.6.4__py3-none-any.whl → 1.7.0__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_format_cli.py +14 -11
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +1 -1
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +86 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +3 -4
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +3 -1
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +70 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +21 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +24 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +173 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +6 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +237 -28
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +223 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +177 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +37 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +88 -16
- armodel/models/__init__.py +12 -1
- armodel/parser/abstract_arxml_parser.py +50 -16
- armodel/parser/arxml_parser.py +249 -80
- armodel/tests/test_armodel/parser/test_sw_components.py +0 -22
- armodel/tests/test_armodel/parser/test_system.py +2 -2
- armodel/writer/abstract_arxml_writer.py +10 -1
- armodel/writer/arxml_writer.py +215 -58
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/METADATA +15 -1
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/RECORD +28 -24
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/LICENSE +0 -0
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/WHEEL +0 -0
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/entry_points.txt +0 -0
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Describable
|
|
2
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
3
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, RefType, TimeValue
|
|
4
|
+
|
|
5
|
+
class ModeDrivenTransmissionModeCondition(ARObject):
|
|
6
|
+
def __init__(self):
|
|
7
|
+
super().__init__()
|
|
8
|
+
|
|
9
|
+
self.modeDeclarationRef = None # type: RefType
|
|
10
|
+
|
|
11
|
+
def getModeDeclarationRef(self):
|
|
12
|
+
return self.modeDeclarationRef
|
|
13
|
+
|
|
14
|
+
def setModeDeclarationRef(self, value):
|
|
15
|
+
self.modeDeclarationRef = value
|
|
16
|
+
return self
|
|
17
|
+
|
|
18
|
+
class TransmissionModeCondition(ARObject):
|
|
19
|
+
def __init__(self):
|
|
20
|
+
super().__init__()
|
|
21
|
+
|
|
22
|
+
self.dataFilter = None # type: DataFilter
|
|
23
|
+
self.iSignalInIPduRef = None # type: RefType
|
|
24
|
+
|
|
25
|
+
def getDataFilter(self):
|
|
26
|
+
return self.dataFilter
|
|
27
|
+
|
|
28
|
+
def setDataFilter(self, value):
|
|
29
|
+
self.dataFilter = value
|
|
30
|
+
return self
|
|
31
|
+
|
|
32
|
+
def getISignalInIPduRef(self):
|
|
33
|
+
return self.iSignalInIPduRef
|
|
34
|
+
|
|
35
|
+
def setISignalInIPduRef(self, value):
|
|
36
|
+
self.iSignalInIPduRef = value
|
|
37
|
+
return self
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class TimeRangeType(ARObject):
|
|
41
|
+
def __init__(self):
|
|
42
|
+
super().__init__()
|
|
43
|
+
|
|
44
|
+
# type: TimeRangeTypeTolerance
|
|
45
|
+
self.tolerance = None
|
|
46
|
+
self.value = None # type: TimeValue
|
|
47
|
+
|
|
48
|
+
def getTolerance(self):
|
|
49
|
+
return self.tolerance
|
|
50
|
+
|
|
51
|
+
def setTolerance(self, value):
|
|
52
|
+
self.tolerance = value
|
|
53
|
+
return self
|
|
54
|
+
|
|
55
|
+
def getValue(self):
|
|
56
|
+
return self.value
|
|
57
|
+
|
|
58
|
+
def setValue(self, value):
|
|
59
|
+
self.value = value
|
|
60
|
+
return self
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class CyclicTiming(Describable):
|
|
64
|
+
def __init__(self):
|
|
65
|
+
super().__init__()
|
|
66
|
+
|
|
67
|
+
self.timeOffset = None # type: TimeRangeType
|
|
68
|
+
self.timePeriod = None # type: TimeRangeType
|
|
69
|
+
|
|
70
|
+
def getTimeOffset(self):
|
|
71
|
+
return self.timeOffset
|
|
72
|
+
|
|
73
|
+
def setTimeOffset(self, value):
|
|
74
|
+
self.timeOffset = value
|
|
75
|
+
return self
|
|
76
|
+
|
|
77
|
+
def getTimePeriod(self):
|
|
78
|
+
return self.timePeriod
|
|
79
|
+
|
|
80
|
+
def setTimePeriod(self, value):
|
|
81
|
+
self.timePeriod = value
|
|
82
|
+
return self
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
class EventControlledTiming(Describable):
|
|
86
|
+
def __init__(self):
|
|
87
|
+
super().__init__()
|
|
88
|
+
|
|
89
|
+
self.numberOfRepetitions = None # type: Integer
|
|
90
|
+
self.repetitionPeriod = None # type: TimeRangeType
|
|
91
|
+
|
|
92
|
+
def getNumberOfRepetitions(self):
|
|
93
|
+
return self.numberOfRepetitions
|
|
94
|
+
|
|
95
|
+
def setNumberOfRepetitions(self, value):
|
|
96
|
+
self.numberOfRepetitions = value
|
|
97
|
+
return self
|
|
98
|
+
|
|
99
|
+
def getRepetitionPeriod(self):
|
|
100
|
+
return self.repetitionPeriod
|
|
101
|
+
|
|
102
|
+
def setRepetitionPeriod(self, value):
|
|
103
|
+
self.repetitionPeriod = value
|
|
104
|
+
return self
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
class TransmissionModeTiming(ARObject):
|
|
108
|
+
def __init__(self):
|
|
109
|
+
super().__init__()
|
|
110
|
+
|
|
111
|
+
self.cyclicTiming = None # type: CyclicTiming
|
|
112
|
+
# type: EventControlledTiming
|
|
113
|
+
self.eventControlledTiming = None
|
|
114
|
+
|
|
115
|
+
def getCyclicTiming(self):
|
|
116
|
+
return self.cyclicTiming
|
|
117
|
+
|
|
118
|
+
def setCyclicTiming(self, value):
|
|
119
|
+
self.cyclicTiming = value
|
|
120
|
+
return self
|
|
121
|
+
|
|
122
|
+
def getEventControlledTiming(self):
|
|
123
|
+
return self.eventControlledTiming
|
|
124
|
+
|
|
125
|
+
def setEventControlledTiming(self, value):
|
|
126
|
+
self.eventControlledTiming = value
|
|
127
|
+
return self
|
|
128
|
+
|
|
129
|
+
class TransmissionModeDeclaration(ARObject):
|
|
130
|
+
def __init__(self):
|
|
131
|
+
super().__init__()
|
|
132
|
+
|
|
133
|
+
# type: ModeDrivenTransmissionModeCondition
|
|
134
|
+
self.modeDrivenFalseConditions = []
|
|
135
|
+
# type: ModeDrivenTransmissionModeCondition
|
|
136
|
+
self.modeDrivenTrueConditions = []
|
|
137
|
+
# type: TransmissionModeCondition
|
|
138
|
+
self.transmissionModeConditions = []
|
|
139
|
+
# type: TransmissionModeTiming
|
|
140
|
+
self.transmissionModeFalseTiming = None
|
|
141
|
+
# type: TransmissionModeTiming
|
|
142
|
+
self.transmissionModeTrueTiming = None
|
|
143
|
+
|
|
144
|
+
def getModeDrivenFalseConditions(self):
|
|
145
|
+
return self.modeDrivenFalseConditions
|
|
146
|
+
|
|
147
|
+
def addModeDrivenFalseCondition(self, value):
|
|
148
|
+
self.modeDrivenFalseConditions.append(value)
|
|
149
|
+
return self
|
|
150
|
+
|
|
151
|
+
def getModeDrivenTrueConditions(self):
|
|
152
|
+
return self.modeDrivenTrueConditions
|
|
153
|
+
|
|
154
|
+
def addModeDrivenTrueCondition(self, value):
|
|
155
|
+
self.modeDrivenTrueConditions.append(value)
|
|
156
|
+
return self
|
|
157
|
+
|
|
158
|
+
def getTransmissionModeConditions(self):
|
|
159
|
+
return self.transmissionModeConditions
|
|
160
|
+
|
|
161
|
+
def addTransmissionModeCondition(self, value):
|
|
162
|
+
self.transmissionModeConditions.append(value)
|
|
163
|
+
return self
|
|
164
|
+
|
|
165
|
+
def getTransmissionModeFalseTiming(self):
|
|
166
|
+
return self.transmissionModeFalseTiming
|
|
167
|
+
|
|
168
|
+
def setTransmissionModeFalseTiming(self, value):
|
|
169
|
+
self.transmissionModeFalseTiming = value
|
|
170
|
+
return self
|
|
171
|
+
|
|
172
|
+
def getTransmissionModeTrueTiming(self):
|
|
173
|
+
return self.transmissionModeTrueTiming
|
|
174
|
+
|
|
175
|
+
def setTransmissionModeTrueTiming(self, value):
|
|
176
|
+
self.transmissionModeTrueTiming = value
|
|
177
|
+
return self
|
|
@@ -46,3 +46,40 @@ class VariableDataPrototypeInSystemInstanceRef(AtpInstanceRef):
|
|
|
46
46
|
def setTargetDataPrototypeRef(self, value):
|
|
47
47
|
self.targetDataPrototypeRef = value
|
|
48
48
|
return self
|
|
49
|
+
|
|
50
|
+
class ComponentInSystemInstanceRef(AtpInstanceRef):
|
|
51
|
+
def __init__(self):
|
|
52
|
+
super().__init__()
|
|
53
|
+
|
|
54
|
+
self.baseRef = None # type: RefType
|
|
55
|
+
self.contextComponentRefs = [] # type: List[RefType]
|
|
56
|
+
self.contextCompositionRef = None # type: RefType
|
|
57
|
+
self.targetComponentRef = None # type: RefType
|
|
58
|
+
|
|
59
|
+
def getBaseRef(self):
|
|
60
|
+
return self.baseRef
|
|
61
|
+
|
|
62
|
+
def setBaseRef(self, value):
|
|
63
|
+
self.baseRef = value
|
|
64
|
+
return self
|
|
65
|
+
|
|
66
|
+
def getContextComponentRefs(self):
|
|
67
|
+
return self.contextComponentRefs
|
|
68
|
+
|
|
69
|
+
def addContextComponentRef(self, value):
|
|
70
|
+
self.contextComponentRefs.append(value)
|
|
71
|
+
return self
|
|
72
|
+
|
|
73
|
+
def getContextCompositionRef(self):
|
|
74
|
+
return self.contextCompositionRef
|
|
75
|
+
|
|
76
|
+
def setContextCompositionRef(self, value):
|
|
77
|
+
self.contextCompositionRef = value
|
|
78
|
+
return self
|
|
79
|
+
|
|
80
|
+
def getTargetComponentRef(self):
|
|
81
|
+
return self.targetComponentRef
|
|
82
|
+
|
|
83
|
+
def setTargetComponentRef(self, value):
|
|
84
|
+
self.targetComponentRef = value
|
|
85
|
+
return self
|
|
@@ -1,10 +1,48 @@
|
|
|
1
1
|
from typing import List
|
|
2
|
-
from ....M2.AUTOSARTemplates.
|
|
3
|
-
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.
|
|
4
|
-
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
2
|
+
from ....M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef
|
|
3
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
4
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable
|
|
5
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger, RefType, TRefType
|
|
6
|
+
|
|
7
|
+
class SwcToEcuMapping(Identifiable):
|
|
8
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
9
|
+
super().__init__(parent, short_name)
|
|
10
|
+
|
|
11
|
+
self.componentIRefs = [] # type: List[ComponentInSystemInstanceRef]
|
|
12
|
+
self.controlledHwElementRef = None # type: RefType
|
|
13
|
+
self.ecuInstanceRef = None # type: RefType
|
|
14
|
+
self.processingUnitRef = None # type: RefType
|
|
15
|
+
|
|
16
|
+
def getComponentIRefs(self):
|
|
17
|
+
return self.componentIRefs
|
|
18
|
+
|
|
19
|
+
def addComponentIRef(self, value):
|
|
20
|
+
self.componentIRefs.append(value)
|
|
21
|
+
return self
|
|
22
|
+
|
|
23
|
+
def getControlledHwElementRef(self):
|
|
24
|
+
return self.controlledHwElementRef
|
|
25
|
+
|
|
26
|
+
def setControlledHwElementRef(self, value):
|
|
27
|
+
self.controlledHwElementRef = value
|
|
28
|
+
return self
|
|
29
|
+
|
|
30
|
+
def getEcuInstanceRef(self):
|
|
31
|
+
return self.ecuInstanceRef
|
|
32
|
+
|
|
33
|
+
def setEcuInstanceRef(self, value):
|
|
34
|
+
self.ecuInstanceRef = value
|
|
35
|
+
return self
|
|
36
|
+
|
|
37
|
+
def getProcessingUnitRef(self):
|
|
38
|
+
return self.processingUnitRef
|
|
39
|
+
|
|
40
|
+
def setProcessingUnitRef(self, value):
|
|
41
|
+
self.processingUnitRef = value
|
|
42
|
+
return self
|
|
5
43
|
|
|
6
44
|
class SystemMapping(Identifiable):
|
|
7
|
-
def __init__(self, parent, short_name):
|
|
45
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
8
46
|
super().__init__(parent, short_name)
|
|
9
47
|
|
|
10
48
|
self.applicationPartitionToEcuPartitionMappings = []
|
|
@@ -28,7 +66,7 @@ class SystemMapping(Identifiable):
|
|
|
28
66
|
self.swClusterMappings = []
|
|
29
67
|
self.swcToApplicationPartitionMappings = []
|
|
30
68
|
self.swImplMappings = []
|
|
31
|
-
self.swMappings = []
|
|
69
|
+
self.swMappings = [] # type: List[SwcToEcuMapping]
|
|
32
70
|
self.systemSignalGroupToComResourceMappings = []
|
|
33
71
|
self.systemSignalToComResourceMappings = []
|
|
34
72
|
|
|
@@ -182,9 +220,12 @@ class SystemMapping(Identifiable):
|
|
|
182
220
|
def getSwMappings(self):
|
|
183
221
|
return self.swMappings
|
|
184
222
|
|
|
185
|
-
def
|
|
186
|
-
self.
|
|
187
|
-
|
|
223
|
+
def createSwcToEcuMapping(self, short_name: str) -> SwcToEcuMapping:
|
|
224
|
+
if short_name not in self.elements:
|
|
225
|
+
mapping = SwcToEcuMapping(self, short_name)
|
|
226
|
+
self.addElement(mapping)
|
|
227
|
+
self.swMappings.append(mapping)
|
|
228
|
+
return self.getElement(short_name)
|
|
188
229
|
|
|
189
230
|
def getSystemSignalGroupToComResourceMappings(self):
|
|
190
231
|
return self.systemSignalGroupToComResourceMappings
|
|
@@ -200,9 +241,37 @@ class SystemMapping(Identifiable):
|
|
|
200
241
|
self.systemSignalToComResourceMappings.append(value)
|
|
201
242
|
return self
|
|
202
243
|
|
|
244
|
+
class RootSwCompositionPrototype(Identifiable):
|
|
245
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
246
|
+
super().__init__(parent, short_name)
|
|
247
|
+
|
|
248
|
+
self.calibrationParameterValueSetRef = None # type: RefType
|
|
249
|
+
self.flatMapRef = None # type: RefType
|
|
250
|
+
self.softwareCompositionTRef = None # type: TRefType
|
|
251
|
+
|
|
252
|
+
def getCalibrationParameterValueSetRef(self):
|
|
253
|
+
return self.calibrationParameterValueSetRef
|
|
254
|
+
|
|
255
|
+
def setCalibrationParameterValueSetRef(self, value):
|
|
256
|
+
self.calibrationParameterValueSetRef = value
|
|
257
|
+
return self
|
|
258
|
+
|
|
259
|
+
def getFlatMapRef(self):
|
|
260
|
+
return self.flatMapRef
|
|
261
|
+
|
|
262
|
+
def setFlatMapRef(self, value):
|
|
263
|
+
self.flatMapRef = value
|
|
264
|
+
return self
|
|
265
|
+
|
|
266
|
+
def getSoftwareCompositionTRef(self):
|
|
267
|
+
return self.softwareCompositionTRef
|
|
268
|
+
|
|
269
|
+
def setSoftwareCompositionTRef(self, value):
|
|
270
|
+
self.softwareCompositionTRef = value
|
|
271
|
+
return self
|
|
203
272
|
|
|
204
273
|
class System(ARElement):
|
|
205
|
-
def __init__(self, parent, short_name):
|
|
274
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
206
275
|
super().__init__(parent, short_name)
|
|
207
276
|
|
|
208
277
|
self.clientIdDefinitionSetRefs = [] # type: List[RefType]
|
|
@@ -212,12 +281,12 @@ class System(ARElement):
|
|
|
212
281
|
self.interpolationRoutineMappingSetRefs = [] # type: List[RefType]
|
|
213
282
|
self.j1939SharedAddressClusters = []
|
|
214
283
|
self.mappings = [] # type: List[SystemMapping]
|
|
215
|
-
self.pncVectorLength = None
|
|
216
|
-
self.pncVectorOffset = None
|
|
217
|
-
self.rootSoftwareComposition = None
|
|
284
|
+
self.pncVectorLength = None # type: PositiveInteger
|
|
285
|
+
self.pncVectorOffset = None # type: PositiveInteger
|
|
286
|
+
self.rootSoftwareComposition = None # type: RootSwCompositionPrototype
|
|
218
287
|
self.swClusters = []
|
|
219
288
|
self.systemDocumentation = []
|
|
220
|
-
self.systemVersion = None
|
|
289
|
+
self.systemVersion = None # type: RevisionLabelString
|
|
221
290
|
|
|
222
291
|
def getClientIdDefinitionSetRefs(self):
|
|
223
292
|
return self.clientIdDefinitionSetRefs
|
|
@@ -287,9 +356,12 @@ class System(ARElement):
|
|
|
287
356
|
def getRootSoftwareComposition(self):
|
|
288
357
|
return self.rootSoftwareComposition
|
|
289
358
|
|
|
290
|
-
def
|
|
291
|
-
self.
|
|
292
|
-
|
|
359
|
+
def createRootSoftwareComposition(self, short_name) -> RootSwCompositionPrototype:
|
|
360
|
+
if short_name not in self.elements:
|
|
361
|
+
prototype = RootSwCompositionPrototype(self, short_name)
|
|
362
|
+
self.addElement(prototype)
|
|
363
|
+
self.rootSoftwareComposition = prototype
|
|
364
|
+
return self.getElement(short_name)
|
|
293
365
|
|
|
294
366
|
def getSwClusters(self):
|
|
295
367
|
return self.swClusters
|
armodel/models/__init__.py
CHANGED
|
@@ -19,10 +19,13 @@ from .M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import *
|
|
|
19
19
|
from .M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import *
|
|
20
20
|
from .M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import *
|
|
21
21
|
from .M2.AUTOSARTemplates.CommonStructure import *
|
|
22
|
+
from .M2.AUTOSARTemplates.CommonStructure.Filter import *
|
|
22
23
|
from .M2.AUTOSARTemplates.CommonStructure.Implementation import *
|
|
23
24
|
from .M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import *
|
|
24
25
|
from .M2.AUTOSARTemplates.CommonStructure.InternalBehavior import *
|
|
25
26
|
from .M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import *
|
|
27
|
+
from .M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import *
|
|
28
|
+
from .M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.MemorySectionUsage import *
|
|
26
29
|
from .M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import *
|
|
27
30
|
from .M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import *
|
|
28
31
|
from .M2.AUTOSARTemplates.CommonStructure.TriggerDeclaration import *
|
|
@@ -42,9 +45,17 @@ from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PerInstanceMem
|
|
|
42
45
|
from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import *
|
|
43
46
|
from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import *
|
|
44
47
|
from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.Trigger import *
|
|
48
|
+
from .M2.AUTOSARTemplates.SystemTemplate.DataMapping import *
|
|
49
|
+
from .M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import *
|
|
50
|
+
from .M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import *
|
|
51
|
+
from .M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import *
|
|
52
|
+
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import *
|
|
45
53
|
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import *
|
|
54
|
+
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import *
|
|
46
55
|
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import *
|
|
47
56
|
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import *
|
|
48
57
|
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import *
|
|
49
58
|
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import *
|
|
50
|
-
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import *
|
|
59
|
+
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import *
|
|
60
|
+
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import *
|
|
61
|
+
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import *
|
|
@@ -9,7 +9,7 @@ import xml.etree.ElementTree as ET
|
|
|
9
9
|
|
|
10
10
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
11
11
|
|
|
12
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical
|
|
12
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, Boolean, Integer, TimeValue
|
|
13
13
|
|
|
14
14
|
from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
15
15
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
|
|
@@ -73,7 +73,7 @@ class AbstractARXMLParser:
|
|
|
73
73
|
'''
|
|
74
74
|
|
|
75
75
|
def getChildElementLiteral(self, short_name: str, element: ET.Element, key: str) -> ARLiteral:
|
|
76
|
-
child_element =
|
|
76
|
+
child_element = self.find(element, key)
|
|
77
77
|
if (child_element is not None):
|
|
78
78
|
literal = ARLiteral()
|
|
79
79
|
self.readElementAttributes(child_element, literal)
|
|
@@ -82,7 +82,7 @@ class AbstractARXMLParser:
|
|
|
82
82
|
self._raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
|
|
83
83
|
|
|
84
84
|
def getChildElementLiteralValueList(self, element: ET.Element, key: str) -> ARFloat:
|
|
85
|
-
child_elements =
|
|
85
|
+
child_elements = self.findall(element, key)
|
|
86
86
|
results = []
|
|
87
87
|
for child_element in child_elements:
|
|
88
88
|
literal = ARLiteral()
|
|
@@ -91,10 +91,27 @@ class AbstractARXMLParser:
|
|
|
91
91
|
return results
|
|
92
92
|
|
|
93
93
|
def getChildElementOptionalLiteral(self, element: ET.Element, key: str) -> ARLiteral:
|
|
94
|
-
child_element =
|
|
94
|
+
child_element = self.find(element, key)
|
|
95
95
|
literal = None
|
|
96
96
|
if (child_element is not None):
|
|
97
|
-
self.logger.debug("
|
|
97
|
+
self.logger.debug("getChildElementOptionalLiteral : %s" % child_element.text)
|
|
98
|
+
literal = ARLiteral()
|
|
99
|
+
self.readElementAttributes(child_element, literal)
|
|
100
|
+
# Patch for empty element <USED-CODE-GENERATOR></USED-CODE-GENERATOR>
|
|
101
|
+
if child_element.text is None:
|
|
102
|
+
literal.setValue("")
|
|
103
|
+
else:
|
|
104
|
+
literal.setValue(child_element.text)
|
|
105
|
+
return literal
|
|
106
|
+
|
|
107
|
+
def getChildElementOptionalRevisionLabelString(self, element: ET.Element, key: str) -> ARLiteral:
|
|
108
|
+
child_element = self.find(element, key)
|
|
109
|
+
literal = None
|
|
110
|
+
if (child_element is not None) and (child_element.text is not None):
|
|
111
|
+
self.logger.debug("getChildElementOptionalRevisionLabelString : %s" % child_element.text)
|
|
112
|
+
m = re.match(r'[0-9]+\.[0-9]+\.[0-9]+([\._;].*)?', child_element.text)
|
|
113
|
+
if not m:
|
|
114
|
+
raise ValueError("Invalid RevisionLabelString <%s>" % child_element.text)
|
|
98
115
|
literal = ARLiteral()
|
|
99
116
|
self.readElementAttributes(child_element, literal)
|
|
100
117
|
# Patch for empty element <USED-CODE-GENERATOR></USED-CODE-GENERATOR>
|
|
@@ -110,7 +127,7 @@ class AbstractARXMLParser:
|
|
|
110
127
|
return False
|
|
111
128
|
|
|
112
129
|
def getChildElementOptionalFloatValue(self, element: ET.Element, key: str) -> ARFloat:
|
|
113
|
-
child_element =
|
|
130
|
+
child_element = self.find(element, key)
|
|
114
131
|
float_value = None
|
|
115
132
|
if (child_element is not None) and (child_element.text is not None):
|
|
116
133
|
float_value = ARFloat()
|
|
@@ -118,26 +135,34 @@ class AbstractARXMLParser:
|
|
|
118
135
|
return float_value
|
|
119
136
|
|
|
120
137
|
def getChildElementFloatValueList(self, element: ET.Element, key: str) -> ARFloat:
|
|
121
|
-
child_elements =
|
|
138
|
+
child_elements = self.findall(element, key)
|
|
122
139
|
results = []
|
|
123
140
|
for child_element in child_elements:
|
|
124
141
|
float_value = ARFloat()
|
|
125
142
|
float_value.setValue(child_element.text)
|
|
126
143
|
results.append(float_value)
|
|
127
144
|
return results
|
|
145
|
+
|
|
146
|
+
def getChildElementOptionalTimeValue(self, element: ET.Element, key: str) -> TimeValue:
|
|
147
|
+
child_element = self.find(element, key)
|
|
148
|
+
time_value = None
|
|
149
|
+
if (child_element is not None) and (child_element.text is not None):
|
|
150
|
+
time_value = TimeValue()
|
|
151
|
+
time_value.setValue(child_element.text)
|
|
152
|
+
return time_value
|
|
128
153
|
|
|
129
|
-
def getChildElementBooleanValue(self, short_name: str, element: ET.Element, key: str) ->
|
|
154
|
+
def getChildElementBooleanValue(self, short_name: str, element: ET.Element, key: str) -> Boolean:
|
|
130
155
|
literal = self.getChildElementLiteral(short_name, element, key)
|
|
131
|
-
bool_value =
|
|
156
|
+
bool_value = Boolean()
|
|
132
157
|
bool_value.timestamp = literal.timestamp
|
|
133
158
|
bool_value.value = self._convertStringToBooleanValue(literal._value)
|
|
134
159
|
return bool_value
|
|
135
160
|
|
|
136
|
-
def getChildElementOptionalBooleanValue(self, element: ET.Element, key: str) ->
|
|
161
|
+
def getChildElementOptionalBooleanValue(self, element: ET.Element, key: str) -> Boolean:
|
|
137
162
|
literal = self.getChildElementOptionalLiteral(element, key)
|
|
138
163
|
if (literal == None):
|
|
139
164
|
return None
|
|
140
|
-
bool_value =
|
|
165
|
+
bool_value = Boolean()
|
|
141
166
|
bool_value.timestamp = literal.timestamp
|
|
142
167
|
bool_value.setValue(literal.getValue())
|
|
143
168
|
return bool_value
|
|
@@ -162,16 +187,25 @@ class AbstractARXMLParser:
|
|
|
162
187
|
'''
|
|
163
188
|
|
|
164
189
|
def getChildElementOptionalNumericalValue(self, element: ET.Element, key: str) -> ARNumerical:
|
|
165
|
-
child_element =
|
|
190
|
+
child_element = self.find(element, key)
|
|
166
191
|
if child_element == None:
|
|
167
192
|
return None
|
|
168
193
|
numerical = ARNumerical()
|
|
169
194
|
self.readElementAttributes(child_element, numerical)
|
|
170
195
|
numerical.setValue(child_element.text)
|
|
171
196
|
return numerical
|
|
197
|
+
|
|
198
|
+
def getChildElementOptionalIntegerValue(self, element: ET.Element, key: str) -> Integer:
|
|
199
|
+
child_element = self.find(element, key)
|
|
200
|
+
if child_element == None:
|
|
201
|
+
return None
|
|
202
|
+
numerical = Integer()
|
|
203
|
+
self.readElementAttributes(child_element, numerical)
|
|
204
|
+
numerical.setValue(child_element.text)
|
|
205
|
+
return numerical
|
|
172
206
|
|
|
173
207
|
def getChildElementNumericalValueList(self, element: ET.Element, key: str) -> List[ARNumerical]:
|
|
174
|
-
child_elements =
|
|
208
|
+
child_elements = self.findall(element, key)
|
|
175
209
|
results = []
|
|
176
210
|
for child_element in child_elements:
|
|
177
211
|
numerical = ARNumerical()
|
|
@@ -180,7 +214,7 @@ class AbstractARXMLParser:
|
|
|
180
214
|
return results
|
|
181
215
|
|
|
182
216
|
def getChildLimitElement(self, element: ET.Element, key: str) -> Limit:
|
|
183
|
-
child_element =
|
|
217
|
+
child_element = self.find(element, key)
|
|
184
218
|
if (child_element is not None):
|
|
185
219
|
limit = Limit()
|
|
186
220
|
self.readElementAttributes(child_element, limit)
|
|
@@ -199,13 +233,13 @@ class AbstractARXMLParser:
|
|
|
199
233
|
return ref
|
|
200
234
|
|
|
201
235
|
def getChildElementRefType(self, short_name: str, element: ET.Element, key: str) -> RefType:
|
|
202
|
-
child_element =
|
|
236
|
+
child_element = self.find(element, key)
|
|
203
237
|
if (child_element is not None):
|
|
204
238
|
return self._getChildElementRefTypeDestAndValue(child_element)
|
|
205
239
|
self._raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
|
|
206
240
|
|
|
207
241
|
def getChildElementOptionalRefType(self, element:ET.Element, key: str) -> RefType:
|
|
208
|
-
child_element =
|
|
242
|
+
child_element = self.find(element, key)
|
|
209
243
|
if (child_element is not None):
|
|
210
244
|
return self._getChildElementRefTypeDestAndValue(child_element)
|
|
211
245
|
return None
|