armodel 1.7.1__py3-none-any.whl → 1.7.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- armodel/cli/arxml_dump_cli.py +3 -3
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +3 -3
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +81 -36
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +104 -30
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +12 -16
- armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +70 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +12 -9
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +22 -11
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +29 -22
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +26 -9
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +33 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +10 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +8 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +23 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +93 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +39 -5
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +735 -27
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +48 -6
- armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +5 -5
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +20 -3
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +3 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +55 -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/Composition/__init__.py +8 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +239 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +56 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +91 -55
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +10 -1
- armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +186 -24
- armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +34 -3
- armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +4 -4
- armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +7 -0
- armodel/models/M2/MSR/DataDictionary/RecordLayout.py +130 -37
- armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +33 -0
- armodel/models/__init__.py +4 -0
- armodel/parser/abstract_arxml_parser.py +30 -27
- armodel/parser/arxml_parser.py +683 -371
- armodel/tests/test_armodel/models/test_ar_object.py +6 -2
- 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/models/test_port_interface.py +4 -4
- armodel/tests/test_armodel/parser/test_parse_bswmd.py +48 -48
- 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 +10 -0
- armodel/writer/arxml_writer.py +668 -358
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/METADATA +34 -1
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/RECORD +54 -48
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/LICENSE +0 -0
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/WHEEL +0 -0
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.1.dist-info → armodel-1.7.3.dist-info}/top_level.txt +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
2
|
from typing import List
|
|
3
3
|
|
|
4
|
+
from .....M2.AUTOSARTemplates.CommonStructure import TextValueSpecification
|
|
4
5
|
from .....M2.AUTOSARTemplates.CommonStructure.TriggerDeclaration import Trigger
|
|
5
|
-
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
6
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable
|
|
6
7
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
7
|
-
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical
|
|
8
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ArgumentDirectionEnum, PositiveInteger
|
|
8
9
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ParameterDataPrototype, VariableDataPrototype, AutosarDataPrototype
|
|
9
10
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
|
|
10
11
|
from .....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroupPrototype
|
|
@@ -90,6 +91,48 @@ class InvalidationPolicy(ARObject):
|
|
|
90
91
|
def setHandleInvalid(self, value):
|
|
91
92
|
self.handleInvalid = value
|
|
92
93
|
return self
|
|
94
|
+
|
|
95
|
+
class MetaDataItem(ARObject):
|
|
96
|
+
def __init__(self):
|
|
97
|
+
super().__init__()
|
|
98
|
+
|
|
99
|
+
self.length = None # type: PositiveInteger
|
|
100
|
+
self.metaDataItemType = None # type: TextValueSpecification
|
|
101
|
+
|
|
102
|
+
def getLength(self):
|
|
103
|
+
return self.length
|
|
104
|
+
|
|
105
|
+
def setLength(self, value):
|
|
106
|
+
self.length = value
|
|
107
|
+
return self
|
|
108
|
+
|
|
109
|
+
def getMetaDataItemType(self):
|
|
110
|
+
return self.metaDataItemType
|
|
111
|
+
|
|
112
|
+
def setMetaDataItemType(self, value):
|
|
113
|
+
self.metaDataItemType = value
|
|
114
|
+
return self
|
|
115
|
+
|
|
116
|
+
class MetaDataItemSet(ARObject):
|
|
117
|
+
def __init__(self):
|
|
118
|
+
super().__init__()
|
|
119
|
+
|
|
120
|
+
self.dataElementRefs = [] # type: List[RefType]
|
|
121
|
+
self.metaDataItems = [] # type: List[MetaDataItem]
|
|
122
|
+
|
|
123
|
+
def getDataElementRefs(self):
|
|
124
|
+
return self.dataElementRefs
|
|
125
|
+
|
|
126
|
+
def addDataElementRef(self, value):
|
|
127
|
+
self.dataElementRefs.append(value)
|
|
128
|
+
return self
|
|
129
|
+
|
|
130
|
+
def getMetaDataItems(self):
|
|
131
|
+
return self.metaDataItems
|
|
132
|
+
|
|
133
|
+
def addMetaDataItem(self, value):
|
|
134
|
+
self.metaDataItems.append(value)
|
|
135
|
+
return self
|
|
93
136
|
|
|
94
137
|
class SenderReceiverInterface(DataInterface):
|
|
95
138
|
def __init__(self, parent: ARObject, short_name: str):
|
|
@@ -140,8 +183,24 @@ class SenderReceiverInterface(DataInterface):
|
|
|
140
183
|
class ArgumentDataPrototype(AutosarDataPrototype):
|
|
141
184
|
def __init__(self, parent: ARObject, short_name: str):
|
|
142
185
|
super().__init__(parent, short_name)
|
|
143
|
-
|
|
144
|
-
self.
|
|
186
|
+
|
|
187
|
+
self.direction = None # type: ArgumentDirectionEnum
|
|
188
|
+
# type: ServerArgumentImplPolicyEnum
|
|
189
|
+
self.serverArgumentImplPolicy = None
|
|
190
|
+
|
|
191
|
+
def getDirection(self):
|
|
192
|
+
return self.direction
|
|
193
|
+
|
|
194
|
+
def setDirection(self, value):
|
|
195
|
+
self.direction = value
|
|
196
|
+
return self
|
|
197
|
+
|
|
198
|
+
def getServerArgumentImplPolicy(self):
|
|
199
|
+
return self.serverArgumentImplPolicy
|
|
200
|
+
|
|
201
|
+
def setServerArgumentImplPolicy(self, value):
|
|
202
|
+
self.serverArgumentImplPolicy = value
|
|
203
|
+
return self
|
|
145
204
|
|
|
146
205
|
class ApplicationError(Identifiable):
|
|
147
206
|
def __init__(self, parent: ARObject, short_name: str):
|
|
@@ -244,4 +303,179 @@ class ModeSwitchInterface(PortInterface):
|
|
|
244
303
|
return self.elements[short_name]
|
|
245
304
|
|
|
246
305
|
def getModeGroups(self) -> List[ModeDeclarationGroupPrototype]:
|
|
247
|
-
return list(sorted(filter(lambda c: isinstance(c, ModeDeclarationGroupPrototype), self.elements.values()), key= lambda o: o.short_name))
|
|
306
|
+
return list(sorted(filter(lambda c: isinstance(c, ModeDeclarationGroupPrototype), self.elements.values()), key= lambda o: o.short_name))
|
|
307
|
+
|
|
308
|
+
class PortInterfaceMapping(Identifiable, metaclass = ABCMeta):
|
|
309
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
310
|
+
if type(self) == PortInterface:
|
|
311
|
+
raise NotImplementedError("PortInterfaceMapping is an abstract class.")
|
|
312
|
+
super().__init__(parent, short_name)
|
|
313
|
+
|
|
314
|
+
class ClientServerApplicationErrorMapping(ARObject):
|
|
315
|
+
def __init__(self):
|
|
316
|
+
super().__init__()
|
|
317
|
+
|
|
318
|
+
self.firstApplicationErrorRef = None # type: RefType
|
|
319
|
+
self.secondApplicationErrorRef = None # type: RefType
|
|
320
|
+
|
|
321
|
+
def getFirstApplicationErrorRef(self):
|
|
322
|
+
return self.firstApplicationErrorRef
|
|
323
|
+
|
|
324
|
+
def setFirstApplicationErrorRef(self, value):
|
|
325
|
+
self.firstApplicationErrorRef = value
|
|
326
|
+
return self
|
|
327
|
+
|
|
328
|
+
def getSecondApplicationErrorRef(self):
|
|
329
|
+
return self.secondApplicationErrorRef
|
|
330
|
+
|
|
331
|
+
def setSecondApplicationErrorRef(self, value):
|
|
332
|
+
self.secondApplicationErrorRef = value
|
|
333
|
+
return self
|
|
334
|
+
|
|
335
|
+
class ClientServerOperationMapping(ARObject):
|
|
336
|
+
def __init__(self):
|
|
337
|
+
super().__init__()
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
self.argumentMappings = [] # type: List[DataPrototypeMapping]
|
|
341
|
+
self.firstOperationRef = None # type: RefType
|
|
342
|
+
self.firstToSecondDataTransformationRef = None # type: RefType
|
|
343
|
+
self.secondOperationRef = None # type: RefType
|
|
344
|
+
|
|
345
|
+
def getArgumentMappings(self):
|
|
346
|
+
return self.argumentMappings
|
|
347
|
+
|
|
348
|
+
def addArgumentMapping(self, value):
|
|
349
|
+
self.argumentMappings.append(value)
|
|
350
|
+
return self
|
|
351
|
+
|
|
352
|
+
def getFirstOperationRef(self):
|
|
353
|
+
return self.firstOperationRef
|
|
354
|
+
|
|
355
|
+
def setFirstOperationRef(self, value):
|
|
356
|
+
self.firstOperationRef = value
|
|
357
|
+
return self
|
|
358
|
+
|
|
359
|
+
def getFirstToSecondDataTransformationRef(self):
|
|
360
|
+
return self.firstToSecondDataTransformationRef
|
|
361
|
+
|
|
362
|
+
def setFirstToSecondDataTransformationRef(self, value):
|
|
363
|
+
self.firstToSecondDataTransformationRef = value
|
|
364
|
+
return self
|
|
365
|
+
|
|
366
|
+
def getSecondOperationRef(self):
|
|
367
|
+
return self.secondOperationRef
|
|
368
|
+
|
|
369
|
+
def setSecondOperationRef(self, value):
|
|
370
|
+
self.secondOperationRef = value
|
|
371
|
+
return self
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
class DataPrototypeMapping(ARObject):
|
|
375
|
+
def __init__(self):
|
|
376
|
+
super().__init__()
|
|
377
|
+
|
|
378
|
+
self.firstDataPrototypeRef = None # type: RefType
|
|
379
|
+
self.firstToSecondDataTransformationRef = None # type: RefType
|
|
380
|
+
self.secondDataPrototypeRef = None # type: RefType
|
|
381
|
+
self.secondToFirstDataTransformationRef = None # type: RefType
|
|
382
|
+
self.subElementMappings = [] # type: List[SubElementMapping]
|
|
383
|
+
self.textTableMappings = [] # type: List[TextTableMapping]
|
|
384
|
+
|
|
385
|
+
def getFirstDataPrototypeRef(self):
|
|
386
|
+
return self.firstDataPrototypeRef
|
|
387
|
+
|
|
388
|
+
def setFirstDataPrototypeRef(self, value):
|
|
389
|
+
self.firstDataPrototypeRef = value
|
|
390
|
+
return self
|
|
391
|
+
|
|
392
|
+
def getFirstToSecondDataTransformationRef(self):
|
|
393
|
+
return self.firstToSecondDataTransformationRef
|
|
394
|
+
|
|
395
|
+
def setFirstToSecondDataTransformationRef(self, value):
|
|
396
|
+
self.firstToSecondDataTransformationRef = value
|
|
397
|
+
return self
|
|
398
|
+
|
|
399
|
+
def getSecondDataPrototypeRef(self):
|
|
400
|
+
return self.secondDataPrototypeRef
|
|
401
|
+
|
|
402
|
+
def setSecondDataPrototypeRef(self, value):
|
|
403
|
+
self.secondDataPrototypeRef = value
|
|
404
|
+
return self
|
|
405
|
+
|
|
406
|
+
def getSecondToFirstDataTransformationRef(self):
|
|
407
|
+
return self.secondToFirstDataTransformationRef
|
|
408
|
+
|
|
409
|
+
def setSecondToFirstDataTransformationRef(self, value):
|
|
410
|
+
self.secondToFirstDataTransformationRef = value
|
|
411
|
+
return self
|
|
412
|
+
|
|
413
|
+
def getSubElementMappings(self):
|
|
414
|
+
return self.subElementMappings
|
|
415
|
+
|
|
416
|
+
def setSubElementMappings(self, value):
|
|
417
|
+
self.subElementMappings = value
|
|
418
|
+
return self
|
|
419
|
+
|
|
420
|
+
def getTextTableMappings(self):
|
|
421
|
+
return self.textTableMappings
|
|
422
|
+
|
|
423
|
+
def setTextTableMappings(self, value):
|
|
424
|
+
self.textTableMappings = value
|
|
425
|
+
return self
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
class ClientServerInterfaceMapping(PortInterfaceMapping):
|
|
430
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
431
|
+
super().__init__(parent, short_name)
|
|
432
|
+
|
|
433
|
+
# type: ClientServerApplicationErrorMapping
|
|
434
|
+
self.errorMappings = []
|
|
435
|
+
# type: ClientServerOperationMapping
|
|
436
|
+
self.operationMappings = []
|
|
437
|
+
|
|
438
|
+
def getErrorMappings(self):
|
|
439
|
+
return self.errorMappings
|
|
440
|
+
|
|
441
|
+
def setErrorMappings(self, value):
|
|
442
|
+
self.errorMappings = value
|
|
443
|
+
return self
|
|
444
|
+
|
|
445
|
+
def getOperationMappings(self):
|
|
446
|
+
return self.operationMappings
|
|
447
|
+
|
|
448
|
+
def setOperationMappings(self, value):
|
|
449
|
+
self.operationMappings = value
|
|
450
|
+
return self
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
class VariableAndParameterInterfaceMapping(PortInterfaceMapping):
|
|
454
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
455
|
+
super().__init__(parent, short_name)
|
|
456
|
+
|
|
457
|
+
self.dataMappings = [] # type: List[DataPrototypeMapping]
|
|
458
|
+
|
|
459
|
+
def getDataMappings(self):
|
|
460
|
+
return self.dataMappings
|
|
461
|
+
|
|
462
|
+
def addDataMapping(self, value):
|
|
463
|
+
self.dataMappings.append(value)
|
|
464
|
+
return self
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
class PortInterfaceMappingSet(ARElement):
|
|
468
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
469
|
+
super().__init__(parent, short_name)
|
|
470
|
+
|
|
471
|
+
self.portInterfaceMappings = [] # type: List[PortInterfaceMapping]
|
|
472
|
+
|
|
473
|
+
def getPortInterfaceMappings(self):
|
|
474
|
+
return self.portInterfaceMappings
|
|
475
|
+
|
|
476
|
+
def createVariableAndParameterInterfaceMapping(self, short_name):
|
|
477
|
+
if (short_name not in self.elements):
|
|
478
|
+
mapping = VariableAndParameterInterfaceMapping(self, short_name)
|
|
479
|
+
self.addElement(mapping)
|
|
480
|
+
self.portInterfaceMappings.append(mapping)
|
|
481
|
+
return self.getElement(short_name)
|
armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from typing import List
|
|
2
|
-
from .....M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import NvBlockNeeds, RoleBasedDataAssignment, ServiceNeeds
|
|
2
|
+
from .....M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagnosticCommunicationManagerNeeds, DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds, EcuStateMgrUserNeeds, NvBlockNeeds, RoleBasedDataAssignment, ServiceNeeds
|
|
3
3
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
4
4
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Identifier, RefType
|
|
5
5
|
from .....M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import ServiceDependency
|
|
@@ -24,7 +24,6 @@ class RoleBasedPortAssignment(ARObject):
|
|
|
24
24
|
self.role = value
|
|
25
25
|
return self
|
|
26
26
|
|
|
27
|
-
|
|
28
27
|
class SwcServiceDependency(ServiceDependency):
|
|
29
28
|
def __init__(self, parent: ARObject, short_name: str):
|
|
30
29
|
super().__init__(parent, short_name)
|
|
@@ -46,12 +45,63 @@ class SwcServiceDependency(ServiceDependency):
|
|
|
46
45
|
|
|
47
46
|
def createNvBlockNeeds(self, short_name: str) -> NvBlockNeeds:
|
|
48
47
|
if (short_name not in self.elements):
|
|
49
|
-
|
|
50
|
-
self.
|
|
51
|
-
return self.
|
|
52
|
-
|
|
48
|
+
needs = NvBlockNeeds(self, short_name)
|
|
49
|
+
self.addElement(needs)
|
|
50
|
+
return self.getElement(short_name)
|
|
51
|
+
|
|
52
|
+
def createDiagnosticCommunicationManagerNeeds(self, short_name: str) -> DiagnosticCommunicationManagerNeeds:
|
|
53
|
+
if (short_name not in self.elements):
|
|
54
|
+
needs = DiagnosticCommunicationManagerNeeds(self, short_name)
|
|
55
|
+
self.addElement(needs)
|
|
56
|
+
return self.getElement(short_name)
|
|
57
|
+
|
|
58
|
+
def createDiagnosticRoutineNeeds(self, short_name: str) -> DiagnosticRoutineNeeds:
|
|
59
|
+
if (short_name not in self.elements):
|
|
60
|
+
needs = DiagnosticRoutineNeeds(self, short_name)
|
|
61
|
+
self.addElement(needs)
|
|
62
|
+
return self.getElement(short_name)
|
|
63
|
+
|
|
64
|
+
def createDiagnosticValueNeeds(self, short_name: str) -> DiagnosticValueNeeds:
|
|
65
|
+
if (short_name not in self.elements):
|
|
66
|
+
needs = DiagnosticValueNeeds(self, short_name)
|
|
67
|
+
self.addElement(needs)
|
|
68
|
+
return self.getElement(short_name)
|
|
69
|
+
|
|
70
|
+
def createDiagnosticEventNeeds(self, short_name: str) -> DiagnosticEventNeeds:
|
|
71
|
+
if (short_name not in self.elements):
|
|
72
|
+
needs = DiagnosticEventNeeds(self, short_name)
|
|
73
|
+
self.addElement(needs)
|
|
74
|
+
return self.getElement(short_name)
|
|
75
|
+
|
|
76
|
+
def createCryptoServiceNeeds(self, short_name: str) -> CryptoServiceNeeds:
|
|
77
|
+
if (short_name not in self.elements):
|
|
78
|
+
needs = CryptoServiceNeeds(self, short_name)
|
|
79
|
+
self.addElement(needs)
|
|
80
|
+
return self.getElement(short_name)
|
|
81
|
+
|
|
82
|
+
def createEcuStateMgrUserNeeds(self, short_name: str) -> EcuStateMgrUserNeeds:
|
|
83
|
+
if (short_name not in self.elements):
|
|
84
|
+
needs = EcuStateMgrUserNeeds(self, short_name)
|
|
85
|
+
self.addElement(needs)
|
|
86
|
+
return self.getElement(short_name)
|
|
87
|
+
|
|
53
88
|
def getNvBlockNeeds(self) -> List[NvBlockNeeds]:
|
|
54
89
|
return sorted(filter(lambda c: isinstance(c, NvBlockNeeds), self.elements.values()), key=lambda e: e.short_name)
|
|
90
|
+
|
|
91
|
+
def getDiagnosticCommunicationManagerNeeds(self) -> List[DiagnosticCommunicationManagerNeeds]:
|
|
92
|
+
return sorted(filter(lambda c: isinstance(c, DiagnosticCommunicationManagerNeeds), self.elements.values()), key=lambda e: e.short_name)
|
|
93
|
+
|
|
94
|
+
def getDiagnosticRoutineNeeds(self) -> List[DiagnosticRoutineNeeds]:
|
|
95
|
+
return sorted(filter(lambda c: isinstance(c, DiagnosticRoutineNeeds), self.elements.values()), key=lambda e: e.short_name)
|
|
96
|
+
|
|
97
|
+
def getDiagnosticEventNeeds(self) -> List[DiagnosticEventNeeds]:
|
|
98
|
+
return sorted(filter(lambda c: isinstance(c, DiagnosticEventNeeds), self.elements.values()), key=lambda e: e.short_name)
|
|
99
|
+
|
|
100
|
+
def getCryptoServiceNeeds(self) -> List[CryptoServiceNeeds]:
|
|
101
|
+
return sorted(filter(lambda c: isinstance(c, CryptoServiceNeeds), self.elements.values()), key=lambda e: e.short_name)
|
|
102
|
+
|
|
103
|
+
def getEcuStateMgrUserNeeds(self) -> List[EcuStateMgrUserNeeds]:
|
|
104
|
+
return sorted(filter(lambda c: isinstance(c, EcuStateMgrUserNeeds), self.elements.values()), key=lambda e: e.short_name)
|
|
55
105
|
|
|
56
106
|
def getServiceNeeds(self) -> List[ServiceNeeds]:
|
|
57
107
|
return sorted(filter(lambda c: isinstance(c, ServiceNeeds), self.elements.values()), key=lambda e: e.short_name)
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
from typing import Dict, List
|
|
2
2
|
|
|
3
|
+
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AccessCount import AbstractAccessPoint
|
|
3
4
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption
|
|
4
5
|
from .....M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
|
|
5
6
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ParameterDataPrototype, VariableDataPrototype
|
|
6
7
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
7
8
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PerInstanceMemory import PerInstanceMemory
|
|
8
|
-
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent, TimingEvent
|
|
9
|
+
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import AsynchronousServerCallReturnsEvent, DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent, TimingEvent
|
|
9
10
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import SwcServiceDependency
|
|
10
|
-
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, RefType, ARBoolean
|
|
11
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, Boolean, RefType, ARBoolean
|
|
11
12
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
|
|
12
13
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
|
|
13
14
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import ModeAccessPoint, ModeSwitchPoint
|
|
@@ -27,12 +28,8 @@ class RunnableEntityArgument(ARObject):
|
|
|
27
28
|
def setSymbol(self, value):
|
|
28
29
|
self.symbol = value
|
|
29
30
|
return self
|
|
30
|
-
|
|
31
|
-
class
|
|
32
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
33
|
-
super().__init__(parent, short_name)
|
|
34
|
-
|
|
35
|
-
class AsynchronousServerCallResultPoint(ServerCallPoint):
|
|
31
|
+
|
|
32
|
+
class AsynchronousServerCallResultPoint(AbstractAccessPoint):
|
|
36
33
|
def __init__(self, parent: ARObject, short_name: str):
|
|
37
34
|
super().__init__(parent, short_name)
|
|
38
35
|
|
|
@@ -43,7 +40,11 @@ class AsynchronousServerCallResultPoint(ServerCallPoint):
|
|
|
43
40
|
|
|
44
41
|
def setAsynchronousServerCallPointRef(self, value):
|
|
45
42
|
self.asynchronousServerCallPointRef = value
|
|
46
|
-
return self
|
|
43
|
+
return self
|
|
44
|
+
|
|
45
|
+
class AsynchronousServerCallPoint(ServerCallPoint):
|
|
46
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
47
|
+
super().__init__(parent, short_name)
|
|
47
48
|
|
|
48
49
|
class SynchronousServerCallPoint(ServerCallPoint):
|
|
49
50
|
def __init__(self, parent: ARObject, short_name: str):
|
|
@@ -63,6 +64,7 @@ class RunnableEntity(ExecutableEntity):
|
|
|
63
64
|
super().__init__(parent, short_name)
|
|
64
65
|
|
|
65
66
|
self.arguments = [] # type: List[RunnableEntityArgument]
|
|
67
|
+
self.asynchronousServerCallResultPoints = [] # type: List[AsynchronousServerCallResultPoint]
|
|
66
68
|
self.canBeInvokedConcurrently = None # type: ARBoolean
|
|
67
69
|
self.dataReadAccesses = {} # type: Dict[str, VariableAccess]
|
|
68
70
|
self.dataReceivePointByArguments = {} # type: Dict[str, VariableAccess]
|
|
@@ -92,7 +94,7 @@ class RunnableEntity(ExecutableEntity):
|
|
|
92
94
|
def addArgument(self, value):
|
|
93
95
|
self.arguments.append(value)
|
|
94
96
|
return self
|
|
95
|
-
|
|
97
|
+
|
|
96
98
|
def getCanBeInvokedConcurrently(self):
|
|
97
99
|
return self.canBeInvokedConcurrently
|
|
98
100
|
|
|
@@ -148,29 +150,42 @@ class RunnableEntity(ExecutableEntity):
|
|
|
148
150
|
def createParameterAccess(self, short_name: str) -> ParameterAccess:
|
|
149
151
|
if (short_name not in self.elements):
|
|
150
152
|
access = ParameterAccess(self, short_name)
|
|
151
|
-
self.
|
|
152
|
-
return self.
|
|
153
|
+
self.addElement(access)
|
|
154
|
+
return self.getElement(short_name)
|
|
153
155
|
|
|
154
156
|
def createSynchronousServerCallPoint(self, short_name: str) -> SynchronousServerCallPoint:
|
|
155
157
|
if (short_name not in self.serverCallPoints):
|
|
156
|
-
|
|
157
|
-
self.
|
|
158
|
-
return self.
|
|
158
|
+
point = SynchronousServerCallPoint(self, short_name)
|
|
159
|
+
self.addElement(point)
|
|
160
|
+
return self.getElement(short_name)
|
|
161
|
+
#self.serverCallPoints[short_name] = server_call_point
|
|
162
|
+
#return self.serverCallPoints[short_name]
|
|
159
163
|
|
|
160
164
|
def createAsynchronousServerCallPoint(self, short_name: str) -> AsynchronousServerCallPoint:
|
|
161
165
|
if (short_name not in self.serverCallPoints):
|
|
162
|
-
|
|
163
|
-
self.
|
|
164
|
-
return self.
|
|
166
|
+
point = AsynchronousServerCallPoint(self, short_name)
|
|
167
|
+
self.addElement(point)
|
|
168
|
+
return self.getElement(short_name)
|
|
169
|
+
#self.serverCallPoints[short_name] = server_call_point
|
|
170
|
+
#return self.serverCallPoints[short_name]
|
|
171
|
+
|
|
172
|
+
def createAsynchronousServerCallResultPoint(self, short_name: str) -> AsynchronousServerCallResultPoint:
|
|
173
|
+
if (short_name not in self.serverCallPoints):
|
|
174
|
+
point = AsynchronousServerCallResultPoint(self, short_name)
|
|
175
|
+
self.addElement(point)
|
|
176
|
+
return self.getElement(short_name)
|
|
165
177
|
|
|
166
|
-
def getSynchronousServerCallPoint(self) -> List[
|
|
167
|
-
return filter(lambda
|
|
178
|
+
def getSynchronousServerCallPoint(self) -> List[SynchronousServerCallPoint]:
|
|
179
|
+
return list(sorted(filter(lambda a: isinstance(a, SynchronousServerCallPoint), self.elements.values()), key= lambda o:o.getShortName()))
|
|
168
180
|
|
|
169
|
-
def getAsynchronousServerCallPoint(self) -> List[
|
|
170
|
-
return filter(lambda
|
|
181
|
+
def getAsynchronousServerCallPoint(self) -> List[AsynchronousServerCallPoint]:
|
|
182
|
+
return list(sorted(filter(lambda a: isinstance(a, AsynchronousServerCallPoint), self.elements.values()), key= lambda o:o.getShortName()))
|
|
183
|
+
|
|
184
|
+
def getAsynchronousServerCallResultPoints(self) -> List[AsynchronousServerCallResultPoint]:
|
|
185
|
+
return list(sorted(filter(lambda a: isinstance(a, AsynchronousServerCallResultPoint), self.elements.values()), key= lambda o:o.getShortName()))
|
|
171
186
|
|
|
172
187
|
def getServerCallPoints(self) -> List[ServerCallPoint]:
|
|
173
|
-
return sorted(self.
|
|
188
|
+
return list(sorted(filter(lambda a: isinstance(a, ServerCallPoint), self.elements.values()), key= lambda o:o.getShortName()))
|
|
174
189
|
|
|
175
190
|
def createInternalTriggeringPoint(self, short_name: str) -> InternalTriggeringPoint:
|
|
176
191
|
if (short_name not in self.elements):
|
|
@@ -209,74 +224,89 @@ class SwcInternalBehavior(InternalBehavior):
|
|
|
209
224
|
def __init__(self, parent: ARObject, short_name: str):
|
|
210
225
|
super().__init__(parent, short_name)
|
|
211
226
|
|
|
212
|
-
self.
|
|
213
|
-
self.
|
|
214
|
-
self.
|
|
215
|
-
self.
|
|
216
|
-
self.
|
|
217
|
-
self.
|
|
218
|
-
self.
|
|
219
|
-
self.
|
|
227
|
+
self.arTypedPerInstanceMemories = [] # type: List[VariableDataPrototype]
|
|
228
|
+
self.events = [] # type: List[RTEEvent]
|
|
229
|
+
self.exclusiveAreaPolicies = [] # type: List[SwcExclusiveAreaPolicy]
|
|
230
|
+
self.explicitInterRunnableVariables = [] # type: List[VariableDataPrototype]
|
|
231
|
+
self.handleTerminationAndRestart = None # type: str
|
|
232
|
+
self.implicitInterRunnableVariables = [] # type: List[VariableDataPrototype]
|
|
233
|
+
self.includedDataTypeSets = [] # type: List[IncludedDataTypeSet]
|
|
234
|
+
self.includedModeDeclarationGroupSets = [] # type: List[IncludedModeDeclarationGroupSet]
|
|
235
|
+
self.instantiationDataDefProps = [] # type: List[InstantiationDataDefProps]
|
|
236
|
+
self.perInstanceMemories = [] # type: List[PerInstanceMemory]
|
|
237
|
+
self.perInstanceParameters = [] # type: List[ParameterDataPrototype]
|
|
238
|
+
self.portAPIOptions = [] # type: List[PortAPIOption]
|
|
239
|
+
self.runnables = [] # type: List[RunnableEntity]
|
|
240
|
+
self.serviceDependencies = [] # type: List[SwcServiceDependency]
|
|
241
|
+
self.sharedParameters = [] # type: List[ParameterDataPrototype]
|
|
242
|
+
self.supportsMultipleInstantiation = None # type: Boolean
|
|
243
|
+
self.variationPointProxies = [] # type: VariationPointProxy
|
|
220
244
|
|
|
221
245
|
def getExplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
|
|
222
|
-
return self.
|
|
246
|
+
return self.explicitInterRunnableVariables
|
|
223
247
|
|
|
224
248
|
def getImplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
|
|
225
|
-
return self.
|
|
249
|
+
return self.implicitInterRunnableVariables
|
|
226
250
|
|
|
227
251
|
def getPerInstanceMemories(self) -> List[PerInstanceMemory]:
|
|
228
|
-
return self.
|
|
252
|
+
return self.perInstanceMemories
|
|
229
253
|
|
|
230
254
|
def getPerInstanceParameters(self) -> List[ParameterDataPrototype]:
|
|
231
|
-
return self.
|
|
255
|
+
return self.perInstanceParameters
|
|
232
256
|
|
|
233
257
|
def addPortAPIOption(self, option: PortAPIOption):
|
|
234
|
-
self.
|
|
258
|
+
self.portAPIOptions.append(option)
|
|
235
259
|
|
|
236
260
|
def getPortAPIOptions(self) -> List[PortAPIOption]:
|
|
237
|
-
return self.
|
|
261
|
+
return self.portAPIOptions
|
|
238
262
|
|
|
239
263
|
def addIncludedDataTypeSet(self, set: IncludedDataTypeSet):
|
|
240
|
-
self.
|
|
264
|
+
self.includedDataTypeSets.append(set)
|
|
241
265
|
|
|
242
266
|
def getIncludedDataTypeSets(self) -> List[IncludedDataTypeSet]:
|
|
243
|
-
return self.
|
|
267
|
+
return self.includedDataTypeSets
|
|
244
268
|
|
|
245
269
|
def createOperationInvokedEvent(self, short_name: str) -> OperationInvokedEvent:
|
|
246
270
|
if (short_name not in self.elements):
|
|
247
271
|
event = OperationInvokedEvent(self, short_name)
|
|
248
|
-
self.
|
|
249
|
-
return self.
|
|
272
|
+
self.addElement(event)
|
|
273
|
+
return self.getElement(short_name)
|
|
250
274
|
|
|
251
275
|
def createTimingEvent(self, short_name: str) -> TimingEvent:
|
|
252
276
|
if (short_name not in self.elements):
|
|
253
277
|
event = TimingEvent(self, short_name)
|
|
254
|
-
self.
|
|
255
|
-
return self.
|
|
278
|
+
self.addElement(event)
|
|
279
|
+
return self.getElement(short_name)
|
|
256
280
|
|
|
257
281
|
def createInitEvent(self, short_name: str) -> InitEvent:
|
|
258
282
|
if (short_name not in self.elements):
|
|
259
283
|
event = InitEvent(self, short_name)
|
|
260
|
-
self.
|
|
261
|
-
return self.
|
|
284
|
+
self.addElement(event)
|
|
285
|
+
return self.getElement(short_name)
|
|
286
|
+
|
|
287
|
+
def createAsynchronousServerCallReturnsEvent(self, short_name: str) -> AsynchronousServerCallReturnsEvent:
|
|
288
|
+
if (short_name not in self.elements):
|
|
289
|
+
event = AsynchronousServerCallReturnsEvent(self, short_name)
|
|
290
|
+
self.addElement(event)
|
|
291
|
+
return self.getElement(short_name)
|
|
262
292
|
|
|
263
293
|
def createDataReceivedEvent(self, short_name: str) -> DataReceivedEvent:
|
|
264
294
|
if (short_name not in self.elements):
|
|
265
295
|
event = DataReceivedEvent(self, short_name)
|
|
266
|
-
self.
|
|
267
|
-
return self.
|
|
296
|
+
self.addElement(event)
|
|
297
|
+
return self.getElement(short_name)
|
|
268
298
|
|
|
269
299
|
def createSwcModeSwitchEvent(self, short_name: str) -> SwcModeSwitchEvent:
|
|
270
300
|
if (short_name not in self.elements):
|
|
271
301
|
event = SwcModeSwitchEvent(self, short_name)
|
|
272
|
-
self.
|
|
273
|
-
return self.
|
|
302
|
+
self.addElement(event)
|
|
303
|
+
return self.getElement(short_name)
|
|
274
304
|
|
|
275
305
|
def createInternalTriggerOccurredEvent(self, short_name: str) -> InternalTriggerOccurredEvent:
|
|
276
306
|
if (short_name not in self.elements):
|
|
277
307
|
event = InternalTriggerOccurredEvent(self, short_name)
|
|
278
|
-
self.
|
|
279
|
-
return self.
|
|
308
|
+
self.addElement(event)
|
|
309
|
+
return self.getElement(short_name)
|
|
280
310
|
|
|
281
311
|
def createSwcServiceDependency(self, short_name: str) -> SwcServiceDependency:
|
|
282
312
|
if (short_name not in self.elements):
|
|
@@ -317,28 +347,28 @@ class SwcInternalBehavior(InternalBehavior):
|
|
|
317
347
|
if (short_name not in self.elements):
|
|
318
348
|
prototype = VariableDataPrototype(self, short_name)
|
|
319
349
|
self.elements[short_name] = prototype
|
|
320
|
-
self.
|
|
350
|
+
self.explicitInterRunnableVariables.append(prototype)
|
|
321
351
|
return self.elements[short_name]
|
|
322
352
|
|
|
323
353
|
def createImplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
|
|
324
354
|
if (short_name not in self.elements):
|
|
325
355
|
prototype = VariableDataPrototype(self, short_name)
|
|
326
356
|
self.elements[short_name] = prototype
|
|
327
|
-
self.
|
|
357
|
+
self.implicitInterRunnableVariables.append(prototype)
|
|
328
358
|
return self.elements[short_name]
|
|
329
359
|
|
|
330
360
|
def createPerInstanceMemory(self, short_name: str) -> PerInstanceMemory:
|
|
331
361
|
if (short_name not in self.elements):
|
|
332
362
|
memory = PerInstanceMemory(self, short_name)
|
|
333
363
|
self.elements[short_name] = memory
|
|
334
|
-
self.
|
|
364
|
+
self.perInstanceMemories.append(memory)
|
|
335
365
|
return self.elements[short_name]
|
|
336
366
|
|
|
337
367
|
def createPerInstanceParameter(self, short_name: str) -> ParameterDataPrototype:
|
|
338
368
|
if (short_name not in self.elements):
|
|
339
369
|
prototype = ParameterDataPrototype(self, short_name)
|
|
340
370
|
self.elements[short_name] = prototype
|
|
341
|
-
self.
|
|
371
|
+
self.perInstanceParameters.append(prototype)
|
|
342
372
|
return self.elements[short_name]
|
|
343
373
|
|
|
344
374
|
def getVariableDataPrototypes(self) -> List[VariableDataPrototype]:
|
|
@@ -356,3 +386,9 @@ class SwcInternalBehavior(InternalBehavior):
|
|
|
356
386
|
def getRunnableEntity(self, short_name) -> RunnableEntity:
|
|
357
387
|
return self.elements[short_name]
|
|
358
388
|
|
|
389
|
+
def getSupportsMultipleInstantiation(self):
|
|
390
|
+
return self.supportsMultipleInstantiation
|
|
391
|
+
|
|
392
|
+
def setSupportsMultipleInstantiation(self, value):
|
|
393
|
+
self.supportsMultipleInstantiation = value
|
|
394
|
+
return self
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
|
+
|
|
2
3
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
|
|
3
4
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
5
|
+
from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationDirectionType
|
|
4
6
|
|
|
5
7
|
class DataMapping(ARObject, metaclass = ABCMeta):
|
|
6
8
|
def __init__(self):
|
|
@@ -18,16 +20,23 @@ class DataMapping(ARObject, metaclass = ABCMeta):
|
|
|
18
20
|
self.introduction = value
|
|
19
21
|
return self
|
|
20
22
|
|
|
21
|
-
|
|
22
23
|
class SenderReceiverToSignalMapping(DataMapping):
|
|
23
24
|
def __init__(self):
|
|
24
25
|
super().__init__()
|
|
25
26
|
|
|
27
|
+
self.communicationDirection = None # type: CommunicationDirectionType
|
|
26
28
|
self.dataElementIRef = None
|
|
27
29
|
self.senderToSignalTextTableMapping = None
|
|
28
30
|
self.signalToReceiverTextTableMapping = None
|
|
29
31
|
self.systemSignalRef = None
|
|
30
32
|
|
|
33
|
+
def getCommunicationDirection(self):
|
|
34
|
+
return self.communicationDirection
|
|
35
|
+
|
|
36
|
+
def setCommunicationDirection(self, value):
|
|
37
|
+
self.communicationDirection = value
|
|
38
|
+
return self
|
|
39
|
+
|
|
31
40
|
def getDataElementIRef(self):
|
|
32
41
|
return self.dataElementIRef
|
|
33
42
|
|