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.
Files changed (47) hide show
  1. armodel/cli/arxml_dump_cli.py +2 -2
  2. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +53 -16
  3. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +41 -19
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +14 -14
  5. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +22 -11
  6. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +26 -9
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +8 -0
  8. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +711 -27
  9. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +1 -1
  10. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +91 -14
  11. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +17 -4
  12. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +78 -11
  13. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +5 -0
  14. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +41 -3
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -15
  16. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -8
  17. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +44 -1
  18. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +46 -5
  19. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +56 -35
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +1 -1
  21. armodel/models/M2/MSR/AsamHdo/AdminData.py +34 -8
  22. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +170 -23
  23. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +4 -4
  24. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +130 -37
  25. armodel/models/M2/MSR/Documentation/Annotation.py +1 -1
  26. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +54 -0
  27. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +9 -0
  28. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +25 -0
  29. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +33 -5
  30. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +15 -2
  31. armodel/models/M2/MSR/Documentation/__init__.py +1 -1
  32. armodel/models/__init__.py +4 -1
  33. armodel/parser/abstract_arxml_parser.py +31 -15
  34. armodel/parser/arxml_parser.py +456 -237
  35. armodel/tests/test_armodel/models/test_ar_ref.py +7 -4
  36. armodel/tests/test_armodel/models/test_datatype.py +4 -4
  37. armodel/tests/test_armodel/models/test_m2_msr.py +5 -5
  38. armodel/tests/test_armodel/parser/test_sw_components.py +10 -1
  39. armodel/tests/test_armodel/parser/test_system.py +0 -1
  40. armodel/writer/abstract_arxml_writer.py +17 -8
  41. armodel/writer/arxml_writer.py +436 -195
  42. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/METADATA +29 -1
  43. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/RECORD +47 -43
  44. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/LICENSE +0 -0
  45. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/WHEEL +0 -0
  46. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/entry_points.txt +0 -0
  47. {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 ...M2.MSR.Documentation.BlockElements import DocumentationBlock
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 ...SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
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.GeneralTemplateClasses.Identifiable import Identifiable, Referrable
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._ar_packages = {} # type: Dict[str, ARPackage]
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._ar_packages.values(), key= lambda a: a.short_name))
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._ar_packages:
120
+ if short_name not in self.arPackages:
58
121
  ar_package = ARPackage(self, short_name)
59
- self._ar_packages[short_name] = ar_package
60
- return self._ar_packages[short_name]
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._ar_packages):
64
- return self._ar_packages[short_name]
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
- sr_interface = GenericEthernetFrame(self, short_name)
118
- self.addElement(sr_interface)
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 = [] # type: List[Annotation]
93
- self.adminData = None # type: AdminData
94
- self.category = None # type: ARLiteral
95
- self.desc = None # type: MultiLanguageOverviewParagraph
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)
@@ -167,9 +167,12 @@ class AREnum(ARLiteral):
167
167
  return False
168
168
 
169
169
  class String(ARLiteral):
170
-
171
- pass
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 # type: str
358
- self.value = None # type: str
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.dest = ""
364
- self.value = ""
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
+
@@ -0,0 +1,5 @@
1
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
2
+
3
+ class LifeCycleInfoSet(ARElement):
4
+ def __init__(self, parent, short_name):
5
+ super().__init__(parent, short_name)
@@ -62,9 +62,22 @@ class CompositeNetworkRepresentation(ARObject):
62
62
  def __init__(self):
63
63
  super().__init__()
64
64
 
65
- self.leaf_element_iref = None # type: ApplicationCompositeElementInPortInterfaceInstanceRef
66
- self.network_representation = None # type: SwDataDefProps
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: ARLiteral
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.provided_com_specs = [] # type: List[PPortComSpec]
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.provided_com_specs.append(com_spec)
111
+ self.providedComSpecs.append(com_spec)
112
112
 
113
113
  def getProvidedComSpecs(self) -> List[PPortComSpec]:
114
- return self.provided_com_specs
114
+ return self.providedComSpecs
115
115
 
116
116
  def getNonqueuedSenderComSpecs(self) -> List[NonqueuedSenderComSpec]:
117
- return filter(lambda c: isinstance(c, NonqueuedSenderComSpec), self.provided_com_specs)
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.required_com_specs = [] # type: List[RPortComSpec]
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.required_com_specs.append(com_spec)
148
+ self.requiredComSpecs.append(com_spec)
149
149
 
150
150
  def getRequiredComSpecs(self) -> List[RPortComSpec]:
151
- return self.required_com_specs
151
+ return self.requiredComSpecs
152
152
 
153
153
  def getClientComSpecs(self) -> List[ClientComSpec]:
154
- return filter(lambda c: isinstance(c, ClientComSpec), self.required_com_specs)
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.required_com_specs)
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
- self.elements[short_name] = prototype
221
- return self.elements[short_name]
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
- self.elements[short_name] = prototype
227
- return self.elements[short_name]
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.application_data_type_ref = None # type: RefType
85
- self.implementation_data_type_ref = None # type: RefType
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._dataTypeMaps = [] # type: List[DataTypeMap]
93
- self._modeRequestTypeMaps = [] # type: List[ModeRequestTypeMap]
105
+ self.dataTypeMaps = [] # type: List[DataTypeMap]
106
+ self.modeRequestTypeMaps = [] # type: List[ModeRequestTypeMap]
94
107
 
95
108
  def addDataTypeMap(self, type_map: DataTypeMap):
96
- self._dataTypeMaps.append(type_map)
109
+ self.dataTypeMaps.append(type_map)
110
+ return self
97
111
 
98
112
  def getDataTypeMaps(self) -> List[DataTypeMap]:
99
- return self._dataTypeMaps
113
+ return self.dataTypeMaps
100
114
 
101
115
  def addModeRequestTypeMap(self, map: ModeRequestTypeMap):
102
- self._modeRequestTypeMaps.append(map)
116
+ self.modeRequestTypeMaps.append(map)
117
+ return self
103
118
 
104
119
  def getModeRequestTypeMaps(self) -> List[ModeRequestTypeMap]:
105
- return self._modeRequestTypeMaps
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):