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.
Files changed (28) hide show
  1. armodel/cli/arxml_format_cli.py +14 -11
  2. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +1 -1
  3. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +86 -0
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +3 -4
  5. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +3 -1
  6. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +70 -2
  7. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +21 -8
  8. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +24 -0
  9. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +173 -0
  10. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +6 -6
  11. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +237 -28
  12. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +223 -0
  13. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +177 -0
  14. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +37 -0
  15. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +88 -16
  16. armodel/models/__init__.py +12 -1
  17. armodel/parser/abstract_arxml_parser.py +50 -16
  18. armodel/parser/arxml_parser.py +249 -80
  19. armodel/tests/test_armodel/parser/test_sw_components.py +0 -22
  20. armodel/tests/test_armodel/parser/test_system.py +2 -2
  21. armodel/writer/abstract_arxml_writer.py +10 -1
  22. armodel/writer/arxml_writer.py +215 -58
  23. {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/METADATA +15 -1
  24. {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/RECORD +28 -24
  25. {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/LICENSE +0 -0
  26. {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/WHEEL +0 -0
  27. {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/entry_points.txt +0 -0
  28. {armodel-1.6.4.dist-info → armodel-1.7.0.dist-info}/top_level.txt +0 -0
@@ -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 main():
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.CommonStructure.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
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
- multicoreReentrant = "multicoreReentrant"
11
- nonReentrant = "nonReentrant"
12
- singleCoreReentrant = "singleCoreReentrant"
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, EcuInstance, LinCluster
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
@@ -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
- from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
5
-
6
- from ..GenericStructure.GeneralTemplateClasses.ArObject import ARObject
7
- from ..GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger
8
- from ..GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
9
- from ..GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
10
- from ...MSR.DataDictionary.DataDefProperties import SwDataDefProps
11
- from ..CommonStructure import ValueSpecification
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
  """
@@ -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 ....GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, Describable
5
- from ....GenericStructure.GeneralTemplateClasses.ArObject import ARObject
6
- from ....GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, RefType, ARBoolean
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