armodel 1.7.0__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 +53 -16
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +41 -19
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +14 -14
- 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/ECUCDescriptionTemplate.py +1 -1
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +91 -14
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +17 -4
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +78 -11
- armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +5 -0
- 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 +56 -35
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +1 -1
- armodel/models/M2/MSR/AsamHdo/AdminData.py +34 -8
- 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/M2/MSR/Documentation/Annotation.py +1 -1
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +54 -0
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +9 -0
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +25 -0
- armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +33 -5
- armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +15 -2
- armodel/models/M2/MSR/Documentation/__init__.py +1 -1
- armodel/models/__init__.py +4 -1
- armodel/parser/abstract_arxml_parser.py +31 -15
- armodel/parser/arxml_parser.py +456 -237
- armodel/tests/test_armodel/models/test_ar_ref.py +7 -4
- 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 +10 -1
- armodel/tests/test_armodel/parser/test_system.py +0 -1
- armodel/writer/abstract_arxml_writer.py +17 -8
- armodel/writer/arxml_writer.py +436 -195
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/METADATA +29 -1
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/RECORD +47 -43
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/LICENSE +0 -0
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/WHEEL +0 -0
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
2
|
from typing import List
|
|
3
|
-
from
|
|
3
|
+
from ..MSR.Documentation.TextModel.BlockElements import DocumentationBlock
|
|
4
4
|
from ...M2.MSR.Documentation.Annotation import Annotation
|
|
5
5
|
from ...M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
|
|
6
6
|
from ...M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from typing import Dict, List
|
|
2
|
-
|
|
3
|
-
from
|
|
2
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Identifier, RefType, ReferrableSubtypesEnum
|
|
3
|
+
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
4
4
|
from .....M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming
|
|
5
5
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType, ServiceSwComponentType, SwComponentType, ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, EcuAbstractionSwComponentType, SensorActuatorSwComponentType
|
|
6
6
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
|
|
@@ -11,13 +11,13 @@ from .....M2.MSR.AsamHdo.ComputationMethod import CompuMethod
|
|
|
11
11
|
from .....M2.MSR.DataDictionary.AuxillaryObjects import SwAddrMethod
|
|
12
12
|
from .....M2.MSR.DataDictionary.RecordLayout import SwRecordLayout
|
|
13
13
|
from .....M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
14
|
+
from .....M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
|
|
14
15
|
from .....M2.AUTOSARTemplates.CommonStructure.Implementation import Implementation
|
|
15
16
|
from .....M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
|
|
16
17
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
17
|
-
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement
|
|
18
|
-
from .....M2.AUTOSARTemplates.GenericStructure.
|
|
18
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement, Identifiable, Referrable
|
|
19
|
+
from .....M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
|
|
19
20
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType
|
|
20
|
-
from .....M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
|
|
21
21
|
from .....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup
|
|
22
22
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
|
|
23
23
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
|
|
@@ -36,15 +36,78 @@ from .....M2.AUTOSARTemplates.SystemTemplate import System
|
|
|
36
36
|
from .....M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import NmConfig
|
|
37
37
|
from .....M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig
|
|
38
38
|
|
|
39
|
+
class ReferenceBase(ARObject):
|
|
40
|
+
def __init__(self):
|
|
41
|
+
super().__init__()
|
|
42
|
+
|
|
43
|
+
self.globalElements = [] # type: List[ReferrableSubtypesEnum]
|
|
44
|
+
self.globalInPackageRefs = [] # type: List[RefType]
|
|
45
|
+
self.isDefault = None # type: Boolean
|
|
46
|
+
self.isGlobal = None # type: Boolean
|
|
47
|
+
self.BaseIsThisPackage = None # type: Boolean
|
|
48
|
+
self.packageRef = None # type: List[RefType]
|
|
49
|
+
self.shortLabel = None # type: Identifier
|
|
50
|
+
|
|
51
|
+
def getGlobalElements(self):
|
|
52
|
+
return self.globalElements
|
|
53
|
+
|
|
54
|
+
def addGlobalElement(self, value):
|
|
55
|
+
self.globalElements.append(value)
|
|
56
|
+
return self
|
|
57
|
+
|
|
58
|
+
def getGlobalInPackageRefs(self):
|
|
59
|
+
return self.globalInPackageRefs
|
|
60
|
+
|
|
61
|
+
def addGlobalInPackageRef(self, value):
|
|
62
|
+
self.globalInPackageRefs.append(value)
|
|
63
|
+
return self
|
|
64
|
+
|
|
65
|
+
def getIsDefault(self):
|
|
66
|
+
return self.isDefault
|
|
67
|
+
|
|
68
|
+
def setIsDefault(self, value):
|
|
69
|
+
self.isDefault = value
|
|
70
|
+
return self
|
|
71
|
+
|
|
72
|
+
def getIsGlobal(self):
|
|
73
|
+
return self.isGlobal
|
|
74
|
+
|
|
75
|
+
def setIsGlobal(self, value):
|
|
76
|
+
self.isGlobal = value
|
|
77
|
+
return self
|
|
78
|
+
|
|
79
|
+
def getBaseIsThisPackage(self):
|
|
80
|
+
return self.BaseIsThisPackage
|
|
81
|
+
|
|
82
|
+
def setBaseIsThisPackage(self, value):
|
|
83
|
+
self.BaseIsThisPackage = value
|
|
84
|
+
return self
|
|
85
|
+
|
|
86
|
+
def getPackageRef(self):
|
|
87
|
+
return self.packageRef
|
|
88
|
+
|
|
89
|
+
def setPackageRef(self, value):
|
|
90
|
+
self.packageRef = value
|
|
91
|
+
return self
|
|
92
|
+
|
|
93
|
+
def getShortLabel(self):
|
|
94
|
+
return self.shortLabel
|
|
95
|
+
|
|
96
|
+
def setShortLabel(self, value):
|
|
97
|
+
self.shortLabel = value
|
|
98
|
+
return self
|
|
99
|
+
|
|
100
|
+
|
|
39
101
|
class ARPackage(Identifiable, CollectableElement):
|
|
40
102
|
def __init__(self, parent: ARObject, short_name: str):
|
|
41
103
|
Identifiable.__init__(self, parent, short_name)
|
|
42
104
|
CollectableElement.__init__(self)
|
|
43
105
|
|
|
44
|
-
self.
|
|
106
|
+
self.arPackages = {} # type: Dict[str, ARPackage]
|
|
107
|
+
self.referenceBases = [] # type: List[ReferenceBase]
|
|
45
108
|
|
|
46
109
|
def getARPackages(self): # type: (...) -> List[ARPackage]
|
|
47
|
-
return list(sorted(self.
|
|
110
|
+
return list(sorted(self.arPackages.values(), key= lambda a: a.short_name))
|
|
48
111
|
#return list(filter(lambda e: isinstance(e, ARPackage), self.elements.values()))
|
|
49
112
|
|
|
50
113
|
def createARPackage(self, short_name: str):
|
|
@@ -54,14 +117,14 @@ class ARPackage(Identifiable, CollectableElement):
|
|
|
54
117
|
self.elements[short_name] = ar_package
|
|
55
118
|
return self.elements[short_name]
|
|
56
119
|
'''
|
|
57
|
-
if short_name not in self.
|
|
120
|
+
if short_name not in self.arPackages:
|
|
58
121
|
ar_package = ARPackage(self, short_name)
|
|
59
|
-
self.
|
|
60
|
-
return self.
|
|
122
|
+
self.arPackages[short_name] = ar_package
|
|
123
|
+
return self.arPackages[short_name]
|
|
61
124
|
|
|
62
125
|
def getElement(self, short_name: str) -> Referrable:
|
|
63
|
-
if (short_name in self.
|
|
64
|
-
return self.
|
|
126
|
+
if (short_name in self.arPackages):
|
|
127
|
+
return self.arPackages[short_name]
|
|
65
128
|
return CollectableElement.getElement(self, short_name)
|
|
66
129
|
|
|
67
130
|
def createEcuAbstractionSwComponentType(self, short_name: str) -> EcuAbstractionSwComponentType:
|
|
@@ -114,8 +177,14 @@ class ARPackage(Identifiable, CollectableElement):
|
|
|
114
177
|
|
|
115
178
|
def createGenericEthernetFrame(self, short_name: str) -> GenericEthernetFrame:
|
|
116
179
|
if (short_name not in self.elements):
|
|
117
|
-
|
|
118
|
-
self.addElement(
|
|
180
|
+
frame = GenericEthernetFrame(self, short_name)
|
|
181
|
+
self.addElement(frame)
|
|
182
|
+
return self.getElement(short_name)
|
|
183
|
+
|
|
184
|
+
def createLifeCycleInfoSet(self, short_name: str) -> LifeCycleInfoSet:
|
|
185
|
+
if (short_name not in self.elements):
|
|
186
|
+
set = LifeCycleInfoSet(self, short_name)
|
|
187
|
+
self.addElement(set)
|
|
119
188
|
return self.getElement(short_name)
|
|
120
189
|
|
|
121
190
|
def createClientServerInterface(self, short_name: str) -> ClientServerInterface:
|
|
@@ -540,3 +609,11 @@ class ARPackage(Identifiable, CollectableElement):
|
|
|
540
609
|
|
|
541
610
|
def getSystems(self) -> List[System]:
|
|
542
611
|
return list(sorted(filter(lambda a : isinstance(a, System), self.elements.values()), key = lambda a: a.short_name))
|
|
612
|
+
|
|
613
|
+
def getReferenceBases(self):
|
|
614
|
+
return self.referenceBases
|
|
615
|
+
|
|
616
|
+
def addReferenceBase(self, value):
|
|
617
|
+
self.referenceBases.append(value)
|
|
618
|
+
return self
|
|
619
|
+
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from ....MSR.Documentation.TextModel.BlockElements import DocumentationBlock
|
|
1
2
|
from .....M2.MSR.AsamHdo.AdminData import AdminData
|
|
2
3
|
from .....M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
|
|
3
4
|
from .....M2.MSR.Documentation.Annotation import Annotation
|
|
@@ -12,6 +13,7 @@ class Referrable(ARObject, metaclass = ABCMeta):
|
|
|
12
13
|
|
|
13
14
|
if type(self) == Referrable:
|
|
14
15
|
raise NotImplementedError("Referrable is an abstract class.")
|
|
16
|
+
|
|
15
17
|
ARObject.__init__(self)
|
|
16
18
|
|
|
17
19
|
self.parent = parent
|
|
@@ -60,6 +62,7 @@ class CollectableElement(ARObject, metaclass = ABCMeta):
|
|
|
60
62
|
def __init__(self):
|
|
61
63
|
if type(self) == CollectableElement:
|
|
62
64
|
raise NotImplementedError("CollectableElement is an abstract class.")
|
|
65
|
+
|
|
63
66
|
self.elements = {} # type: dict[str, Referrable]
|
|
64
67
|
|
|
65
68
|
def getTotalElement(self) -> int:
|
|
@@ -86,13 +89,15 @@ class Identifiable(MultilanguageReferrable, CollectableElement, metaclass = ABCM
|
|
|
86
89
|
def __init__(self, parent: ARObject, short_name: str):
|
|
87
90
|
if type(self) == Identifiable:
|
|
88
91
|
raise NotImplementedError("Identifiable is an abstract class.")
|
|
92
|
+
|
|
89
93
|
MultilanguageReferrable.__init__(self, parent, short_name)
|
|
90
94
|
CollectableElement.__init__(self)
|
|
91
95
|
|
|
92
|
-
self.annotations = []
|
|
93
|
-
self.adminData = None
|
|
94
|
-
self.category = None
|
|
95
|
-
self.
|
|
96
|
+
self.annotations = [] # type: List[Annotation]
|
|
97
|
+
self.adminData = None # type: AdminData
|
|
98
|
+
self.category = None # type: ARLiteral
|
|
99
|
+
self.introduction = None # type: DocumentationBlock
|
|
100
|
+
self.desc = None # type: MultiLanguageOverviewParagraph
|
|
96
101
|
|
|
97
102
|
def getAdminData(self):
|
|
98
103
|
return self.adminData
|
|
@@ -114,6 +119,14 @@ class Identifiable(MultilanguageReferrable, CollectableElement, metaclass = ABCM
|
|
|
114
119
|
def setCategory(self, value):
|
|
115
120
|
self.category = value
|
|
116
121
|
return self
|
|
122
|
+
|
|
123
|
+
def getIntroduction(self):
|
|
124
|
+
return self.introduction
|
|
125
|
+
|
|
126
|
+
def setIntroduction(self, value):
|
|
127
|
+
self.introduction = value
|
|
128
|
+
return self
|
|
129
|
+
|
|
117
130
|
|
|
118
131
|
def addAnnotation(self, annotation: Annotation):
|
|
119
132
|
self.annotations.append(annotation)
|
armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py
CHANGED
|
@@ -167,9 +167,12 @@ class AREnum(ARLiteral):
|
|
|
167
167
|
return False
|
|
168
168
|
|
|
169
169
|
class String(ARLiteral):
|
|
170
|
-
|
|
171
|
-
|
|
170
|
+
def __init__(self):
|
|
171
|
+
super().__init__()
|
|
172
172
|
|
|
173
|
+
class ReferrableSubtypesEnum(ARLiteral):
|
|
174
|
+
def __init__(self):
|
|
175
|
+
super().__init__()
|
|
173
176
|
|
|
174
177
|
class ARPositiveInteger(ARNumerical):
|
|
175
178
|
def __init__(self) -> None:
|
|
@@ -255,7 +258,7 @@ class NameToken(ARLiteral):
|
|
|
255
258
|
super().__init__()
|
|
256
259
|
|
|
257
260
|
class PositiveInteger(ARPositiveInteger):
|
|
258
|
-
'''
|
|
261
|
+
r'''\n
|
|
259
262
|
This is a positive integer which can be denoted in decimal, binary, octal and hexadecimal. The value is
|
|
260
263
|
between 0 and 4294967295.
|
|
261
264
|
|
|
@@ -263,12 +266,13 @@ class PositiveInteger(ARPositiveInteger):
|
|
|
263
266
|
* xml.xsd.customType=POSITIVE-INTEGER
|
|
264
267
|
* xml.xsd.pattern=0|[\+]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
|
|
265
268
|
* xml.xsd.type=string
|
|
269
|
+
\n
|
|
266
270
|
'''
|
|
267
271
|
def __init__(self):
|
|
268
272
|
super().__init__()
|
|
269
273
|
|
|
270
274
|
class PositiveUnlimitedInteger(ARPositiveInteger):
|
|
271
|
-
'''
|
|
275
|
+
r'''
|
|
272
276
|
This is a positive unlimited integer which can be denoted in decimal, binary, octal and hexadecimal.
|
|
273
277
|
|
|
274
278
|
Tags:
|
|
@@ -278,7 +282,7 @@ class PositiveUnlimitedInteger(ARPositiveInteger):
|
|
|
278
282
|
'''
|
|
279
283
|
|
|
280
284
|
class Integer(ARNumerical):
|
|
281
|
-
'''
|
|
285
|
+
r'''
|
|
282
286
|
An instance of Integer is an element in the set of integer numbers ( ..., -2, -1, 0, 1, 2, ...).
|
|
283
287
|
The value can be expressed in decimal, octal, hexadecimal and binary representation. Negative numbers
|
|
284
288
|
can only be expressed in decimal notation
|
|
@@ -293,7 +297,7 @@ class Integer(ARNumerical):
|
|
|
293
297
|
super().__init__()
|
|
294
298
|
|
|
295
299
|
class UnlimitedInteger(Integer):
|
|
296
|
-
'''
|
|
300
|
+
r'''
|
|
297
301
|
An instance of UnlimitedInteger is an element in the set of integer numbers ( ..., -2, -1, 0, 1, 2, ...).
|
|
298
302
|
The range is limited by constraint 2534.
|
|
299
303
|
The value can be expressed in decimal, octal, hexadecimal and binary representation. Negative numbers
|
|
@@ -336,6 +340,35 @@ class Identifier(ARLiteral):
|
|
|
336
340
|
def __init__(self):
|
|
337
341
|
super().__init__()
|
|
338
342
|
|
|
343
|
+
class CIdentifier(ARLiteral):
|
|
344
|
+
'''
|
|
345
|
+
This datatype represents a string, that follows the rules of C-identifiers.
|
|
346
|
+
|
|
347
|
+
Tags:
|
|
348
|
+
* xml.xsd.customType=C-IDENTIFIER
|
|
349
|
+
* xml.xsd.pattern=[a-zA-Z_][a-zA-Z0-9_]*
|
|
350
|
+
* xml.xsd.type=string
|
|
351
|
+
'''
|
|
352
|
+
def __init__(self):
|
|
353
|
+
super().__init__()
|
|
354
|
+
|
|
355
|
+
self.blueprintValue = None
|
|
356
|
+
self.namePattern = None
|
|
357
|
+
|
|
358
|
+
def getBlueprintValue(self):
|
|
359
|
+
return self.blueprintValue
|
|
360
|
+
|
|
361
|
+
def setBlueprintValue(self, value):
|
|
362
|
+
self.blueprintValue = value
|
|
363
|
+
return self
|
|
364
|
+
|
|
365
|
+
def getNamePattern(self):
|
|
366
|
+
return self.namePattern
|
|
367
|
+
|
|
368
|
+
def setNamePattern(self, value):
|
|
369
|
+
self.namePattern = value
|
|
370
|
+
return self
|
|
371
|
+
|
|
339
372
|
class RevisionLabelString(ARLiteral):
|
|
340
373
|
'''
|
|
341
374
|
This primitive represents an internal AUTOSAR revision label which identifies an engineering object. It
|
|
@@ -354,14 +387,35 @@ class Limit(ARObject):
|
|
|
354
387
|
def __init__(self):
|
|
355
388
|
super().__init__()
|
|
356
389
|
|
|
357
|
-
self.intervalType = None
|
|
358
|
-
self.value = None
|
|
390
|
+
self.intervalType = None # type: str
|
|
391
|
+
self.value = None # type: str
|
|
392
|
+
|
|
393
|
+
def getIntervalType(self):
|
|
394
|
+
return self.intervalType
|
|
395
|
+
|
|
396
|
+
def setIntervalType(self, value):
|
|
397
|
+
self.intervalType = value
|
|
398
|
+
return self
|
|
399
|
+
|
|
400
|
+
def getValue(self):
|
|
401
|
+
return self.value
|
|
359
402
|
|
|
403
|
+
def setValue(self, value):
|
|
404
|
+
self.value = value
|
|
405
|
+
return self
|
|
360
406
|
|
|
361
407
|
class RefType(ARObject):
|
|
362
408
|
def __init__(self):
|
|
363
|
-
self.
|
|
364
|
-
self.
|
|
409
|
+
self.base = None # type: str
|
|
410
|
+
self.dest = None # type: str
|
|
411
|
+
self.value = None # type: str
|
|
412
|
+
|
|
413
|
+
def getBase(self):
|
|
414
|
+
return self.base
|
|
415
|
+
|
|
416
|
+
def setBase(self, value):
|
|
417
|
+
self.base = value
|
|
418
|
+
return self
|
|
365
419
|
|
|
366
420
|
def getDest(self):
|
|
367
421
|
return self.dest
|
|
@@ -379,4 +433,17 @@ class RefType(ARObject):
|
|
|
379
433
|
|
|
380
434
|
class TRefType(RefType):
|
|
381
435
|
def __init__(self):
|
|
382
|
-
super().__init__()
|
|
436
|
+
super().__init__()
|
|
437
|
+
|
|
438
|
+
class DiagRequirementIdString(ARLiteral):
|
|
439
|
+
'''
|
|
440
|
+
This string denotes an Identifier for a requirement.
|
|
441
|
+
|
|
442
|
+
Tags:
|
|
443
|
+
* xml.xsd.customType=DIAG-REQUIREMENT-ID-STRING
|
|
444
|
+
* xml.xsd.pattern=[0-9a-zA-Z_\-]+
|
|
445
|
+
* xml.xsd.type=string
|
|
446
|
+
'''
|
|
447
|
+
def __init__(self):
|
|
448
|
+
super().__init__()
|
|
449
|
+
|
|
@@ -62,9 +62,22 @@ class CompositeNetworkRepresentation(ARObject):
|
|
|
62
62
|
def __init__(self):
|
|
63
63
|
super().__init__()
|
|
64
64
|
|
|
65
|
-
self.
|
|
66
|
-
self.
|
|
65
|
+
self.leafElementIRef = None # type: ApplicationCompositeElementInPortInterfaceInstanceRef
|
|
66
|
+
self.networkRepresentation = None # type: SwDataDefProps
|
|
67
67
|
|
|
68
|
+
def getLeafElementIRef(self):
|
|
69
|
+
return self.leafElementIRef
|
|
70
|
+
|
|
71
|
+
def setLeafElementIRef(self, value):
|
|
72
|
+
self.leafElementIRef = value
|
|
73
|
+
return self
|
|
74
|
+
|
|
75
|
+
def getNetworkRepresentation(self):
|
|
76
|
+
return self.networkRepresentation
|
|
77
|
+
|
|
78
|
+
def setNetworkRepresentation(self, value):
|
|
79
|
+
self.networkRepresentation = value
|
|
80
|
+
return self
|
|
68
81
|
|
|
69
82
|
class TransmissionAcknowledgementRequest(ARObject):
|
|
70
83
|
def __init__(self):
|
|
@@ -205,7 +218,10 @@ class ReceiverComSpec(RPortComSpec):
|
|
|
205
218
|
self.compositeNetworkRepresentations = [] # type: List[CompositeNetworkRepresentation]
|
|
206
219
|
self.dataElementRef = None # type: RefType
|
|
207
220
|
self.networkRepresentation = None # type: SwDataDefProps
|
|
208
|
-
self.handleOutOfRange = None # type:
|
|
221
|
+
self.handleOutOfRange = None # type: HandleOutOfRangeEnum
|
|
222
|
+
self.handleOutOfRangeStatus = None # type: HandleOutOfRangeStatusEnum
|
|
223
|
+
self.maxDeltaCounterInit = None # type: PositiveInteger
|
|
224
|
+
self.maxNoNewOrRepeatedData = None # type: PositiveInteger
|
|
209
225
|
self.usesEndToEndProtection = None # type: ARBoolean
|
|
210
226
|
|
|
211
227
|
def getDataElementRef(self):
|
|
@@ -228,6 +244,28 @@ class ReceiverComSpec(RPortComSpec):
|
|
|
228
244
|
def setHandleOutOfRange(self, value):
|
|
229
245
|
self.handleOutOfRange = value
|
|
230
246
|
return self
|
|
247
|
+
|
|
248
|
+
def getHandleOutOfRangeStatus(self):
|
|
249
|
+
return self.handleOutOfRangeStatus
|
|
250
|
+
|
|
251
|
+
def setHandleOutOfRangeStatus(self, value):
|
|
252
|
+
self.handleOutOfRangeStatus = value
|
|
253
|
+
return self
|
|
254
|
+
|
|
255
|
+
def getMaxDeltaCounterInit(self):
|
|
256
|
+
return self.maxDeltaCounterInit
|
|
257
|
+
|
|
258
|
+
def setMaxDeltaCounterInit(self, value):
|
|
259
|
+
self.maxDeltaCounterInit = value
|
|
260
|
+
return self
|
|
261
|
+
|
|
262
|
+
def getMaxNoNewOrRepeatedData(self):
|
|
263
|
+
return self.maxNoNewOrRepeatedData
|
|
264
|
+
|
|
265
|
+
def setMaxNoNewOrRepeatedData(self, value):
|
|
266
|
+
self.maxNoNewOrRepeatedData = value
|
|
267
|
+
return self
|
|
268
|
+
|
|
231
269
|
|
|
232
270
|
def getUsesEndToEndProtection(self):
|
|
233
271
|
return self.usesEndToEndProtection
|
|
@@ -87,7 +87,7 @@ class AbstractProvidedPortPrototype(PortPrototype):
|
|
|
87
87
|
def __init__(self, parent: ARObject, short_name: str):
|
|
88
88
|
super().__init__(parent, short_name)
|
|
89
89
|
|
|
90
|
-
self.
|
|
90
|
+
self.providedComSpecs = [] # type: List[PPortComSpec]
|
|
91
91
|
|
|
92
92
|
def _validateRPortComSpec(self, com_spec: PPortComSpec):
|
|
93
93
|
if isinstance(com_spec, NonqueuedSenderComSpec):
|
|
@@ -108,20 +108,20 @@ class AbstractProvidedPortPrototype(PortPrototype):
|
|
|
108
108
|
|
|
109
109
|
def addProvidedComSpec(self, com_spec):
|
|
110
110
|
self._validateRPortComSpec(com_spec)
|
|
111
|
-
self.
|
|
111
|
+
self.providedComSpecs.append(com_spec)
|
|
112
112
|
|
|
113
113
|
def getProvidedComSpecs(self) -> List[PPortComSpec]:
|
|
114
|
-
return self.
|
|
114
|
+
return self.providedComSpecs
|
|
115
115
|
|
|
116
116
|
def getNonqueuedSenderComSpecs(self) -> List[NonqueuedSenderComSpec]:
|
|
117
|
-
return filter(lambda c: isinstance(c, NonqueuedSenderComSpec), self.
|
|
117
|
+
return filter(lambda c: isinstance(c, NonqueuedSenderComSpec), self.providedComSpecs)
|
|
118
118
|
|
|
119
119
|
|
|
120
120
|
class AbstractRequiredPortPrototype(PortPrototype):
|
|
121
121
|
def __init__(self, parent: ARObject, short_name: str):
|
|
122
122
|
super().__init__(parent, short_name)
|
|
123
123
|
|
|
124
|
-
self.
|
|
124
|
+
self.requiredComSpecs = [] # type: List[RPortComSpec]
|
|
125
125
|
|
|
126
126
|
def _validateRPortComSpec(self, com_spec: RPortComSpec):
|
|
127
127
|
if (isinstance(com_spec, ClientComSpec)):
|
|
@@ -145,16 +145,16 @@ class AbstractRequiredPortPrototype(PortPrototype):
|
|
|
145
145
|
|
|
146
146
|
def addRequiredComSpec(self, com_spec: RPortComSpec):
|
|
147
147
|
self._validateRPortComSpec(com_spec)
|
|
148
|
-
self.
|
|
148
|
+
self.requiredComSpecs.append(com_spec)
|
|
149
149
|
|
|
150
150
|
def getRequiredComSpecs(self) -> List[RPortComSpec]:
|
|
151
|
-
return self.
|
|
151
|
+
return self.requiredComSpecs
|
|
152
152
|
|
|
153
153
|
def getClientComSpecs(self) -> List[ClientComSpec]:
|
|
154
|
-
return filter(lambda c: isinstance(c, ClientComSpec), self.
|
|
154
|
+
return filter(lambda c: isinstance(c, ClientComSpec), self.requiredComSpecs)
|
|
155
155
|
|
|
156
156
|
def getNonqueuedReceiverComSpecs(self) -> List[NonqueuedReceiverComSpec]:
|
|
157
|
-
return filter(lambda c: isinstance(c, NonqueuedReceiverComSpec), self.
|
|
157
|
+
return filter(lambda c: isinstance(c, NonqueuedReceiverComSpec), self.requiredComSpecs)
|
|
158
158
|
|
|
159
159
|
|
|
160
160
|
class PPortPrototype(AbstractProvidedPortPrototype):
|
|
@@ -190,6 +190,35 @@ class RPortPrototype(AbstractRequiredPortPrototype):
|
|
|
190
190
|
def setRequiredInterfaceTRef(self, value):
|
|
191
191
|
self.requiredInterfaceTRef = value
|
|
192
192
|
return self
|
|
193
|
+
|
|
194
|
+
class PRPortPrototype(PortPrototype):
|
|
195
|
+
def __init__(self, parent, short_name):
|
|
196
|
+
super().__init__(parent, short_name)
|
|
197
|
+
|
|
198
|
+
self.providedComSpecs = [] # type: List[PPortComSpec]
|
|
199
|
+
self.requiredComSpecs = [] # type: List[RPortComSpec]
|
|
200
|
+
self.providedRequiredInterface = None # type: TRefType
|
|
201
|
+
|
|
202
|
+
def getProvidedComSpecs(self):
|
|
203
|
+
return self.providedComSpecs
|
|
204
|
+
|
|
205
|
+
def addProvidedComSpec(self, value):
|
|
206
|
+
self.providedComSpecs.append(value)
|
|
207
|
+
return self
|
|
208
|
+
|
|
209
|
+
def getRequiredComSpecs(self):
|
|
210
|
+
return self.requiredComSpecs
|
|
211
|
+
|
|
212
|
+
def addRequiredComSpec(self, value):
|
|
213
|
+
self.requiredComSpecs.append(value)
|
|
214
|
+
return self
|
|
215
|
+
|
|
216
|
+
def getProvidedRequiredInterface(self):
|
|
217
|
+
return self.providedRequiredInterface
|
|
218
|
+
|
|
219
|
+
def setProvidedRequiredInterface(self, value):
|
|
220
|
+
self.providedRequiredInterface = value
|
|
221
|
+
return self
|
|
193
222
|
|
|
194
223
|
class PortGroup(Identifiable):
|
|
195
224
|
def __init__(self, parent: ARObject, short_name: str):
|
|
@@ -215,16 +244,22 @@ class SwComponentType(ARElement, metaclass = ABCMeta):
|
|
|
215
244
|
super().__init__(parent, short_name)
|
|
216
245
|
|
|
217
246
|
def createPPortPrototype(self, short_name: str) -> PPortPrototype:
|
|
218
|
-
prototype = PPortPrototype(self, short_name)
|
|
219
247
|
if (short_name not in self.elements):
|
|
220
|
-
|
|
221
|
-
|
|
248
|
+
prototype = PPortPrototype(self, short_name)
|
|
249
|
+
self.addElement(prototype)
|
|
250
|
+
return self.getElement(short_name)
|
|
222
251
|
|
|
223
252
|
def createRPortPrototype(self, short_name) -> RPortPrototype:
|
|
224
|
-
prototype = RPortPrototype(self, short_name)
|
|
225
253
|
if (short_name not in self.elements):
|
|
226
|
-
|
|
227
|
-
|
|
254
|
+
prototype = RPortPrototype(self, short_name)
|
|
255
|
+
self.addElement(prototype)
|
|
256
|
+
return self.getElement(short_name)
|
|
257
|
+
|
|
258
|
+
def createPRPortPrototype(self, short_name) -> PRPortPrototype:
|
|
259
|
+
if (short_name not in self.elements):
|
|
260
|
+
prototype = PRPortPrototype(self, short_name)
|
|
261
|
+
self.addElement(prototype)
|
|
262
|
+
return self.getElement(short_name)
|
|
228
263
|
|
|
229
264
|
def createPortGroup(self, short_name) -> PortGroup:
|
|
230
265
|
port_group = PortGroup(self, short_name)
|
|
@@ -238,6 +273,9 @@ class SwComponentType(ARElement, metaclass = ABCMeta):
|
|
|
238
273
|
def getRPortPrototypes(self) -> List[RPortPrototype]:
|
|
239
274
|
return list(sorted(filter(lambda c: isinstance(c, RPortPrototype), self.elements.values()), key= lambda o: o.short_name))
|
|
240
275
|
|
|
276
|
+
def getPRPortPrototypes(self) -> List[PRPortPrototype]:
|
|
277
|
+
return list(sorted(filter(lambda c: isinstance(c, PRPortPrototype), self.elements.values()), key= lambda o: o.short_name))
|
|
278
|
+
|
|
241
279
|
def getPortPrototypes(self) -> List[PortPrototype]:
|
|
242
280
|
return list(sorted(filter(lambda c: isinstance(c, PortPrototype), self.elements.values()), key= lambda o: o.short_name))
|
|
243
281
|
|
|
@@ -81,25 +81,40 @@ class ApplicationRecordDataType(ApplicationCompositeDataType):
|
|
|
81
81
|
class DataTypeMap(ARObject):
|
|
82
82
|
def __init__(self):
|
|
83
83
|
|
|
84
|
-
self.
|
|
85
|
-
self.
|
|
84
|
+
self.applicationDataTypeRef = None # type: RefType
|
|
85
|
+
self.implementationDataTypeRef = None # type: RefType
|
|
86
86
|
|
|
87
|
+
def getApplicationDataTypeRef(self):
|
|
88
|
+
return self.applicationDataTypeRef
|
|
89
|
+
|
|
90
|
+
def setApplicationDataTypeRef(self, value):
|
|
91
|
+
self.applicationDataTypeRef = value
|
|
92
|
+
return self
|
|
93
|
+
|
|
94
|
+
def getImplementationDataTypeRef(self):
|
|
95
|
+
return self.implementationDataTypeRef
|
|
96
|
+
|
|
97
|
+
def setImplementationDataTypeRef(self, value):
|
|
98
|
+
self.implementationDataTypeRef = value
|
|
99
|
+
return self
|
|
87
100
|
|
|
88
101
|
class DataTypeMappingSet(ARElement):
|
|
89
102
|
def __init__(self, parent: ARObject, short_name: str):
|
|
90
103
|
super().__init__(parent, short_name)
|
|
91
104
|
|
|
92
|
-
self.
|
|
93
|
-
self.
|
|
105
|
+
self.dataTypeMaps = [] # type: List[DataTypeMap]
|
|
106
|
+
self.modeRequestTypeMaps = [] # type: List[ModeRequestTypeMap]
|
|
94
107
|
|
|
95
108
|
def addDataTypeMap(self, type_map: DataTypeMap):
|
|
96
|
-
self.
|
|
109
|
+
self.dataTypeMaps.append(type_map)
|
|
110
|
+
return self
|
|
97
111
|
|
|
98
112
|
def getDataTypeMaps(self) -> List[DataTypeMap]:
|
|
99
|
-
return self.
|
|
113
|
+
return self.dataTypeMaps
|
|
100
114
|
|
|
101
115
|
def addModeRequestTypeMap(self, map: ModeRequestTypeMap):
|
|
102
|
-
self.
|
|
116
|
+
self.modeRequestTypeMaps.append(map)
|
|
117
|
+
return self
|
|
103
118
|
|
|
104
119
|
def getModeRequestTypeMaps(self) -> List[ModeRequestTypeMap]:
|
|
105
|
-
return self.
|
|
120
|
+
return self.modeRequestTypeMaps
|
|
@@ -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
6
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import 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, 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):
|