armodel 1.7.8__py3-none-any.whl → 1.8.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 +1 -0
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +71 -11
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +102 -12
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +80 -9
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +17 -10
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +10 -8
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +30 -28
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +7 -5
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +38 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +96 -18
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +73 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +45 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +27 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +33 -4
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +73 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +40 -14
- armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +151 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +4 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +55 -12
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +80 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +11 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +34 -10
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +11 -10
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +18 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +8 -2
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +35 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +25 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +83 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +84 -32
- armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +10 -1
- armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +163 -0
- armodel/models/M2/MSR/Documentation/BlockElements/__init__.py +0 -0
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +5 -3
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +22 -1
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +94 -9
- armodel/models/__init__.py +4 -0
- armodel/models/utils/__init__.py +0 -0
- armodel/models/utils/uuid_mgr.py +23 -0
- armodel/parser/abstract_arxml_parser.py +10 -2
- armodel/parser/arxml_parser.py +332 -104
- armodel/tests/test_armodel/models/test_datatype.py +136 -138
- armodel/tests/test_armodel/parser/test_sw_components.py +266 -4
- armodel/writer/arxml_writer.py +337 -74
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/METADATA +35 -1
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/RECORD +51 -40
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/LICENSE +0 -0
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/WHEEL +0 -0
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
|
|
2
|
+
from ....M2.MSR.DataDictionary.DataDefProperties import SwImplPolicyEnum
|
|
1
3
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
2
4
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
3
5
|
|
|
6
|
+
|
|
4
7
|
class Trigger(Identifiable):
|
|
5
8
|
def __init__(self, parent: ARObject, short_name: str):
|
|
6
9
|
super().__init__(parent, short_name)
|
|
@@ -23,3 +26,27 @@ class Trigger(Identifiable):
|
|
|
23
26
|
if value is not None:
|
|
24
27
|
self.triggerPeriod = value
|
|
25
28
|
return self
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class TriggerMapping(ARObject):
|
|
32
|
+
def __init__(self):
|
|
33
|
+
super().__init__()
|
|
34
|
+
|
|
35
|
+
self.firstTriggerRef = None # type: RefType
|
|
36
|
+
self.secondTriggerRef = None # type: RefType
|
|
37
|
+
|
|
38
|
+
def getFirstTriggerRef(self):
|
|
39
|
+
return self.firstTriggerRef
|
|
40
|
+
|
|
41
|
+
def setFirstTriggerRef(self, value):
|
|
42
|
+
if value is not None:
|
|
43
|
+
self.firstTriggerRef = value
|
|
44
|
+
return self
|
|
45
|
+
|
|
46
|
+
def getSecondTriggerRef(self):
|
|
47
|
+
return self.secondTriggerRef
|
|
48
|
+
|
|
49
|
+
def setSecondTriggerRef(self, value):
|
|
50
|
+
if value is not None:
|
|
51
|
+
self.secondTriggerRef = value
|
|
52
|
+
return self
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
from typing import Dict, List
|
|
2
2
|
|
|
3
|
-
from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType, ServiceSwComponentType, SwComponentType
|
|
4
|
-
from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, AtomicSwComponentType
|
|
5
|
-
from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import ComplexDeviceDriverSwComponentType, EcuAbstractionSwComponentType
|
|
6
3
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import SensorActuatorSwComponentType
|
|
7
|
-
|
|
8
4
|
from .....M2.MSR.AsamHdo.BaseTypes import SwBaseType
|
|
9
5
|
from .....M2.MSR.AsamHdo.Units import PhysicalDimension, Unit
|
|
10
6
|
from .....M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr
|
|
@@ -21,15 +17,21 @@ from .....M2.AUTOSARTemplates.CommonStructure.Implementation import Implementati
|
|
|
21
17
|
from .....M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatMap
|
|
22
18
|
from .....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup
|
|
23
19
|
from .....M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping
|
|
20
|
+
from .....M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.BlueprintDedicated.PortPrototypeBlueprint import PortPrototypeBlueprint
|
|
21
|
+
from .....M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.Keyword import KeywordSet
|
|
24
22
|
from .....M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming
|
|
25
23
|
from .....M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import DiagnosticServiceTable
|
|
26
24
|
from .....M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleConfigurationValues, EcucValueCollection
|
|
27
25
|
from .....M2.AUTOSARTemplates.EcuResourceTemplate import HwElement
|
|
28
26
|
from .....M2.AUTOSARTemplates.EcuResourceTemplate.HwElementCategory import HwCategory, HwType
|
|
29
27
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
28
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ElementCollection import Collection
|
|
30
29
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement, Identifiable, Referrable
|
|
31
30
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Identifier, RefType, ReferrableSubtypesEnum
|
|
32
31
|
from .....M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
|
|
32
|
+
from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType, ServiceSwComponentType, SwComponentType
|
|
33
|
+
from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, AtomicSwComponentType
|
|
34
|
+
from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import ComplexDeviceDriverSwComponentType, EcuAbstractionSwComponentType
|
|
33
35
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationDataType
|
|
34
36
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationPrimitiveDataType, ApplicationRecordDataType
|
|
35
37
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
|
|
@@ -599,6 +601,24 @@ class ARPackage(Identifiable, CollectableElement):
|
|
|
599
601
|
transform_set = DataTransformationSet(self, short_name)
|
|
600
602
|
self.addElement(transform_set)
|
|
601
603
|
return self.getElement(short_name)
|
|
604
|
+
|
|
605
|
+
def createCollection(self, short_name: str) -> Collection:
|
|
606
|
+
if (not self.IsElementExists(short_name)):
|
|
607
|
+
collection = Collection(self, short_name)
|
|
608
|
+
self.addElement(collection)
|
|
609
|
+
return self.getElement(short_name)
|
|
610
|
+
|
|
611
|
+
def createKeywordSet(self, short_name: str) -> KeywordSet:
|
|
612
|
+
if (not self.IsElementExists(short_name)):
|
|
613
|
+
keyword_set = KeywordSet(self, short_name)
|
|
614
|
+
self.addElement(keyword_set)
|
|
615
|
+
return self.getElement(short_name)
|
|
616
|
+
|
|
617
|
+
def createPortPrototypeBlueprint(self, short_name: str) -> PortPrototypeBlueprint:
|
|
618
|
+
if (not self.IsElementExists(short_name)):
|
|
619
|
+
keyword_set = PortPrototypeBlueprint(self, short_name)
|
|
620
|
+
self.addElement(keyword_set)
|
|
621
|
+
return self.getElement(short_name)
|
|
602
622
|
|
|
603
623
|
def getApplicationPrimitiveDataTypes(self) -> List[ApplicationPrimitiveDataType]:
|
|
604
624
|
return list(sorted(filter(lambda a: isinstance(a, ApplicationPrimitiveDataType), self.elements.values()), key=lambda o: o.short_name))
|
|
@@ -765,6 +785,15 @@ class ARPackage(Identifiable, CollectableElement):
|
|
|
765
785
|
def getDataTransformationSets(self) -> List[DataTransformationSet]:
|
|
766
786
|
return list(sorted(filter(lambda a: isinstance(a, DataTransformationSet), self.elements.values()), key=lambda a: a.short_name))
|
|
767
787
|
|
|
788
|
+
def getCollections(self) -> List[Collection]:
|
|
789
|
+
return list(sorted(filter(lambda a: isinstance(a, Collection), self.elements.values()), key=lambda a: a.short_name))
|
|
790
|
+
|
|
791
|
+
def getKeywordSets(self) -> List[KeywordSet]:
|
|
792
|
+
return list(sorted(filter(lambda a: isinstance(a, KeywordSet), self.elements.values()), key=lambda a: a.short_name))
|
|
793
|
+
|
|
794
|
+
def getPortPrototypeBlueprints(self) -> List[PortPrototypeBlueprint]:
|
|
795
|
+
return list(sorted(filter(lambda a: isinstance(a, PortPrototypeBlueprint), self.elements.values()), key=lambda a: a.short_name))
|
|
796
|
+
|
|
768
797
|
def getReferenceBases(self):
|
|
769
798
|
return self.referenceBases
|
|
770
799
|
|
armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py
CHANGED
|
@@ -1 +1,74 @@
|
|
|
1
|
+
from typing import List
|
|
1
2
|
|
|
3
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Identifier, NameToken, RefType
|
|
4
|
+
from .....M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
|
|
5
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Collection(ARElement):
|
|
9
|
+
def __init__(self, parent, short_name):
|
|
10
|
+
super().__init__(parent, short_name)
|
|
11
|
+
|
|
12
|
+
self.autoCollect = None # type: AutoCollectEnum
|
|
13
|
+
self.collectedInstances = [] # type: List[AnyInstanceRef]
|
|
14
|
+
self.collectionSemantics = None # type: NameToken
|
|
15
|
+
self.elementRefs = [] # type: List[RefType]
|
|
16
|
+
self.elementRole = None # type: Identifier
|
|
17
|
+
self.sourceElementRefs = [] # type: List[RefType]
|
|
18
|
+
self.sourceInstances = [] # type: List[AnyInstanceRef]
|
|
19
|
+
|
|
20
|
+
def getAutoCollect(self):
|
|
21
|
+
return self.autoCollect
|
|
22
|
+
|
|
23
|
+
def setAutoCollect(self, value):
|
|
24
|
+
if value is not None:
|
|
25
|
+
self.autoCollect = value
|
|
26
|
+
return self
|
|
27
|
+
|
|
28
|
+
def getCollectedInstances(self):
|
|
29
|
+
return self.collectedInstances
|
|
30
|
+
|
|
31
|
+
def setCollectedInstances(self, value):
|
|
32
|
+
if value is not None:
|
|
33
|
+
self.collectedInstances = value
|
|
34
|
+
return self
|
|
35
|
+
|
|
36
|
+
def getCollectionSemantics(self):
|
|
37
|
+
return self.collectionSemantics
|
|
38
|
+
|
|
39
|
+
def setCollectionSemantics(self, value):
|
|
40
|
+
if value is not None:
|
|
41
|
+
self.collectionSemantics = value
|
|
42
|
+
return self
|
|
43
|
+
|
|
44
|
+
def getElementRefs(self):
|
|
45
|
+
return self.elementRefs
|
|
46
|
+
|
|
47
|
+
def addElementRef(self, value):
|
|
48
|
+
if value is not None:
|
|
49
|
+
self.elementRefs.append(value)
|
|
50
|
+
return self
|
|
51
|
+
|
|
52
|
+
def getElementRole(self):
|
|
53
|
+
return self.elementRole
|
|
54
|
+
|
|
55
|
+
def setElementRole(self, value):
|
|
56
|
+
if value is not None:
|
|
57
|
+
self.elementRole = value
|
|
58
|
+
return self
|
|
59
|
+
|
|
60
|
+
def getSourceElementRefs(self):
|
|
61
|
+
return self.sourceElementRefs
|
|
62
|
+
|
|
63
|
+
def addSourceElementRef(self, value):
|
|
64
|
+
if value is not None:
|
|
65
|
+
self.sourceElementRefs.append(value)
|
|
66
|
+
return self
|
|
67
|
+
|
|
68
|
+
def getSourceInstances(self):
|
|
69
|
+
return self.sourceInstances
|
|
70
|
+
|
|
71
|
+
def setSourceInstances(self, value):
|
|
72
|
+
if value is not None:
|
|
73
|
+
self.sourceInstances = value
|
|
74
|
+
return self
|
armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py
CHANGED
|
@@ -3,9 +3,10 @@ import re
|
|
|
3
3
|
from typing import List
|
|
4
4
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
class ARType(metaclass=ABCMeta):
|
|
7
8
|
def __init__(self) -> None:
|
|
8
|
-
self.timestamp = None # type: str
|
|
9
|
+
self.timestamp = None # type: str
|
|
9
10
|
self.uuid = None # type: str
|
|
10
11
|
self._value = None
|
|
11
12
|
|
|
@@ -28,11 +29,12 @@ class ARType(metaclass = ABCMeta):
|
|
|
28
29
|
def getText(self) -> str:
|
|
29
30
|
return str(self)
|
|
30
31
|
|
|
32
|
+
|
|
31
33
|
class ARNumerical(ARType):
|
|
32
34
|
def __init__(self) -> None:
|
|
33
35
|
super().__init__()
|
|
34
36
|
|
|
35
|
-
self._text = None
|
|
37
|
+
self._text = None # type: str
|
|
36
38
|
|
|
37
39
|
def _convertStringToNumberValue(self, value: str) -> int:
|
|
38
40
|
try:
|
|
@@ -47,11 +49,11 @@ class ARNumerical(ARType):
|
|
|
47
49
|
m = re.match(r'0b([\d]+)', value, re.I)
|
|
48
50
|
if m:
|
|
49
51
|
return int(m.group(1), 2)
|
|
50
|
-
m = re.match(r"
|
|
52
|
+
m = re.match(r"^[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?$", value)
|
|
51
53
|
if m:
|
|
52
54
|
return float(value)
|
|
53
55
|
return int(value)
|
|
54
|
-
except:
|
|
56
|
+
except: # noqa E722
|
|
55
57
|
raise ValueError("Invalid Numerical Type <%s>" % value)
|
|
56
58
|
|
|
57
59
|
@property
|
|
@@ -93,7 +95,6 @@ class ARFloat(ARNumerical):
|
|
|
93
95
|
self._value = val * 1.0
|
|
94
96
|
elif isinstance(val, str):
|
|
95
97
|
self._text = val
|
|
96
|
-
#self._value = float(val)
|
|
97
98
|
self._value = self._convertStringToNumberValue(val)
|
|
98
99
|
else:
|
|
99
100
|
raise ValueError("Unsupported Type <%s>", type(val))
|
|
@@ -103,7 +104,8 @@ class ARFloat(ARNumerical):
|
|
|
103
104
|
return self._text
|
|
104
105
|
else:
|
|
105
106
|
return str(self._value)
|
|
106
|
-
|
|
107
|
+
|
|
108
|
+
|
|
107
109
|
class Float(ARFloat):
|
|
108
110
|
'''
|
|
109
111
|
An instance of Float is an element from the set of real numbers.
|
|
@@ -113,7 +115,8 @@ class Float(ARFloat):
|
|
|
113
115
|
'''
|
|
114
116
|
def __init__(self):
|
|
115
117
|
super().__init__()
|
|
116
|
-
|
|
118
|
+
|
|
119
|
+
|
|
117
120
|
class TimeValue(ARFloat):
|
|
118
121
|
'''
|
|
119
122
|
This primitive type is taken for expressing time values. The numerical value is supposed to be interpreted
|
|
@@ -150,6 +153,7 @@ class ARLiteral(ARType):
|
|
|
150
153
|
def upper(self) -> str:
|
|
151
154
|
return self.value.upper()
|
|
152
155
|
|
|
156
|
+
|
|
153
157
|
class AREnum(ARLiteral):
|
|
154
158
|
def __init__(self, enum_values: List[str]):
|
|
155
159
|
super().__init__()
|
|
@@ -168,14 +172,17 @@ class AREnum(ARLiteral):
|
|
|
168
172
|
return True
|
|
169
173
|
return False
|
|
170
174
|
|
|
175
|
+
|
|
171
176
|
class String(ARLiteral):
|
|
172
177
|
def __init__(self):
|
|
173
178
|
super().__init__()
|
|
174
179
|
|
|
180
|
+
|
|
175
181
|
class ReferrableSubtypesEnum(ARLiteral):
|
|
176
182
|
def __init__(self):
|
|
177
183
|
super().__init__()
|
|
178
184
|
|
|
185
|
+
|
|
179
186
|
class ARPositiveInteger(ARNumerical):
|
|
180
187
|
def __init__(self) -> None:
|
|
181
188
|
super().__init__()
|
|
@@ -243,6 +250,7 @@ class ARBoolean(ARType):
|
|
|
243
250
|
else:
|
|
244
251
|
return "false"
|
|
245
252
|
|
|
253
|
+
|
|
246
254
|
class NameToken(ARLiteral):
|
|
247
255
|
'''
|
|
248
256
|
This is an identifier as used in xml, e.g. xml-names. Typical usages are, for example, the names of type
|
|
@@ -259,6 +267,7 @@ class NameToken(ARLiteral):
|
|
|
259
267
|
def __init__(self):
|
|
260
268
|
super().__init__()
|
|
261
269
|
|
|
270
|
+
|
|
262
271
|
class PositiveInteger(ARPositiveInteger):
|
|
263
272
|
r'''\n
|
|
264
273
|
This is a positive integer which can be denoted in decimal, binary, octal and hexadecimal. The value is
|
|
@@ -273,6 +282,7 @@ class PositiveInteger(ARPositiveInteger):
|
|
|
273
282
|
def __init__(self):
|
|
274
283
|
super().__init__()
|
|
275
284
|
|
|
285
|
+
|
|
276
286
|
class PositiveUnlimitedInteger(ARPositiveInteger):
|
|
277
287
|
r'''
|
|
278
288
|
This is a positive unlimited integer which can be denoted in decimal, binary, octal and hexadecimal.
|
|
@@ -281,7 +291,8 @@ class PositiveUnlimitedInteger(ARPositiveInteger):
|
|
|
281
291
|
* xml.xsd.customType=POSITIVE-UNLIMITED-INTEGER
|
|
282
292
|
* xml.xsd.pattern=0|[\+]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
|
|
283
293
|
* xml.xsd.type=string
|
|
284
|
-
'''
|
|
294
|
+
'''
|
|
295
|
+
|
|
285
296
|
|
|
286
297
|
class Integer(ARNumerical):
|
|
287
298
|
r'''
|
|
@@ -298,6 +309,7 @@ class Integer(ARNumerical):
|
|
|
298
309
|
def __init__(self):
|
|
299
310
|
super().__init__()
|
|
300
311
|
|
|
312
|
+
|
|
301
313
|
class UnlimitedInteger(Integer):
|
|
302
314
|
r'''
|
|
303
315
|
An instance of UnlimitedInteger is an element in the set of integer numbers ( ..., -2, -1, 0, 1, 2, ...).
|
|
@@ -313,6 +325,7 @@ class UnlimitedInteger(Integer):
|
|
|
313
325
|
def __init__(self):
|
|
314
326
|
super().__init__()
|
|
315
327
|
|
|
328
|
+
|
|
316
329
|
class Boolean(ARBoolean):
|
|
317
330
|
'''
|
|
318
331
|
A Boolean value denotes a logical condition that is either 'true' or 'false'. It can be one of "0", "1", "true",
|
|
@@ -326,6 +339,7 @@ class Boolean(ARBoolean):
|
|
|
326
339
|
def __init__(self):
|
|
327
340
|
super().__init__()
|
|
328
341
|
|
|
342
|
+
|
|
329
343
|
class Identifier(ARLiteral):
|
|
330
344
|
'''
|
|
331
345
|
An Identifier is a string with a number of constraints on its appearance, satisfying the requirements typical
|
|
@@ -342,6 +356,7 @@ class Identifier(ARLiteral):
|
|
|
342
356
|
def __init__(self):
|
|
343
357
|
super().__init__()
|
|
344
358
|
|
|
359
|
+
|
|
345
360
|
class CIdentifier(ARLiteral):
|
|
346
361
|
'''
|
|
347
362
|
This datatype represents a string, that follows the rules of C-identifiers.
|
|
@@ -371,6 +386,7 @@ class CIdentifier(ARLiteral):
|
|
|
371
386
|
self.namePattern = value
|
|
372
387
|
return self
|
|
373
388
|
|
|
389
|
+
|
|
374
390
|
class RevisionLabelString(ARLiteral):
|
|
375
391
|
'''
|
|
376
392
|
This primitive represents an internal AUTOSAR revision label which identifies an engineering object. It
|
|
@@ -406,6 +422,7 @@ class Limit(ARObject):
|
|
|
406
422
|
self.value = value
|
|
407
423
|
return self
|
|
408
424
|
|
|
425
|
+
|
|
409
426
|
class RefType(ARObject):
|
|
410
427
|
def __init__(self):
|
|
411
428
|
self.base = None # type: str
|
|
@@ -446,13 +463,14 @@ class TRefType(RefType):
|
|
|
446
463
|
def __init__(self):
|
|
447
464
|
super().__init__()
|
|
448
465
|
|
|
466
|
+
|
|
449
467
|
class DiagRequirementIdString(ARLiteral):
|
|
450
468
|
'''
|
|
451
469
|
This string denotes an Identifier for a requirement.
|
|
452
470
|
|
|
453
471
|
Tags:
|
|
454
472
|
* xml.xsd.customType=DIAG-REQUIREMENT-ID-STRING
|
|
455
|
-
* xml.xsd.pattern=[0-9a-zA-Z_\-]+
|
|
473
|
+
* xml.xsd.pattern=[0-9a-zA-Z_\-]+ # noqa W605
|
|
456
474
|
* xml.xsd.type=string
|
|
457
475
|
'''
|
|
458
476
|
def __init__(self):
|
|
@@ -460,7 +478,7 @@ class DiagRequirementIdString(ARLiteral):
|
|
|
460
478
|
|
|
461
479
|
|
|
462
480
|
class ArgumentDirectionEnum(AREnum):
|
|
463
|
-
IN
|
|
481
|
+
IN = "in"
|
|
464
482
|
INOUT = "inout"
|
|
465
483
|
OUT = "out"
|
|
466
484
|
|
|
@@ -468,7 +486,7 @@ class ArgumentDirectionEnum(AREnum):
|
|
|
468
486
|
super().__init__((
|
|
469
487
|
ArgumentDirectionEnum.IN,
|
|
470
488
|
ArgumentDirectionEnum.INOUT,
|
|
471
|
-
ArgumentDirectionEnum.OUT
|
|
489
|
+
ArgumentDirectionEnum.OUT
|
|
472
490
|
))
|
|
473
491
|
|
|
474
492
|
|
|
@@ -478,12 +496,13 @@ class Ip4AddressString(ARLiteral):
|
|
|
478
496
|
|
|
479
497
|
Tags
|
|
480
498
|
* xml.xsd.customType=IP4-ADDRESS-STRING
|
|
481
|
-
* xml.xsd.pattern=(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|ANY
|
|
499
|
+
* xml.xsd.pattern=(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|ANY # noqa E501
|
|
482
500
|
* xml.xsd.type=string
|
|
483
501
|
'''
|
|
484
502
|
def __init__(self):
|
|
485
503
|
super().__init__()
|
|
486
504
|
|
|
505
|
+
|
|
487
506
|
class Ip6AddressString(ARLiteral):
|
|
488
507
|
'''
|
|
489
508
|
This is used to specify an IP6 address. Notation: FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
|
|
@@ -498,6 +517,7 @@ class Ip6AddressString(ARLiteral):
|
|
|
498
517
|
def __init__(self):
|
|
499
518
|
super().__init__()
|
|
500
519
|
|
|
520
|
+
|
|
501
521
|
class MacAddressString(ARLiteral):
|
|
502
522
|
'''
|
|
503
523
|
This primitive specifies a Mac Address. Notation: FF:FF:FF:FF:FF:FF
|
|
@@ -511,6 +531,7 @@ class MacAddressString(ARLiteral):
|
|
|
511
531
|
def __init__(self):
|
|
512
532
|
super().__init__()
|
|
513
533
|
|
|
534
|
+
|
|
514
535
|
class CategoryString(ARLiteral):
|
|
515
536
|
'''
|
|
516
537
|
This represents the pattern applicable to categories.
|
|
@@ -523,4 +544,9 @@ class CategoryString(ARLiteral):
|
|
|
523
544
|
* xml.xsd.type=string
|
|
524
545
|
'''
|
|
525
546
|
def __init__(self):
|
|
526
|
-
super().__init__()
|
|
547
|
+
super().__init__()
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
class ByteOrderEnum(AREnum):
|
|
551
|
+
def __init__(self):
|
|
552
|
+
super().__init__([])
|
|
@@ -1,5 +1,155 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
from xmlrpc.client import DateTime
|
|
3
|
+
|
|
4
|
+
from ....M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
|
|
5
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
6
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, RevisionLabelString
|
|
1
7
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
2
8
|
|
|
9
|
+
|
|
10
|
+
class LifeCyclePeriod(ARObject):
|
|
11
|
+
'''
|
|
12
|
+
This meta class represents the ability to specify a point of time within a specified period, e.g. the starting
|
|
13
|
+
or end point, in which a specific life cycle state is valid/applies to.
|
|
14
|
+
'''
|
|
15
|
+
def __init__(self):
|
|
16
|
+
super().__init__()
|
|
17
|
+
|
|
18
|
+
self.arReleaseVersion = None # type: RevisionLabelString
|
|
19
|
+
self.date = None # type: DateTime
|
|
20
|
+
self.productRelease = None # type: RevisionLabelString
|
|
21
|
+
|
|
22
|
+
def getArReleaseVersion(self):
|
|
23
|
+
return self.arReleaseVersion
|
|
24
|
+
|
|
25
|
+
def setArReleaseVersion(self, value):
|
|
26
|
+
if value is not None:
|
|
27
|
+
self.arReleaseVersion = value
|
|
28
|
+
return self
|
|
29
|
+
|
|
30
|
+
def getDate(self):
|
|
31
|
+
return self.date
|
|
32
|
+
|
|
33
|
+
def setDate(self, value):
|
|
34
|
+
if value is not None:
|
|
35
|
+
self.date = value
|
|
36
|
+
return self
|
|
37
|
+
|
|
38
|
+
def getProductRelease(self):
|
|
39
|
+
return self.productRelease
|
|
40
|
+
|
|
41
|
+
def setProductRelease(self, value):
|
|
42
|
+
if value is not None:
|
|
43
|
+
self.productRelease = value
|
|
44
|
+
return self
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class LifeCycleInfo(ARObject):
|
|
48
|
+
def __init__(self):
|
|
49
|
+
super().__init__()
|
|
50
|
+
|
|
51
|
+
self.lcObjectRef = None # type: RefType
|
|
52
|
+
self.lcStateRef = None # type: RefType
|
|
53
|
+
self.periodBegin = None # type: LifeCyclePeriod
|
|
54
|
+
self.periodEnd = None # type: LifeCyclePeriod
|
|
55
|
+
self.remark = None # type: DocumentationBlock
|
|
56
|
+
self.useInsteadRefs = [] # type: List[RefType]
|
|
57
|
+
|
|
58
|
+
def getLcObjectRef(self):
|
|
59
|
+
return self.lcObjectRef
|
|
60
|
+
|
|
61
|
+
def setLcObjectRef(self, value):
|
|
62
|
+
if value is not None:
|
|
63
|
+
self.lcObjectRef = value
|
|
64
|
+
return self
|
|
65
|
+
|
|
66
|
+
def getLcStateRef(self):
|
|
67
|
+
return self.lcStateRef
|
|
68
|
+
|
|
69
|
+
def setLcStateRef(self, value):
|
|
70
|
+
if value is not None:
|
|
71
|
+
self.lcStateRef = value
|
|
72
|
+
return self
|
|
73
|
+
|
|
74
|
+
def getPeriodBegin(self):
|
|
75
|
+
return self.periodBegin
|
|
76
|
+
|
|
77
|
+
def setPeriodBegin(self, value):
|
|
78
|
+
if value is not None:
|
|
79
|
+
self.periodBegin = value
|
|
80
|
+
return self
|
|
81
|
+
|
|
82
|
+
def getPeriodEnd(self):
|
|
83
|
+
return self.periodEnd
|
|
84
|
+
|
|
85
|
+
def setPeriodEnd(self, value):
|
|
86
|
+
if value is not None:
|
|
87
|
+
self.periodEnd = value
|
|
88
|
+
return self
|
|
89
|
+
|
|
90
|
+
def getRemark(self):
|
|
91
|
+
return self.remark
|
|
92
|
+
|
|
93
|
+
def setRemark(self, value):
|
|
94
|
+
if value is not None:
|
|
95
|
+
self.remark = value
|
|
96
|
+
return self
|
|
97
|
+
|
|
98
|
+
def getUseInsteadRefs(self):
|
|
99
|
+
return self.useInsteadRefs
|
|
100
|
+
|
|
101
|
+
def addUseInsteadRef(self, value):
|
|
102
|
+
if value is not None:
|
|
103
|
+
self.useInsteadRefs.append(value)
|
|
104
|
+
return self
|
|
105
|
+
|
|
106
|
+
|
|
3
107
|
class LifeCycleInfoSet(ARElement):
|
|
4
108
|
def __init__(self, parent, short_name):
|
|
5
|
-
super().__init__(parent, short_name)
|
|
109
|
+
super().__init__(parent, short_name)
|
|
110
|
+
|
|
111
|
+
self.defaultLcStateRef = None # type: RefType
|
|
112
|
+
self.defaultPeriodBegin = None # type: LifeCyclePeriod
|
|
113
|
+
self.defaultPeriodEnd = None # type: LifeCyclePeriod
|
|
114
|
+
self.lifeCycleInfos = [] # type: List[LifeCycleInfo]
|
|
115
|
+
self.usedLifeCycleStateDefinitionGroupRef = None # type: RefType
|
|
116
|
+
|
|
117
|
+
def getDefaultLcStateRef(self):
|
|
118
|
+
return self.defaultLcStateRef
|
|
119
|
+
|
|
120
|
+
def setDefaultLcStateRef(self, value):
|
|
121
|
+
if value is not None:
|
|
122
|
+
self.defaultLcStateRef = value
|
|
123
|
+
return self
|
|
124
|
+
|
|
125
|
+
def getDefaultPeriodBegin(self):
|
|
126
|
+
return self.defaultPeriodBegin
|
|
127
|
+
|
|
128
|
+
def setDefaultPeriodBegin(self, value):
|
|
129
|
+
if value is not None:
|
|
130
|
+
self.defaultPeriodBegin = value
|
|
131
|
+
return self
|
|
132
|
+
|
|
133
|
+
def getDefaultPeriodEnd(self):
|
|
134
|
+
return self.defaultPeriodEnd
|
|
135
|
+
|
|
136
|
+
def setDefaultPeriodEnd(self, value):
|
|
137
|
+
if value is not None:
|
|
138
|
+
self.defaultPeriodEnd = value
|
|
139
|
+
return self
|
|
140
|
+
|
|
141
|
+
def getLifeCycleInfos(self):
|
|
142
|
+
return self.lifeCycleInfos
|
|
143
|
+
|
|
144
|
+
def addLifeCycleInfo(self, value):
|
|
145
|
+
if value is not None:
|
|
146
|
+
self.lifeCycleInfos.append(value)
|
|
147
|
+
return self
|
|
148
|
+
|
|
149
|
+
def getUsedLifeCycleStateDefinitionGroupRef(self):
|
|
150
|
+
return self.usedLifeCycleStateDefinitionGroupRef
|
|
151
|
+
|
|
152
|
+
def setUsedLifeCycleStateDefinitionGroupRef(self, value):
|
|
153
|
+
if value is not None:
|
|
154
|
+
self.usedLifeCycleStateDefinitionGroupRef = value
|
|
155
|
+
return self
|
|
@@ -442,8 +442,11 @@ class CompositionSwComponentType(SwComponentType):
|
|
|
442
442
|
def getDelegationSwConnectors(self) -> List[DelegationSwConnector]:
|
|
443
443
|
return list(sorted(filter(lambda e: isinstance(e, DelegationSwConnector), self.elements.values()), key=lambda c: c.short_name))
|
|
444
444
|
|
|
445
|
+
# def getSwConnectors(self) -> List[SwConnector]:
|
|
446
|
+
# return list(sorted(filter(lambda e: isinstance(e, SwConnector), self.elements.values()), key=lambda c: c.short_name))
|
|
447
|
+
|
|
445
448
|
def getSwConnectors(self) -> List[SwConnector]:
|
|
446
|
-
return list(
|
|
449
|
+
return list(filter(lambda e: isinstance(e, SwConnector), self.elements.values()))
|
|
447
450
|
|
|
448
451
|
def createSwComponentPrototype(self, short_name: str) -> SwComponentPrototype:
|
|
449
452
|
if (not self.IsElementExists(short_name)):
|