armodel 1.6.4__py3-none-any.whl → 1.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- armodel/cli/arxml_format_cli.py +14 -11
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +1 -1
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +86 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +3 -4
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +3 -1
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +70 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +21 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +24 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +173 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +6 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +237 -28
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +223 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +177 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +37 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +88 -16
- armodel/models/__init__.py +12 -1
- armodel/parser/abstract_arxml_parser.py +50 -16
- armodel/parser/arxml_parser.py +249 -80
- armodel/tests/test_armodel/parser/test_sw_components.py +0 -22
- armodel/tests/test_armodel/parser/test_system.py +2 -2
- armodel/writer/abstract_arxml_writer.py +10 -1
- armodel/writer/arxml_writer.py +215 -58
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/METADATA +15 -1
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/RECORD +28 -24
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/LICENSE +0 -0
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/WHEEL +0 -0
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/entry_points.txt +0 -0
- {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/top_level.txt +0 -0
armodel/cli/arxml_format_cli.py
CHANGED
|
@@ -8,17 +8,7 @@ from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
|
8
8
|
from ..parser.arxml_parser import ARXMLParser
|
|
9
9
|
from ..writer import ARXMLWriter
|
|
10
10
|
|
|
11
|
-
def
|
|
12
|
-
version = pkg_resources.require("armodel")[0].version
|
|
13
|
-
|
|
14
|
-
ap = argparse.ArgumentParser()
|
|
15
|
-
ap.add_argument("-v", "--verbose", required= False, help= "Print debug information", action= "store_true")
|
|
16
|
-
ap.add_argument("-w", "--warning", required= False, help= "Skip the error and report it as warning message", action= "store_true")
|
|
17
|
-
ap.add_argument("INPUT", help = "The path of AUTOSAR ARXML file")
|
|
18
|
-
ap.add_argument("OUTPUT", help = "The path of output ARXML file")
|
|
19
|
-
|
|
20
|
-
args = ap.parse_args()
|
|
21
|
-
|
|
11
|
+
def perform_format(args):
|
|
22
12
|
logger = logging.getLogger()
|
|
23
13
|
|
|
24
14
|
formatter = logging.Formatter('[%(levelname)s] : %(message)s')
|
|
@@ -64,5 +54,18 @@ def main():
|
|
|
64
54
|
logger.error(e)
|
|
65
55
|
raise e
|
|
66
56
|
|
|
57
|
+
def main():
|
|
58
|
+
version = pkg_resources.require("armodel")[0].version
|
|
59
|
+
|
|
60
|
+
ap = argparse.ArgumentParser()
|
|
61
|
+
ap.add_argument("-v", "--verbose", required= False, help= "Print debug information", action= "store_true")
|
|
62
|
+
ap.add_argument("-w", "--warning", required= False, help= "Skip the error and report it as warning message", action= "store_true")
|
|
63
|
+
ap.add_argument("INPUT", help = "The path of AUTOSAR ARXML file")
|
|
64
|
+
ap.add_argument("OUTPUT", help = "The path of output ARXML file")
|
|
65
|
+
|
|
66
|
+
args = ap.parse_args()
|
|
67
|
+
|
|
68
|
+
perform_format(args)
|
|
69
|
+
|
|
67
70
|
if __name__ == "__main__":
|
|
68
71
|
main()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
2
|
-
from ....M2.AUTOSARTemplates.
|
|
2
|
+
from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
|
|
3
3
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
4
4
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean, ARFloat, ARNumerical
|
|
5
5
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, PositiveInteger, UnlimitedInteger
|
|
2
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class DataFilterTypeEnum(AREnum):
|
|
6
|
+
|
|
7
|
+
maskedNewDiffersMaskedOld = "maskedNewDiffersMaskedOld"
|
|
8
|
+
maskedNewDiffersX = "maskedNewDiffersX"
|
|
9
|
+
maskedNewEqualsX = "maskedNewEqualsX"
|
|
10
|
+
never = "never"
|
|
11
|
+
newIsOutside = "newIsOutside"
|
|
12
|
+
newIsWithin = "newIsWithin"
|
|
13
|
+
oneEveryN = "oneEveryN"
|
|
14
|
+
|
|
15
|
+
def __init__(self):
|
|
16
|
+
super().__init__((
|
|
17
|
+
self.maskedNewDiffersMaskedOld,
|
|
18
|
+
self.maskedNewDiffersX,
|
|
19
|
+
self.maskedNewEqualsX,
|
|
20
|
+
self.never,
|
|
21
|
+
self.newIsOutside,
|
|
22
|
+
self.newIsWithin,
|
|
23
|
+
self.oneEveryN
|
|
24
|
+
))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class DataFilter(ARObject):
|
|
28
|
+
def __init__(self):
|
|
29
|
+
super().__init__()
|
|
30
|
+
|
|
31
|
+
self.dataFilterType = None # type: DataFilterTypeEnum
|
|
32
|
+
self.mask = None # type: UnlimitedInteger
|
|
33
|
+
self.max = None # type: UnlimitedInteger
|
|
34
|
+
self.min = None # type: UnlimitedInteger
|
|
35
|
+
self.offset = None # type: PositiveInteger
|
|
36
|
+
self.period = None # type: PositiveInteger
|
|
37
|
+
self.x = None # type: UnlimitedInteger
|
|
38
|
+
|
|
39
|
+
def getDataFilterType(self):
|
|
40
|
+
return self.dataFilterType
|
|
41
|
+
|
|
42
|
+
def setDataFilterType(self, value):
|
|
43
|
+
self.dataFilterType = value
|
|
44
|
+
return self
|
|
45
|
+
|
|
46
|
+
def getMask(self):
|
|
47
|
+
return self.mask
|
|
48
|
+
|
|
49
|
+
def setMask(self, value):
|
|
50
|
+
self.mask = value
|
|
51
|
+
return self
|
|
52
|
+
|
|
53
|
+
def getMax(self):
|
|
54
|
+
return self.max
|
|
55
|
+
|
|
56
|
+
def setMax(self, value):
|
|
57
|
+
self.max = value
|
|
58
|
+
return self
|
|
59
|
+
|
|
60
|
+
def getMin(self):
|
|
61
|
+
return self.min
|
|
62
|
+
|
|
63
|
+
def setMin(self, value):
|
|
64
|
+
self.min = value
|
|
65
|
+
return self
|
|
66
|
+
|
|
67
|
+
def getOffset(self):
|
|
68
|
+
return self.offset
|
|
69
|
+
|
|
70
|
+
def setOffset(self, value):
|
|
71
|
+
self.offset = value
|
|
72
|
+
return self
|
|
73
|
+
|
|
74
|
+
def getPeriod(self):
|
|
75
|
+
return self.period
|
|
76
|
+
|
|
77
|
+
def setPeriod(self, value):
|
|
78
|
+
self.period = value
|
|
79
|
+
return self
|
|
80
|
+
|
|
81
|
+
def getX(self):
|
|
82
|
+
return self.x
|
|
83
|
+
|
|
84
|
+
def setX(self, value):
|
|
85
|
+
self.x = value
|
|
86
|
+
return self
|
|
@@ -7,10 +7,9 @@ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTy
|
|
|
7
7
|
from ....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ParameterDataPrototype
|
|
8
8
|
|
|
9
9
|
class ReentrancyLevelEnum(Enum):
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
ENUM_MULTICORE_REENTRANT = "multicoreReentrant"
|
|
11
|
+
ENUM_NON_REENTRANT = "nonReentrant"
|
|
12
|
+
ENUM_SINGLE_CORE_REENTRANT = "singleCoreReentrant"
|
|
14
13
|
|
|
15
14
|
class ExclusiveArea(Identifiable):
|
|
16
15
|
def __init__(self, parent: ARObject, short_name: str):
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
from typing import Dict, List
|
|
2
|
+
|
|
3
|
+
from ...SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
2
4
|
from .....M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming
|
|
3
5
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType, ServiceSwComponentType, SwComponentType, ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, EcuAbstractionSwComponentType, SensorActuatorSwComponentType
|
|
4
6
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
|
|
@@ -22,7 +24,7 @@ from .....M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndT
|
|
|
22
24
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame
|
|
23
25
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway
|
|
24
26
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DcmIPdu, ISignal, ISignalGroup, ISignalIPdu, ISignalIPduGroup, NPdu, NmPdu, SecuredIPdu, SystemSignal, SystemSignalGroup
|
|
25
|
-
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CanCluster,
|
|
27
|
+
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CanCluster, LinCluster
|
|
26
28
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinUnconditionalFrame
|
|
27
29
|
from .....M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping
|
|
28
30
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
|
armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
2
|
import re
|
|
3
|
+
from typing import List
|
|
3
4
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
4
5
|
|
|
5
6
|
class ARType(metaclass = ABCMeta):
|
|
@@ -101,6 +102,16 @@ class ARFloat(ARNumerical):
|
|
|
101
102
|
else:
|
|
102
103
|
return str(self._value)
|
|
103
104
|
|
|
105
|
+
class Float(ARFloat):
|
|
106
|
+
'''
|
|
107
|
+
An instance of Float is an element from the set of real numbers.
|
|
108
|
+
Tags:
|
|
109
|
+
* xml.xsd.customType=FLOAT
|
|
110
|
+
* xml.xsd.type=double
|
|
111
|
+
'''
|
|
112
|
+
def __init__(self):
|
|
113
|
+
super().__init__()
|
|
114
|
+
|
|
104
115
|
class TimeValue(ARFloat):
|
|
105
116
|
'''
|
|
106
117
|
This primitive type is taken for expressing time values. The numerical value is supposed to be interpreted
|
|
@@ -137,6 +148,23 @@ class ARLiteral(ARType):
|
|
|
137
148
|
def upper(self) -> str:
|
|
138
149
|
return self.value.upper()
|
|
139
150
|
|
|
151
|
+
class AREnum(ARLiteral):
|
|
152
|
+
def __init__(self, enum_values: List[str]):
|
|
153
|
+
super().__init__()
|
|
154
|
+
|
|
155
|
+
self.enumValues = enum_values # List[str]
|
|
156
|
+
|
|
157
|
+
def getEnumValues(self):
|
|
158
|
+
return self.enumValues
|
|
159
|
+
|
|
160
|
+
def setEnumValues(self, values: List[str]):
|
|
161
|
+
self.enumValues = values
|
|
162
|
+
return self
|
|
163
|
+
|
|
164
|
+
def validateEnumValue(self, value: str):
|
|
165
|
+
if value in self.enumValues:
|
|
166
|
+
return True
|
|
167
|
+
return False
|
|
140
168
|
|
|
141
169
|
class String(ARLiteral):
|
|
142
170
|
|
|
@@ -177,9 +205,9 @@ class ARBoolean(ARType):
|
|
|
177
205
|
|
|
178
206
|
def _convertStringToBoolean(self, value: str) -> bool:
|
|
179
207
|
value = value.lower()
|
|
180
|
-
if value == "true":
|
|
208
|
+
if value == "true" or value == "1":
|
|
181
209
|
return True
|
|
182
|
-
elif value == "false":
|
|
210
|
+
elif value == "false" or value == "0":
|
|
183
211
|
return False
|
|
184
212
|
else:
|
|
185
213
|
return self._convertNumberToBoolean(int(value))
|
|
@@ -239,6 +267,16 @@ class PositiveInteger(ARPositiveInteger):
|
|
|
239
267
|
def __init__(self):
|
|
240
268
|
super().__init__()
|
|
241
269
|
|
|
270
|
+
class PositiveUnlimitedInteger(ARPositiveInteger):
|
|
271
|
+
'''
|
|
272
|
+
This is a positive unlimited integer which can be denoted in decimal, binary, octal and hexadecimal.
|
|
273
|
+
|
|
274
|
+
Tags:
|
|
275
|
+
* xml.xsd.customType=POSITIVE-UNLIMITED-INTEGER
|
|
276
|
+
* xml.xsd.pattern=0|[\+]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
|
|
277
|
+
* xml.xsd.type=string
|
|
278
|
+
'''
|
|
279
|
+
|
|
242
280
|
class Integer(ARNumerical):
|
|
243
281
|
'''
|
|
244
282
|
An instance of Integer is an element in the set of integer numbers ( ..., -2, -1, 0, 1, 2, ...).
|
|
@@ -254,6 +292,21 @@ class Integer(ARNumerical):
|
|
|
254
292
|
def __init__(self):
|
|
255
293
|
super().__init__()
|
|
256
294
|
|
|
295
|
+
class UnlimitedInteger(Integer):
|
|
296
|
+
'''
|
|
297
|
+
An instance of UnlimitedInteger is an element in the set of integer numbers ( ..., -2, -1, 0, 1, 2, ...).
|
|
298
|
+
The range is limited by constraint 2534.
|
|
299
|
+
The value can be expressed in decimal, octal, hexadecimal and binary representation. Negative numbers
|
|
300
|
+
can only be expressed in decimal notation.
|
|
301
|
+
|
|
302
|
+
Tags:
|
|
303
|
+
* xml.xsd.customType=UNLIMITED-INTEGER
|
|
304
|
+
* xml.xsd.pattern=0|[\+\-]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
|
|
305
|
+
* xml.xsd.type=string
|
|
306
|
+
'''
|
|
307
|
+
def __init__(self):
|
|
308
|
+
super().__init__()
|
|
309
|
+
|
|
257
310
|
class Boolean(ARBoolean):
|
|
258
311
|
'''
|
|
259
312
|
A Boolean value denotes a logical condition that is either 'true' or 'false'. It can be one of "0", "1", "true",
|
|
@@ -282,6 +335,21 @@ class Identifier(ARLiteral):
|
|
|
282
335
|
'''
|
|
283
336
|
def __init__(self):
|
|
284
337
|
super().__init__()
|
|
338
|
+
|
|
339
|
+
class RevisionLabelString(ARLiteral):
|
|
340
|
+
'''
|
|
341
|
+
This primitive represents an internal AUTOSAR revision label which identifies an engineering object. It
|
|
342
|
+
represents a pattern which
|
|
343
|
+
* supports three integers representing from left to right MajorVersion, MinorVersion, PatchVersion.
|
|
344
|
+
* may add an application specific suffix separated by one of ".", "_", ";".
|
|
345
|
+
Legal patterns are for example:
|
|
346
|
+
* 4.0.0
|
|
347
|
+
* 4.0.0.1234565
|
|
348
|
+
* 4.0.0_vendor specific;13
|
|
349
|
+
* 4.0.0;12
|
|
350
|
+
'''
|
|
351
|
+
|
|
352
|
+
|
|
285
353
|
class Limit(ARObject):
|
|
286
354
|
def __init__(self):
|
|
287
355
|
super().__init__()
|
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
2
|
from typing import List
|
|
3
|
+
from ....M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps
|
|
4
|
+
from ....M2.AUTOSARTemplates.CommonStructure import ValueSpecification
|
|
5
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
6
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, ARLiteral, ARNumerical, ARPositiveInteger
|
|
7
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
|
|
8
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
|
|
9
|
+
from ....M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
|
|
10
|
+
|
|
11
|
+
class HandleInvalidEnum(AREnum):
|
|
12
|
+
DONT_INVALIDATE = "dontInvalidate"
|
|
13
|
+
EXTERNAL_REPLACEMENT = "externalReplacement"
|
|
14
|
+
KEEP = "keep"
|
|
15
|
+
REPLACE = "replace"
|
|
3
16
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
17
|
+
def __init__(self):
|
|
18
|
+
super().__init__((
|
|
19
|
+
HandleInvalidEnum.DONT_INVALIDATE,
|
|
20
|
+
HandleInvalidEnum.EXTERNAL_REPLACEMENT,
|
|
21
|
+
HandleInvalidEnum.KEEP,
|
|
22
|
+
HandleInvalidEnum.REPLACE
|
|
23
|
+
))
|
|
24
|
+
|
|
12
25
|
|
|
13
26
|
class PPortComSpec(ARObject, metaclass = ABCMeta):
|
|
14
27
|
"""
|
armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, RefType
|
|
2
|
+
from typing import List
|
|
1
3
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.RPTScenario import ModeAccessPointIdent
|
|
2
4
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef
|
|
3
5
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AccessCount import AbstractAccessPoint
|
|
@@ -36,3 +38,25 @@ class ModeSwitchPoint(AbstractAccessPoint):
|
|
|
36
38
|
def setModeGroupIRef(self, value):
|
|
37
39
|
self.modeGroupIRef = value
|
|
38
40
|
return self
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class IncludedModeDeclarationGroupSet(ARObject):
|
|
44
|
+
def __init__(self):
|
|
45
|
+
super().__init__()
|
|
46
|
+
|
|
47
|
+
self.mode_declaration_group_refs = [] # type: List[RefType]
|
|
48
|
+
self.prefix = None # type: ARLiteral
|
|
49
|
+
|
|
50
|
+
def addModeDeclarationGroupRef(self, ref: RefType):
|
|
51
|
+
self.mode_declaration_group_refs.append(ref)
|
|
52
|
+
return self
|
|
53
|
+
|
|
54
|
+
def getModeDeclarationGroupRefs(self) -> List[RefType]:
|
|
55
|
+
return self.mode_declaration_group_refs
|
|
56
|
+
|
|
57
|
+
def setPrefix(self, prefix: str):
|
|
58
|
+
self.prefix = prefix
|
|
59
|
+
return self
|
|
60
|
+
|
|
61
|
+
def getPrefix(self) -> ARLiteral:
|
|
62
|
+
return self.prefix
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
from abc import ABCMeta
|
|
2
|
+
|
|
3
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Float, Integer, PositiveInteger, PositiveUnlimitedInteger
|
|
4
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
5
|
+
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
|
|
6
|
+
|
|
7
|
+
class AbstractCanCommunicationControllerAttributes(ARObject, metaclass = ABCMeta):
|
|
8
|
+
def __init__(self):
|
|
9
|
+
super().__init__()
|
|
10
|
+
|
|
11
|
+
self.canControllerFdAttributes = None # type: CanControllerFdConfiguration
|
|
12
|
+
self.canControllerFdRequirements = None # type: CanControllerFdConfigurationRequirements
|
|
13
|
+
self.canControllerXlAttributes = None # type: CanControllerXlConfiguration
|
|
14
|
+
self.canControllerXlRequirements = None # type: CanControllerXlConfigurationRequirements
|
|
15
|
+
|
|
16
|
+
def getCanControllerFdAttributes(self):
|
|
17
|
+
return self.canControllerFdAttributes
|
|
18
|
+
|
|
19
|
+
def setCanControllerFdAttributes(self, value):
|
|
20
|
+
self.canControllerFdAttributes = value
|
|
21
|
+
return self
|
|
22
|
+
|
|
23
|
+
def getCanControllerFdRequirements(self):
|
|
24
|
+
return self.canControllerFdRequirements
|
|
25
|
+
|
|
26
|
+
def setCanControllerFdRequirements(self, value):
|
|
27
|
+
self.canControllerFdRequirements = value
|
|
28
|
+
return self
|
|
29
|
+
|
|
30
|
+
def getCanControllerXlAttributes(self):
|
|
31
|
+
return self.canControllerXlAttributes
|
|
32
|
+
|
|
33
|
+
def setCanControllerXlAttributes(self, value):
|
|
34
|
+
self.canControllerXlAttributes = value
|
|
35
|
+
return self
|
|
36
|
+
|
|
37
|
+
def getCanControllerXlRequirements(self):
|
|
38
|
+
return self.canControllerXlRequirements
|
|
39
|
+
|
|
40
|
+
def setCanControllerXlRequirements(self, value):
|
|
41
|
+
self.canControllerXlRequirements = value
|
|
42
|
+
return self
|
|
43
|
+
|
|
44
|
+
class CanControllerConfigurationRequirements(AbstractCanCommunicationControllerAttributes):
|
|
45
|
+
def __init__(self):
|
|
46
|
+
super().__init__()
|
|
47
|
+
|
|
48
|
+
self.maxNumberOfTimeQuantaPerBit = None # type: Integer
|
|
49
|
+
self.maxSamplePoint = None # type: Float
|
|
50
|
+
self.maxSyncJumpWidth = None # type: Float
|
|
51
|
+
self.minNumberOfTimeQuantaPerBit = None # type: Integer
|
|
52
|
+
self.minSamplePoint = None # type: Float
|
|
53
|
+
self.minSyncJumpWidth = None # type: Float
|
|
54
|
+
|
|
55
|
+
def getMaxNumberOfTimeQuantaPerBit(self):
|
|
56
|
+
return self.maxNumberOfTimeQuantaPerBit
|
|
57
|
+
|
|
58
|
+
def setMaxNumberOfTimeQuantaPerBit(self, value):
|
|
59
|
+
self.maxNumberOfTimeQuantaPerBit = value
|
|
60
|
+
return self
|
|
61
|
+
|
|
62
|
+
def getMaxSamplePoint(self):
|
|
63
|
+
return self.maxSamplePoint
|
|
64
|
+
|
|
65
|
+
def setMaxSamplePoint(self, value):
|
|
66
|
+
self.maxSamplePoint = value
|
|
67
|
+
return self
|
|
68
|
+
|
|
69
|
+
def getMaxSyncJumpWidth(self):
|
|
70
|
+
return self.maxSyncJumpWidth
|
|
71
|
+
|
|
72
|
+
def setMaxSyncJumpWidth(self, value):
|
|
73
|
+
self.maxSyncJumpWidth = value
|
|
74
|
+
return self
|
|
75
|
+
|
|
76
|
+
def getMinNumberOfTimeQuantaPerBit(self):
|
|
77
|
+
return self.minNumberOfTimeQuantaPerBit
|
|
78
|
+
|
|
79
|
+
def setMinNumberOfTimeQuantaPerBit(self, value):
|
|
80
|
+
self.minNumberOfTimeQuantaPerBit = value
|
|
81
|
+
return self
|
|
82
|
+
|
|
83
|
+
def getMinSamplePoint(self):
|
|
84
|
+
return self.minSamplePoint
|
|
85
|
+
|
|
86
|
+
def setMinSamplePoint(self, value):
|
|
87
|
+
self.minSamplePoint = value
|
|
88
|
+
return self
|
|
89
|
+
|
|
90
|
+
def getMinSyncJumpWidth(self):
|
|
91
|
+
return self.minSyncJumpWidth
|
|
92
|
+
|
|
93
|
+
def setMinSyncJumpWidth(self, value):
|
|
94
|
+
self.minSyncJumpWidth = value
|
|
95
|
+
return self
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
class AbstractCanCommunicationController(CommunicationController, metaclass = ABCMeta):
|
|
100
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
101
|
+
if type(self) == AbstractCanCommunicationController:
|
|
102
|
+
raise NotImplementedError("AbstractCanCommunicationController is an abstract class.")
|
|
103
|
+
|
|
104
|
+
super().__init__(parent, short_name)
|
|
105
|
+
|
|
106
|
+
self.canControllerAttributes = None # type: AbstractCanCommunicationControllerAttributes
|
|
107
|
+
|
|
108
|
+
def getCanControllerAttributes(self):
|
|
109
|
+
return self.canControllerAttributes
|
|
110
|
+
|
|
111
|
+
def setCanControllerAttributes(self, value):
|
|
112
|
+
self.canControllerAttributes = value
|
|
113
|
+
return self
|
|
114
|
+
|
|
115
|
+
class CanCommunicationController(AbstractCanCommunicationController):
|
|
116
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
117
|
+
super().__init__(parent, short_name)
|
|
118
|
+
|
|
119
|
+
class AbstractCanCommunicationConnector(CommunicationConnector, metaclass = ABCMeta):
|
|
120
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
121
|
+
if type(self) == AbstractCanCommunicationConnector:
|
|
122
|
+
raise NotImplementedError("AbstractCanCommunicationConnector is an abstract class.")
|
|
123
|
+
|
|
124
|
+
super().__init__(parent, short_name)
|
|
125
|
+
|
|
126
|
+
class CanCommunicationConnector(AbstractCanCommunicationConnector):
|
|
127
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
128
|
+
super().__init__(parent, short_name)
|
|
129
|
+
|
|
130
|
+
# type: PositiveInteger
|
|
131
|
+
self.pncWakeupCanId = None
|
|
132
|
+
self.pncWakeupCanIdExtended = None # type: Boolean
|
|
133
|
+
# type: PositiveInteger
|
|
134
|
+
self.pncWakeupCanIdMask = None
|
|
135
|
+
# type: PositiveUnlimitedInteger
|
|
136
|
+
self.pncWakeupDataMask = None
|
|
137
|
+
# type: PositiveInteger
|
|
138
|
+
self.pncWakeupDlc = None
|
|
139
|
+
|
|
140
|
+
def getPncWakeupCanId(self):
|
|
141
|
+
return self.pncWakeupCanId
|
|
142
|
+
|
|
143
|
+
def setPncWakeupCanId(self, value):
|
|
144
|
+
self.pncWakeupCanId = value
|
|
145
|
+
return self
|
|
146
|
+
|
|
147
|
+
def getPncWakeupCanIdExtended(self):
|
|
148
|
+
return self.pncWakeupCanIdExtended
|
|
149
|
+
|
|
150
|
+
def setPncWakeupCanIdExtended(self, value):
|
|
151
|
+
self.pncWakeupCanIdExtended = value
|
|
152
|
+
return self
|
|
153
|
+
|
|
154
|
+
def getPncWakeupCanIdMask(self):
|
|
155
|
+
return self.pncWakeupCanIdMask
|
|
156
|
+
|
|
157
|
+
def setPncWakeupCanIdMask(self, value):
|
|
158
|
+
self.pncWakeupCanIdMask = value
|
|
159
|
+
return self
|
|
160
|
+
|
|
161
|
+
def getPncWakeupDataMask(self):
|
|
162
|
+
return self.pncWakeupDataMask
|
|
163
|
+
|
|
164
|
+
def setPncWakeupDataMask(self, value):
|
|
165
|
+
self.pncWakeupDataMask = value
|
|
166
|
+
return self
|
|
167
|
+
|
|
168
|
+
def getPncWakeupDlc(self):
|
|
169
|
+
return self.pncWakeupDlc
|
|
170
|
+
|
|
171
|
+
def setPncWakeupDlc(self, value):
|
|
172
|
+
self.pncWakeupDlc = value
|
|
173
|
+
return self
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
2
|
from typing import List
|
|
3
3
|
|
|
4
|
-
from
|
|
5
|
-
|
|
6
|
-
from
|
|
4
|
+
from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeDeclaration
|
|
5
|
+
|
|
6
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, Describable
|
|
7
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
8
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, RefType, ARBoolean, TimeValue
|
|
7
9
|
|
|
8
10
|
class FibexElement(Identifiable, metaclass = ABCMeta):
|
|
9
11
|
def __init__(self, parent: ARObject, short_name: str):
|
|
@@ -279,14 +281,12 @@ class DcmIPdu(IPdu):
|
|
|
279
281
|
self.diagPduType = value
|
|
280
282
|
return self
|
|
281
283
|
|
|
282
|
-
|
|
283
284
|
class IPduTiming(Describable):
|
|
284
285
|
def __init__(self):
|
|
285
286
|
super().__init__()
|
|
286
287
|
|
|
287
288
|
self.minimumDelay = None # type: TimeValue
|
|
288
|
-
# type: TransmissionModeDeclaration
|
|
289
|
-
self.transmissionModeDeclaration = None
|
|
289
|
+
self.transmissionModeDeclaration = None # type: TransmissionModeDeclaration
|
|
290
290
|
|
|
291
291
|
def getMinimumDelay(self):
|
|
292
292
|
return self.minimumDelay
|