armodel 1.7.6__py3-none-any.whl → 1.7.7__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 (41) hide show
  1. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +41 -2
  2. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +47 -6
  3. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +17 -7
  4. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +1 -1
  5. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +9 -3
  6. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +17 -1
  7. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +19 -5
  8. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -0
  9. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +2 -2
  10. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +41 -16
  11. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +10 -3
  12. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +26 -8
  13. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +19 -5
  14. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +29 -0
  15. armodel/models/M2/AUTOSARTemplates/SystemTemplate/ECUResourceMapping.py +44 -0
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +9 -0
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +483 -54
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +9 -0
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +245 -130
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +27 -0
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +592 -17
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +20 -10
  23. armodel/models/M2/MSR/AsamHdo/AdminData.py +1 -2
  24. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +3 -1
  25. armodel/models/M2/MSR/AsamHdo/SpecialData.py +35 -8
  26. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +0 -3
  27. armodel/models/__init__.py +4 -0
  28. armodel/parser/abstract_arxml_parser.py +3 -0
  29. armodel/parser/arxml_parser.py +614 -123
  30. armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -3
  31. armodel/tests/test_armodel/models/test_datatype.py +1 -1
  32. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +218 -0
  33. armodel/tests/test_armodel/parser/test_sw_components.py +22 -1
  34. armodel/writer/abstract_arxml_writer.py +7 -6
  35. armodel/writer/arxml_writer.py +694 -139
  36. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/METADATA +41 -3
  37. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/RECORD +41 -37
  38. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/LICENSE +0 -0
  39. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/WHEEL +0 -0
  40. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/entry_points.txt +0 -0
  41. {armodel-1.7.6.dist-info → armodel-1.7.7.dist-info}/top_level.txt +0 -0
@@ -1,14 +1,18 @@
1
1
  from typing import Dict, List
2
2
 
3
+
3
4
  from ...M2.MSR.AsamHdo.SpecialData import Sdg
4
- from ...M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
5
  from ...M2.MSR.AsamHdo import AdminData
6
6
  from ...M2.MSR.AsamHdo.BaseTypes import SwBaseType
7
- from ..MSR.Documentation.TextModel.BlockElements import DocumentationBlock
7
+ from ...M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
8
+ from ...M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
9
+ from ...M2.AUTOSARTemplates.CommonStructure.Implementation import Implementation
10
+ from ...M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
8
11
  from ...M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement, Referrable
9
12
  from ...M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
10
13
  from ...M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationDataType, DataTypeMap
11
14
  from ...M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
15
+ from ...M2.AUTOSARTemplates.SystemTemplate import RootSwCompositionPrototype, System
12
16
 
13
17
  class FileInfoComment(ARObject):
14
18
  def __init__(self):
@@ -33,6 +37,13 @@ class AbstractAUTOSAR(CollectableElement):
33
37
  self._appl_impl_type_maps = {}
34
38
  self._impl_appl_type_maps = {}
35
39
 
40
+ self._behavior_impl_maps = {} # type: Dict[str, str]
41
+ self._impl_behavior_maps = {} # type: Dict[str, str]
42
+
43
+ self.systems = {} # type: Dict[str, System]
44
+
45
+ self.rootSwCompositionPrototype = None # type: RootSwCompositionPrototype
46
+
36
47
  self.adminData = None # type: AdminData
37
48
  self.arPackages = {} # type: Dict[str, ARPackage]
38
49
  self.fileInfoComment = None # type: FileInfoComment
@@ -127,8 +138,36 @@ class AbstractAUTOSAR(CollectableElement):
127
138
  raise IndexError("Invalid Implementation data type <%s>" % impl_data_type)
128
139
 
129
140
  return self.find(self._impl_appl_type_maps[impl_data_type])
141
+
142
+ def getRootSwCompositionPrototype(self):
143
+ return self.rootSwCompositionPrototype
144
+
145
+ def setRootSwCompositionPrototype(self, value):
146
+ if value is not None:
147
+ self.rootSwCompositionPrototype = value
148
+ return self
130
149
 
150
+ def addImplementationBehaviorMap(self, impl: str, behavior: str) -> Implementation:
151
+ self._behavior_impl_maps[behavior] = impl
152
+ self._impl_behavior_maps[impl] = behavior
153
+
154
+ def getBehavior(self, impl_ref: str) -> InternalBehavior:
155
+ if impl_ref in self._impl_behavior_maps:
156
+ return self.find(self._impl_behavior_maps[impl_ref])
157
+ return None
158
+
159
+ def getImplementation(self, behavior_ref:str):
160
+ if behavior_ref in self._behavior_impl_maps:
161
+ return self.find(self._behavior_impl_maps[behavior_ref])
162
+ return None
163
+
164
+ def addSystem(self, system: System):
165
+ short_name = system.getShortName()
166
+ if short_name not in self.systems:
167
+ self.systems[short_name] = system
131
168
 
169
+ def getSystems(self) -> List[System]:
170
+ return list(sorted(self.systems.values(), key = lambda a: a.getShortName()))
132
171
  class AUTOSAR (AbstractAUTOSAR):
133
172
  __instance = None
134
173
 
@@ -287,17 +287,38 @@ class BswModeSenderPolicy(ARObject):
287
287
 
288
288
  def getQueueLength(self) -> ARNumerical:
289
289
  return self._queue_length
290
+
291
+ class BswBackgroundEvent(BswScheduleEvent):
292
+ def __init__(self, parent, short_name):
293
+ super().__init__(parent, short_name)
294
+
295
+ class BswOsTaskExecutionEvent(BswScheduleEvent):
296
+ def __init__(self, parent, short_name):
297
+ super().__init__(parent, short_name)
298
+
299
+ class BswExternalTriggerOccurredEvent(BswScheduleEvent):
300
+ def __init__(self, parent, short_name):
301
+ super().__init__(parent, short_name)
290
302
 
303
+ self.triggerRef = None # type: RefType
304
+
305
+ def getTriggerRef(self):
306
+ return self.triggerRef
307
+
308
+ def setTriggerRef(self, value):
309
+ if value is not None:
310
+ self.triggerRef = value
311
+ return self
291
312
 
292
313
  class BswInternalBehavior(InternalBehavior):
293
314
  def __init__(self, parent: ARObject, short_name: str):
294
315
  super().__init__(parent, short_name)
295
316
 
296
- self.entities = [] # type: List[BswModuleEntity]
297
- self.events = [] # type: List[BswEvent]
298
- self.mode_sender_policies = [] # type: List[BswModeSenderPolicy]
299
- self.included_mode_declaration_group_sets = [] # type: List[IncludedModeDeclarationGroupSet]
300
- self.included_data_type_sets = [] # type: List[IncludedDataTypeSet]
317
+ self.entities = [] # type: List[BswModuleEntity]
318
+ self.events = [] # type: List[BswEvent]
319
+ self.mode_sender_policies = [] # type: List[BswModeSenderPolicy]
320
+ self.included_mode_declaration_group_sets = [] # type: List[IncludedModeDeclarationGroupSet]
321
+ self.included_data_type_sets = [] # type: List[IncludedDataTypeSet]
301
322
 
302
323
  def addModeSenderPolicy(self, policy: BswModeSenderPolicy):
303
324
  self.mode_sender_policies.append(policy)
@@ -374,9 +395,29 @@ class BswInternalBehavior(InternalBehavior):
374
395
  self.elements[short_name] = event
375
396
  self.events.append(event)
376
397
  return self.elements[short_name]
377
-
398
+
378
399
  def getBswInternalTriggerOccurredEvents(self) -> List[BswInternalTriggerOccurredEvent]:
379
400
  return list(filter(lambda a: isinstance(a, BswInternalTriggerOccurredEvent), self.elements.values()))
401
+
402
+ def createBswExternalTriggerOccurredEvent(self, short_name: str) -> BswExternalTriggerOccurredEvent:
403
+ if (short_name not in self.elements):
404
+ event = BswExternalTriggerOccurredEvent(self, short_name)
405
+ self.elements[short_name] = event
406
+ self.events.append(event)
407
+ return self.elements[short_name]
408
+
409
+ def getBswExternalTriggerOccurredEvents(self) -> List[BswExternalTriggerOccurredEvent]:
410
+ return list(filter(lambda a: isinstance(a, BswExternalTriggerOccurredEvent), self.elements.values()))
411
+
412
+ def createBswBackgroundEvent(self, short_name: str) -> BswBackgroundEvent:
413
+ if (short_name not in self.elements):
414
+ event = BswBackgroundEvent(self, short_name)
415
+ self.elements[short_name] = event
416
+ self.events.append(event)
417
+ return self.elements[short_name]
418
+
419
+ def getBswBackgroundEvents(self) -> List[BswBackgroundEvent]:
420
+ return list(filter(lambda a: isinstance(a, BswBackgroundEvent), self.elements.values()))
380
421
 
381
422
  def getBswEvents(self) -> List[BswEvent]:
382
423
  return list(filter(lambda a: isinstance(a, BswEvent), self.elements.values()))
@@ -40,47 +40,57 @@ class DataFilter(ARObject):
40
40
  return self.dataFilterType
41
41
 
42
42
  def setDataFilterType(self, value):
43
- self.dataFilterType = value
43
+ if value is not None:
44
+ self.dataFilterType = value
44
45
  return self
45
46
 
46
47
  def getMask(self):
47
48
  return self.mask
48
49
 
49
50
  def setMask(self, value):
50
- self.mask = value
51
+ if value is not None:
52
+ self.mask = value
51
53
  return self
52
54
 
53
55
  def getMax(self):
54
56
  return self.max
55
57
 
56
58
  def setMax(self, value):
57
- self.max = value
59
+ if value is not None:
60
+ self.max = value
58
61
  return self
59
62
 
60
63
  def getMin(self):
61
64
  return self.min
62
65
 
63
66
  def setMin(self, value):
64
- self.min = value
67
+ if value is not None:
68
+ self.min = value
65
69
  return self
66
70
 
67
71
  def getOffset(self):
68
72
  return self.offset
69
73
 
70
74
  def setOffset(self, value):
71
- self.offset = value
75
+ if value is not None:
76
+ self.offset = value
72
77
  return self
73
78
 
74
79
  def getPeriod(self):
75
80
  return self.period
76
81
 
77
82
  def setPeriod(self, value):
78
- self.period = value
83
+ if value is not None:
84
+ self.period = value
79
85
  return self
80
86
 
81
87
  def getX(self):
82
88
  return self.x
83
89
 
84
90
  def setX(self, value):
85
- self.x = value
91
+ if value is not None:
92
+ self.x = value
86
93
  return self
94
+
95
+
96
+
@@ -236,7 +236,7 @@ class ARPackage(Identifiable, CollectableElement):
236
236
  return self.getElement(short_name)
237
237
 
238
238
  def createCompuMethod(self, short_name: str) -> CompuMethod:
239
- if (short_name not in self.elements):
239
+ if (not self.IsElementExists(short_name)):
240
240
  compu_method = CompuMethod(self, short_name)
241
241
  self.addElement(compu_method)
242
242
  return self.getElement(short_name)
@@ -4,7 +4,7 @@ from .....M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageL
4
4
  from .....M2.MSR.Documentation.Annotation import Annotation
5
5
  from .....M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph
6
6
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
7
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
7
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, CategoryString
8
8
  from abc import ABCMeta
9
9
  from typing import List
10
10
 
@@ -84,6 +84,9 @@ class CollectableElement(ARObject, metaclass = ABCMeta):
84
84
  if (short_name not in self.elements):
85
85
  return None
86
86
  return self.elements[short_name]
87
+
88
+ def IsElementExists(self, short_name: str) -> bool:
89
+ return short_name in self.elements
87
90
 
88
91
  class Identifiable(MultilanguageReferrable, CollectableElement, metaclass = ABCMeta):
89
92
  def __init__(self, parent: ARObject, short_name: str):
@@ -95,7 +98,7 @@ class Identifiable(MultilanguageReferrable, CollectableElement, metaclass = ABCM
95
98
 
96
99
  self.annotations = [] # type: List[Annotation]
97
100
  self.adminData = None # type: AdminData
98
- self.category = None # type: ARLiteral
101
+ self.category = None # type: CategoryString
99
102
  self.introduction = None # type: DocumentationBlock
100
103
  self.desc = None # type: MultiLanguageOverviewParagraph
101
104
 
@@ -117,7 +120,10 @@ class Identifiable(MultilanguageReferrable, CollectableElement, metaclass = ABCM
117
120
  return self.category
118
121
 
119
122
  def setCategory(self, value):
120
- self.category = value
123
+ if isinstance(value, str):
124
+ self.category = CategoryString().setValue(value)
125
+ else:
126
+ self.category = value
121
127
  return self
122
128
 
123
129
  def getIntroduction(self):
@@ -21,7 +21,9 @@ class ARType(metaclass = ABCMeta):
21
21
  return self.value
22
22
 
23
23
  def setValue(self, val):
24
- self.value = val
24
+ if val is not None:
25
+ self.value = val
26
+ return self
25
27
 
26
28
  def getText(self) -> str:
27
29
  return str(self)
@@ -506,5 +508,19 @@ class MacAddressString(ARLiteral):
506
508
  * xml.xsd.pattern=([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}
507
509
  * xml.xsd.type=string
508
510
  '''
511
+ def __init__(self):
512
+ super().__init__()
513
+
514
+ class CategoryString(ARLiteral):
515
+ '''
516
+ This represents the pattern applicable to categories.
517
+ It is basically the same as Identifier but has a different semantics. Therefore it is modeled as a primitive
518
+ of its own.
519
+
520
+ Tags:
521
+ * xml.xsd.customType=CATEGORY-STRING
522
+ * xml.xsd.pattern=[a-zA-Z][a-zA-Z0-9_]*
523
+ * xml.xsd.type=string
524
+ '''
509
525
  def __init__(self):
510
526
  super().__init__()
@@ -3,7 +3,7 @@ from typing import List
3
3
  from ....M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps
4
4
  from ....M2.AUTOSARTemplates.CommonStructure import ValueSpecification
5
5
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
6
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, ARLiteral, ARNumerical, ARPositiveInteger, Boolean
6
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, ARLiteral, ARNumerical, ARPositiveInteger, Boolean, TimeValue
7
7
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
8
8
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
9
9
  from ....M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
@@ -295,15 +295,29 @@ class ReceiverComSpec(RPortComSpec):
295
295
 
296
296
  def getCompositeNetworkRepresentations(self) -> List[CompositeNetworkRepresentation]:
297
297
  return self.compositeNetworkRepresentations
298
+
299
+ class ModeSwitchedAckRequest(ARObject):
300
+ def __init__(self):
301
+ super().__init__()
302
+
303
+ self.timeout = None # type: TimeValue
304
+
305
+ def getTimeout(self):
306
+ return self.timeout
307
+
308
+ def setTimeout(self, value):
309
+ if value is not None:
310
+ self.timeout = value
311
+ return self
298
312
 
299
313
  class ModeSwitchSenderComSpec(RPortComSpec):
300
314
  def __init__(self):
301
315
  super().__init__()
302
316
 
303
- self.enhancedModeApi = None # type: ARBoolean
304
- self.modeGroupRef = None # type: RefType
305
- self.modeSwitchedAck = None # type: ModeSwitchedAckRequest
306
- self.queueLength = None # type: ARPositiveInteger
317
+ self.enhancedModeApi = None # type: ARBoolean
318
+ self.modeGroupRef = None # type: RefType
319
+ self.modeSwitchedAck = None # type: ModeSwitchedAckRequest
320
+ self.queueLength = None # type: ARPositiveInteger
307
321
 
308
322
  def getEnhancedModeApi(self):
309
323
  return self.enhancedModeApi
@@ -287,23 +287,49 @@ class AtomicSwComponentType(SwComponentType, metaclass = ABCMeta):
287
287
  def __init__(self, parent: ARObject, short_name: str):
288
288
  super().__init__(parent, short_name)
289
289
 
290
+ self.internalBehavior = None # type: SwcInternalBehavior
291
+ self.symbolProps = None # type: SymbolProps
292
+
293
+ def getInternalBehavior(self):
294
+ return self.internalBehavior
295
+
290
296
  def createSwcInternalBehavior(self, short_name) -> SwcInternalBehavior:
291
297
  if (short_name not in self.elements):
292
298
  if (len(list(filter(lambda e: isinstance(e, SwcInternalBehavior), self.elements.values()))) >= 1):
293
299
  raise ValueError("The internal behavior of <%s> can not more than 1" % self.short_name)
294
300
  behavior = SwcInternalBehavior(self, short_name)
295
301
  self.elements[short_name] = behavior
302
+ self.internalBehavior = behavior
296
303
  return self.elements[short_name]
297
304
 
305
+ def getSymbolProps(self):
306
+ return self.symbolProps
307
+
308
+ def setSymbolProps(self, value):
309
+ if value is not None:
310
+ self.symbolProps = value
311
+ return self
312
+
313
+ '''
298
314
  @property
299
315
  def internal_behavior(self) -> SwcInternalBehavior:
300
316
  return next(filter(lambda e: isinstance(e, SwcInternalBehavior), self.elements.values()))
317
+ '''
301
318
 
302
319
  class EcuAbstractionSwComponentType(AtomicSwComponentType):
303
320
  def __init__(self, parent:ARObject, short_name: str):
304
321
  super().__init__(parent, short_name)
305
322
 
323
+ self.hardwareElementRefs = [] # List[RefType]
306
324
 
325
+ def getHardwareElementRefs(self):
326
+ return self.hardwareElementRefs
327
+
328
+ def addHardwareElementRefs(self, value):
329
+ if value is not None:
330
+ self.hardwareElementRefs.append(value)
331
+ return self
332
+
307
333
  class ApplicationSwComponentType(AtomicSwComponentType):
308
334
  def __init__(self, parent: ARObject, short_name: str):
309
335
  super().__init__(parent, short_name)
@@ -313,12 +339,39 @@ class ComplexDeviceDriverSwComponentType(AtomicSwComponentType):
313
339
  def __init__(self, parent: ARObject, short_name: str):
314
340
  super().__init__(parent, short_name)
315
341
 
342
+ self.hardwareElementRefs = [] # List[RefType]
343
+
344
+ def getHardwareElementRefs(self):
345
+ return self.hardwareElementRefs
316
346
 
347
+ def addHardwareElementRefs(self, value):
348
+ if value is not None:
349
+ self.hardwareElementRefs.append(value)
350
+ return self
351
+
317
352
  class NvBlockSwComponentType(AtomicSwComponentType):
318
353
  def __init__(self, parent: ARObject, short_name: str):
319
354
  super().__init__(parent, short_name)
320
355
 
356
+ self.bulkNvDataDescriptors = [] # type: List[BulkNvDataDescriptor]
357
+ self.nvBlockDescriptors = [] # type: List[NvBlockDescriptor]
358
+
359
+ def getBulkNvDataDescriptors(self):
360
+ return self.bulkNvDataDescriptors
361
+
362
+ def addBulkNvDataDescriptor(self, value):
363
+ if value is not None:
364
+ self.bulkNvDataDescriptors.append(value)
365
+ return self
366
+
367
+ def getNvBlockDescriptors(self):
368
+ return self.nvBlockDescriptors
321
369
 
370
+ def setNvBlockDescriptor(self, value):
371
+ if value is not None:
372
+ self.nvBlockDescriptors.append(value)
373
+ return self
374
+
322
375
  class SensorActuatorSwComponentType(AtomicSwComponentType):
323
376
  def __init__(self, parent: ARObject, short_name: str):
324
377
  super().__init__(parent, short_name)
@@ -52,10 +52,10 @@ class AssemblySwConnector(SwConnector):
52
52
  self.providerIRef = value
53
53
  return self
54
54
 
55
- def getRequesterIRef(self) -> PPortInCompositionInstanceRef:
55
+ def getRequesterIRef(self) -> RPortInCompositionInstanceRef:
56
56
  return self.requesterIRef
57
57
 
58
- def setRequesterIRef(self, value: PPortInCompositionInstanceRef):
58
+ def setRequesterIRef(self, value: RPortInCompositionInstanceRef):
59
59
  self.requesterIRef = value
60
60
  return self
61
61
 
@@ -1,6 +1,6 @@
1
1
  from abc import ABCMeta
2
2
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARNumerical, TRefType
3
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARNumerical, PositiveInteger, TRefType
4
4
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
5
5
  from .....M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps
6
6
  from .....M2.AUTOSARTemplates.CommonStructure import ValueSpecification
@@ -79,32 +79,57 @@ class ApplicationArrayElement(ApplicationCompositeElementDataPrototype):
79
79
  def __init__(self, parent: ARObject, short_name: str):
80
80
  super().__init__(parent, short_name)
81
81
 
82
- self.arraySizeHandling = None # type: str
83
- self.arraySizeSemantics = None # type: str
82
+ self.arraySizeHandling = None # type: ArraySizeHandlingEnum
83
+ self.arraySizeSemantics = None # type: ArraySizeSemanticsEnum
84
84
  self.indexDataTypeRef = None # type: RefType
85
- self.maxNumberOfElements = None # type: ARNumerical
85
+ self.maxNumberOfElements = None # type: PositiveInteger
86
86
 
87
- def setArraySizeHandling(self, handling: str):
88
- self.arraySizeHandling = handling
87
+ def getArraySizeHandling(self):
88
+ return self.arraySizeHandling
89
+
90
+ def setArraySizeHandling(self, value):
91
+ if value is not None:
92
+ self.arraySizeHandling = value
89
93
  return self
90
-
91
- def setArraySizeSemantics(self, semantics: str):
92
- self.arraySizeSemantics = semantics
94
+
95
+ def getArraySizeSemantics(self):
96
+ return self.arraySizeSemantics
97
+
98
+ def setArraySizeSemantics(self, value):
99
+ if value is not None:
100
+ self.arraySizeSemantics = value
93
101
  return self
94
-
95
- def setIndexDataTypeRef(self, ref: RefType):
96
- self.indexDataTypeRef = ref
102
+
103
+ def getIndexDataTypeRef(self):
104
+ return self.indexDataTypeRef
105
+
106
+ def setIndexDataTypeRef(self, value):
107
+ if value is not None:
108
+ self.indexDataTypeRef = value
97
109
  return self
98
-
99
- def setMaxNumberOfElements(self, number: ARNumerical):
100
- self.maxNumberOfElements = number
110
+
111
+ def getMaxNumberOfElements(self):
112
+ return self.maxNumberOfElements
113
+
114
+ def setMaxNumberOfElements(self, value):
115
+ if value is not None:
116
+ self.maxNumberOfElements = value
101
117
  return self
102
118
 
103
119
  class ApplicationRecordElement(ApplicationCompositeElementDataPrototype):
104
120
  def __init__(self, parent:ARObject, short_name: str):
105
121
  super().__init__(parent, short_name)
106
122
 
107
- self.isOptional = None
123
+ self.isOptional = None # type: Boolean
124
+
125
+ def getIsOptional(self):
126
+ return self.isOptional
127
+
128
+ def setIsOptional(self, value):
129
+ if value is not None:
130
+ self.isOptional = value
131
+ return self
132
+
108
133
 
109
134
  class ParameterDataPrototype(AutosarDataPrototype):
110
135
  def __init__(self, parent: ARObject, short_name: str):
@@ -3,7 +3,7 @@ from .....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeRequest
3
3
  from .....M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AtpType
4
4
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
5
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
6
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, RefType
6
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, RefType, String
7
7
  from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationArrayElement, ApplicationRecordElement
8
8
  from .....M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps
9
9
  from abc import ABCMeta
@@ -50,9 +50,17 @@ class ApplicationArrayDataType(ApplicationCompositeDataType):
50
50
  def __init__(self, parent: ARObject, short_name: str):
51
51
  super().__init__(parent, short_name)
52
52
 
53
- self.dynamic_array_size_profile = None # type: ARLiteral
53
+ self.dynamicArraySizeProfile = None # type: String
54
54
  self.element = None # type: ApplicationArrayElement
55
55
 
56
+ def getDynamicArraySizeProfile(self):
57
+ return self.dynamicArraySizeProfile
58
+
59
+ def setDynamicArraySizeProfile(self, value):
60
+ if value is not None:
61
+ self.dynamicArraySizeProfile = value
62
+ return self
63
+
56
64
  def createApplicationArrayElement(self, short_name: str) -> ApplicationArrayElement:
57
65
  if (short_name not in self.elements):
58
66
  array_element = ApplicationArrayElement(self, short_name)
@@ -60,7 +68,6 @@ class ApplicationArrayDataType(ApplicationCompositeDataType):
60
68
  self.element = self.elements[short_name]
61
69
  return self.elements[short_name]
62
70
 
63
-
64
71
  class ApplicationRecordDataType(ApplicationCompositeDataType):
65
72
  def __init__(self, parent: ARObject, short_name: str):
66
73
  super().__init__(parent, short_name)
@@ -105,7 +105,7 @@ class DataReceiveErrorEvent(RTEEvent):
105
105
  def __init__(self, parent: ARObject, short_name: str):
106
106
  super().__init__(parent, short_name)
107
107
 
108
- self.dataIRef = None
108
+ self.dataIRef = None
109
109
 
110
110
  def getDataIRef(self):
111
111
  return self.dataIRef
@@ -118,13 +118,14 @@ class OperationInvokedEvent(RTEEvent):
118
118
  def __init__(self, parent: ARObject, short_name: str):
119
119
  super().__init__(parent, short_name)
120
120
 
121
- self.operationIRef = None # type: POperationInAtomicSwcInstanceRef
121
+ self.operationIRef = None # type: POperationInAtomicSwcInstanceRef
122
122
 
123
123
  def getOperationIRef(self):
124
124
  return self.operationIRef
125
125
 
126
126
  def setOperationIRef(self, value):
127
- self.operationIRef = value
127
+ if value is not None:
128
+ self.operationIRef = value
128
129
  return self
129
130
 
130
131
  class InitEvent(RTEEvent):
@@ -150,29 +151,46 @@ class TimingEvent(RTEEvent):
150
151
  return self.offset
151
152
 
152
153
  def setOffset(self, value):
153
- self.offset = value
154
+ if value is not None:
155
+ self.offset = value
154
156
  return self
155
157
 
156
158
  def getPeriod(self):
157
159
  return self.period
158
160
 
159
161
  def setPeriod(self, value):
160
- self.period = value
162
+ if value is not None:
163
+ self.period = value
161
164
  return self
162
165
 
163
166
  class InternalTriggerOccurredEvent(RTEEvent):
164
167
  def __init__(self, parent: ARObject, short_name: str):
165
168
  super().__init__(parent, short_name)
166
169
 
167
- self.eventSourceRef = None # type: RefType
170
+ self.eventSourceRef = None # type: RefType
168
171
 
169
172
  def getEventSourceRef(self):
170
173
  return self.eventSourceRef
171
174
 
172
175
  def setEventSourceRef(self, value):
173
- self.eventSourceRef = value
176
+ if value is not None:
177
+ self.eventSourceRef = value
174
178
  return self
175
179
 
176
180
  class BackgroundEvent(RTEEvent):
177
181
  def __init__(self, parent: ARObject, short_name: str):
178
- super().__init__(parent, short_name)
182
+ super().__init__(parent, short_name)
183
+
184
+ class ModeSwitchedAckEvent(RTEEvent):
185
+ def __init__(self, parent: ARObject, short_name: str):
186
+ super().__init__(parent, short_name)
187
+
188
+ self.eventSourceRef = None # type: RefType
189
+
190
+ def getEventSourceRef(self):
191
+ return self.eventSourceRef
192
+
193
+ def setEventSourceRef(self, value):
194
+ if value is not None:
195
+ self.eventSourceRef = value
196
+ return self