armodel 1.7.3__py3-none-any.whl → 1.7.4__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 (31) hide show
  1. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2 -1
  2. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +1 -1
  3. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +6 -7
  4. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +7 -1
  5. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +28 -1
  6. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +17 -1
  7. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +31 -0
  8. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +4 -3
  9. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +17 -32
  10. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +4 -0
  11. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +7 -1
  12. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +47 -15
  13. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +229 -0
  14. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +167 -0
  15. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +225 -0
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +96 -7
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +47 -4
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +18 -5
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +7 -12
  20. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +0 -1
  21. armodel/models/__init__.py +3 -0
  22. armodel/parser/arxml_parser.py +222 -46
  23. armodel/tests/test_armodel/models/test_ar_ref.py +2 -2
  24. armodel/writer/abstract_arxml_writer.py +1 -3
  25. armodel/writer/arxml_writer.py +256 -103
  26. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/METADATA +17 -2
  27. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/RECORD +31 -27
  28. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/LICENSE +0 -0
  29. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/WHEEL +0 -0
  30. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/entry_points.txt +0 -0
  31. {armodel-1.7.3.dist-info → armodel-1.7.4.dist-info}/top_level.txt +0 -0
@@ -211,7 +211,8 @@ class BswTimingEvent(BswScheduleEvent):
211
211
  return self.period
212
212
 
213
213
  def setPeriod(self, value):
214
- self.period = value
214
+ if not (value is None and self.period is not None):
215
+ self.period = value
215
216
  return self
216
217
 
217
218
  @property
@@ -91,7 +91,7 @@ class InternalBehavior(Identifiable, metaclass=ABCMeta):
91
91
  self.constantMemories.append(prototype)
92
92
  return self.getElement(short_name)
93
93
 
94
- def getConstantMemorys(self) -> List[ParameterDataPrototype]:
94
+ def getConstantMemories(self) -> List[ParameterDataPrototype]:
95
95
  return self.constantMemories
96
96
 
97
97
  def addDataTypeMappingRef(self, ref: RefType):
@@ -1,6 +1,7 @@
1
1
  from abc import ABCMeta
2
2
  from typing import List
3
-
3
+ from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef
4
+ from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AutosarVariableRef import AutosarVariableRef
4
5
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
6
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
6
7
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Identifier, RefType, AREnum, Boolean, ARLiteral, DiagRequirementIdString, Integer, PositiveInteger, RefType, String, TimeValue
@@ -10,8 +11,8 @@ class RoleBasedDataAssignment(ARObject):
10
11
  super().__init__()
11
12
 
12
13
  self.role = None # type: ARLiteral
13
- self.usedDataElement = None # type: RefType # AutosarVariableRef
14
- self.usedParameterElement = None # type: RefType # AutosarParameterRef
14
+ self.usedDataElement = None # type: AutosarVariableRef
15
+ self.usedParameterElement = None # type: AutosarParameterRef
15
16
  self.usedPimRef = None # type: RefType
16
17
 
17
18
  def getRole(self):
@@ -615,10 +616,8 @@ class DiagnosticEventInfoNeeds(DiagnosticCapabilityElement):
615
616
  def __init__(self, parent: ARObject, short_name: str):
616
617
  super().__init__(parent, short_name)
617
618
 
618
- # type: PositiveInteger
619
- self.obdDtcNumber = None
620
- # type: PositiveInteger
621
- self.udsDtcNumber = None
619
+ self.obdDtcNumber = None # type: PositiveInteger
620
+ self.udsDtcNumber = None # type: PositiveInteger
622
621
 
623
622
  def getObdDtcNumber(self):
624
623
  return self.obdDtcNumber
@@ -1,5 +1,4 @@
1
1
  from typing import Dict, List
2
-
3
2
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Identifier, RefType, ReferrableSubtypesEnum
4
3
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
5
4
  from .....M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming
@@ -28,6 +27,7 @@ from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Ga
28
27
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DcmIPdu, ISignal, ISignalGroup, ISignalIPdu, ISignalIPduGroup, NPdu, NmPdu, SecuredIPdu, SystemSignal, SystemSignalGroup
29
28
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CanCluster, LinCluster
30
29
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinUnconditionalFrame
30
+ from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCluster
31
31
  from .....M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping
32
32
  from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
33
33
  from .....M2.AUTOSARTemplates.CommonStructure import ConstantSpecification
@@ -476,6 +476,12 @@ class ARPackage(Identifiable, CollectableElement):
476
476
  map = PortInterfaceMappingSet(self, short_name)
477
477
  self.addElement(map)
478
478
  return self.getElement(short_name)
479
+
480
+ def createEthernetCluster(self, short_name: str) -> EthernetCluster:
481
+ if (short_name not in self.elements):
482
+ cluster = EthernetCluster(self, short_name)
483
+ self.addElement(cluster)
484
+ return self.getElement(short_name)
479
485
 
480
486
  def getApplicationPrimitiveDataTypes(self) -> List[ApplicationPrimitiveDataType]:
481
487
  return list(sorted(filter(lambda a: isinstance(a, ApplicationPrimitiveDataType), self.elements.values()), key= lambda o:o.short_name))
@@ -458,4 +458,31 @@ class ArgumentDirectionEnum(AREnum):
458
458
  ArgumentDirectionEnum.IN,
459
459
  ArgumentDirectionEnum.INOUT,
460
460
  ArgumentDirectionEnum.OUT
461
- ))
461
+ ))
462
+
463
+
464
+ class Ip4AddressString(ARLiteral):
465
+ '''
466
+ This is used to specify an IP4 address. Notation: 255.255.255.255
467
+
468
+ Tags
469
+ * xml.xsd.customType=IP4-ADDRESS-STRING
470
+ * xml.xsd.pattern=(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|ANY
471
+ * xml.xsd.type=string
472
+ '''
473
+ def __init__(self):
474
+ super().__init__()
475
+
476
+ class Ip6AddressString(ARLiteral):
477
+ '''
478
+ This is used to specify an IP6 address. Notation: FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
479
+ Alternative notations, short-cuts with duplicate colons like ::, etc. or mixtures using colons and dots, are
480
+ not allowed.
481
+
482
+ Tags:
483
+ * xml.xsd.customType=IP6-ADDRESS-STRING
484
+ * xml.xsd.pattern=[0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4}){7,7}|ANY
485
+ * xml.xsd.type=string
486
+ '''
487
+ def __init__(self):
488
+ 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
6
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, ARLiteral, ARNumerical, ARPositiveInteger, Boolean
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
@@ -175,7 +175,16 @@ class ModeSwitchReceiverComSpec(RPortComSpec):
175
175
  def __init__(self):
176
176
  super().__init__()
177
177
 
178
+ self.enhancedModeApi = None # type: Boolean
178
179
  self.modeGroupRef = None # type: RefType
180
+ self.supportsAsynchronousModeSwitch = None # type: Boolean
181
+
182
+ def getEnhancedModeApi(self):
183
+ return self.enhancedModeApi
184
+
185
+ def setEnhancedModeApi(self, value):
186
+ self.enhancedModeApi = value
187
+ return self
179
188
 
180
189
  def getModeGroupRef(self):
181
190
  return self.modeGroupRef
@@ -183,6 +192,13 @@ class ModeSwitchReceiverComSpec(RPortComSpec):
183
192
  def setModeGroupRef(self, value):
184
193
  self.modeGroupRef = value
185
194
  return self
195
+
196
+ def getSupportsAsynchronousModeSwitch(self):
197
+ return self.supportsAsynchronousModeSwitch
198
+
199
+ def setSupportsAsynchronousModeSwitch(self, value):
200
+ self.supportsAsynchronousModeSwitch = value
201
+ return self
186
202
 
187
203
  class NvRequireComSpec(RPortComSpec):
188
204
  def __init__(self):
@@ -0,0 +1,31 @@
1
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
2
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import ArVariableInImplementationDataInstanceRef, VariableInAtomicSWCTypeInstanceRef
3
+
4
+ class AutosarVariableRef(ARObject):
5
+ def __init__(self):
6
+ super().__init__()
7
+
8
+ self.autosarVariableIRef = None # type: VariableInAtomicSWCTypeInstanceRef
9
+ self.autosarVariableInImplDatatype = None # type: ArVariableInImplementationDataInstanceRef
10
+ self.localVariableRef = None
11
+
12
+ def getAutosarVariableIRef(self):
13
+ return self.autosarVariableIRef
14
+
15
+ def setAutosarVariableIRef(self, value):
16
+ self.autosarVariableIRef = value
17
+ return self
18
+
19
+ def getAutosarVariableInImplDatatype(self):
20
+ return self.autosarVariableInImplDatatype
21
+
22
+ def setAutosarVariableInImplDatatype(self, value):
23
+ self.autosarVariableInImplDatatype = value
24
+ return self
25
+
26
+ def getLocalVariableRef(self):
27
+ return self.localVariableRef
28
+
29
+ def setLocalVariableRef(self, value):
30
+ self.localVariableRef = value
31
+ return self
@@ -1,5 +1,6 @@
1
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import AutosarVariableRef
1
2
  from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AccessCount import AbstractAccessPoint
2
- from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef, AutosarVariableRef
3
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef
3
4
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
5
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
5
6
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
@@ -9,8 +10,8 @@ class ParameterAccess(AbstractAccessPoint):
9
10
  def __init__(self, parent: ARObject, short_name: str):
10
11
  super().__init__(parent, short_name)
11
12
 
12
- self.accessedParameter = None # type: AutosarParameterRef
13
- self.swDataDefProps = None # type: SwDataDefProps
13
+ self.accessedParameter = None # type: AutosarParameterRef
14
+ self.swDataDefProps = None # type: SwDataDefProps
14
15
 
15
16
  def getAccessedParameter(self):
16
17
  return self.accessedParameter
@@ -86,36 +86,6 @@ class VariableInAtomicSWCTypeInstanceRef(AtpInstanceRef):
86
86
  self.targetDataPrototypeRef = value
87
87
  return self
88
88
 
89
- class AutosarVariableRef(ARObject):
90
- def __init__(self):
91
- super().__init__()
92
-
93
- self.autosarVariableIRef = None # type: VariableInAtomicSWCTypeInstanceRef
94
- self.autosarVariableInImplDatatype = None # type: ArVariableInImplementationDataInstanceRef
95
- self.localVariableRef = None
96
-
97
- def getAutosarVariableIRef(self):
98
- return self.autosarVariableIRef
99
-
100
- def setAutosarVariableIRef(self, value):
101
- self.autosarVariableIRef = value
102
- return self
103
-
104
- def getAutosarVariableInImplDatatype(self):
105
- return self.autosarVariableInImplDatatype
106
-
107
- def setAutosarVariableInImplDatatype(self, value):
108
- self.autosarVariableInImplDatatype = value
109
- return self
110
-
111
- def getLocalVariableRef(self):
112
- return self.localVariableRef
113
-
114
- def setLocalVariableRef(self, value):
115
- self.localVariableRef = value
116
- return self
117
-
118
-
119
89
  class ParameterInAtomicSWCTypeInstanceRef(AtpInstanceRef):
120
90
  def __init__(self):
121
91
  super().__init__()
@@ -165,5 +135,20 @@ class AutosarParameterRef(ARObject):
165
135
  def __init__(self):
166
136
  super().__init__()
167
137
 
168
- self.autosar_parameter_iref = None # type: ParameterInAtomicSWCTypeInstanceRef
169
- self.local_parameter_ref = None # type: RefType
138
+ # type: ParameterInAtomicSWCTypeInstanceRef
139
+ self.autosarParameterIRef = None
140
+ self.localParameterRef = None # type: RefType
141
+
142
+ def getAutosarParameterIRef(self):
143
+ return self.autosarParameterIRef
144
+
145
+ def setAutosarParameterIRef(self, value):
146
+ self.autosarParameterIRef = value
147
+ return self
148
+
149
+ def getLocalParameterRef(self):
150
+ return self.localParameterRef
151
+
152
+ def setLocalParameterRef(self, value):
153
+ self.localParameterRef = value
154
+ return self
@@ -172,3 +172,7 @@ class InternalTriggerOccurredEvent(RTEEvent):
172
172
  def setEventSourceRef(self, value):
173
173
  self.eventSourceRef = value
174
174
  return self
175
+
176
+ class BackgroundEvent(RTEEvent):
177
+ def __init__(self, parent: ARObject, short_name: str):
178
+ super().__init__(parent, short_name)
@@ -1,5 +1,5 @@
1
1
  from typing import List
2
- from .....M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagnosticCommunicationManagerNeeds, DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds, EcuStateMgrUserNeeds, NvBlockNeeds, RoleBasedDataAssignment, ServiceNeeds
2
+ from .....M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagnosticCommunicationManagerNeeds, DiagnosticEventInfoNeeds, DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds, EcuStateMgrUserNeeds, NvBlockNeeds, RoleBasedDataAssignment, ServiceNeeds
3
3
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
4
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Identifier, RefType
5
5
  from .....M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import ServiceDependency
@@ -73,6 +73,12 @@ class SwcServiceDependency(ServiceDependency):
73
73
  self.addElement(needs)
74
74
  return self.getElement(short_name)
75
75
 
76
+ def createDiagnosticEventInfoNeeds(self, short_name: str) -> DiagnosticEventInfoNeeds:
77
+ if (short_name not in self.elements):
78
+ needs = DiagnosticEventInfoNeeds(self, short_name)
79
+ self.addElement(needs)
80
+ return self.getElement(short_name)
81
+
76
82
  def createCryptoServiceNeeds(self, short_name: str) -> CryptoServiceNeeds:
77
83
  if (short_name not in self.elements):
78
84
  needs = CryptoServiceNeeds(self, short_name)
@@ -228,7 +228,7 @@ class SwcInternalBehavior(InternalBehavior):
228
228
  self.events = [] # type: List[RTEEvent]
229
229
  self.exclusiveAreaPolicies = [] # type: List[SwcExclusiveAreaPolicy]
230
230
  self.explicitInterRunnableVariables = [] # type: List[VariableDataPrototype]
231
- self.handleTerminationAndRestart = None # type: str
231
+ self.handleTerminationAndRestart = None # type: str
232
232
  self.implicitInterRunnableVariables = [] # type: List[VariableDataPrototype]
233
233
  self.includedDataTypeSets = [] # type: List[IncludedDataTypeSet]
234
234
  self.includedModeDeclarationGroupSets = [] # type: List[IncludedModeDeclarationGroupSet]
@@ -242,8 +242,33 @@ class SwcInternalBehavior(InternalBehavior):
242
242
  self.supportsMultipleInstantiation = None # type: Boolean
243
243
  self.variationPointProxies = [] # type: VariationPointProxy
244
244
 
245
+ def getArTypedPerInstanceMemories(self) -> List[VariableDataPrototype]:
246
+ return self.arTypedPerInstanceMemories
247
+
248
+ def createArTypedPerInstanceMemory(self, short_name: str) -> VariableDataPrototype:
249
+ if (short_name not in self.elements):
250
+ prototype = VariableDataPrototype(self, short_name)
251
+ self.addElement(prototype)
252
+ self.arTypedPerInstanceMemories.append(prototype)
253
+ return self.getElement(short_name)
254
+
245
255
  def getExplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
246
256
  return self.explicitInterRunnableVariables
257
+
258
+ def createExplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
259
+ if (short_name not in self.elements):
260
+ prototype = VariableDataPrototype(self, short_name)
261
+ self.addElement(prototype)
262
+ self.explicitInterRunnableVariables.append(prototype)
263
+ return self.getElement(short_name)
264
+
265
+ def getHandleTerminationAndRestart(self):
266
+ return self.handleTerminationAndRestart
267
+
268
+ def setHandleTerminationAndRestart(self, value):
269
+ self.handleTerminationAndRestart = value
270
+ return self
271
+
247
272
 
248
273
  def getImplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
249
274
  return self.implicitInterRunnableVariables
@@ -342,34 +367,31 @@ class SwcInternalBehavior(InternalBehavior):
342
367
  if (not isinstance(self.elements[short_name], RTEEvent)):
343
368
  raise ValueError("Invalid Event Type <%s> of <%s>" % type(self.elements[short_name]), short_name)
344
369
  return self.elements[short_name]
370
+
371
+
345
372
 
346
- def createExplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
347
- if (short_name not in self.elements):
348
- prototype = VariableDataPrototype(self, short_name)
349
- self.elements[short_name] = prototype
350
- self.explicitInterRunnableVariables.append(prototype)
351
- return self.elements[short_name]
373
+
352
374
 
353
375
  def createImplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
354
376
  if (short_name not in self.elements):
355
377
  prototype = VariableDataPrototype(self, short_name)
356
- self.elements[short_name] = prototype
378
+ self.addElement(prototype)
357
379
  self.implicitInterRunnableVariables.append(prototype)
358
- return self.elements[short_name]
380
+ return self.getElement(short_name)
359
381
 
360
382
  def createPerInstanceMemory(self, short_name: str) -> PerInstanceMemory:
361
383
  if (short_name not in self.elements):
362
384
  memory = PerInstanceMemory(self, short_name)
363
- self.elements[short_name] = memory
385
+ self.addElement(memory)
364
386
  self.perInstanceMemories.append(memory)
365
- return self.elements[short_name]
387
+ return self.getElement(short_name)
366
388
 
367
389
  def createPerInstanceParameter(self, short_name: str) -> ParameterDataPrototype:
368
390
  if (short_name not in self.elements):
369
391
  prototype = ParameterDataPrototype(self, short_name)
370
- self.elements[short_name] = prototype
392
+ self.addElement(prototype)
371
393
  self.perInstanceParameters.append(prototype)
372
- return self.elements[short_name]
394
+ return self.getElement(short_name)
373
395
 
374
396
  def getVariableDataPrototypes(self) -> List[VariableDataPrototype]:
375
397
  return sorted(filter(lambda c: isinstance(c, VariableDataPrototype), self.elements.values()), key=lambda e: e.short_name)
@@ -377,14 +399,24 @@ class SwcInternalBehavior(InternalBehavior):
377
399
  def createRunnableEntity(self, short_name: str) -> RunnableEntity:
378
400
  if (short_name not in self.elements):
379
401
  runnable = RunnableEntity(self, short_name)
380
- self.elements[short_name] = runnable
381
- return self.elements[short_name]
402
+ self.addElement(runnable)
403
+ return self.getElement(short_name)
382
404
 
383
405
  def getRunnableEntities(self) -> List[RunnableEntity]:
384
406
  return sorted(filter(lambda c: isinstance(c, RunnableEntity), self.elements.values()), key=lambda r: r.short_name)
385
407
 
386
408
  def getRunnableEntity(self, short_name) -> RunnableEntity:
387
409
  return self.elements[short_name]
410
+
411
+ def getSharedParameters(self) -> List[ParameterDataPrototype]:
412
+ return self.sharedParameters
413
+
414
+ def createSharedParameter(self, short_name: str) -> ParameterDataPrototype:
415
+ if (short_name not in self.elements):
416
+ memory = ParameterDataPrototype(self, short_name)
417
+ self.addElement(memory)
418
+ self.sharedParameters.append(memory)
419
+ return self.getElement(short_name)
388
420
 
389
421
  def getSupportsMultipleInstantiation(self):
390
422
  return self.supportsMultipleInstantiation
@@ -0,0 +1,229 @@
1
+ from typing import List
2
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Identifier, PositiveInteger, RefType, TimeValue
4
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Describable, Referrable
5
+
6
+ class SocketConnection(Describable):
7
+ def __init__(self):
8
+ super().__init__()
9
+
10
+ self.allowedIPv6ExtHeadersRef = None # type: RefType
11
+ self.allowedTcpOptionsRef = None # type: RefType
12
+ self.clientIpAddrFromConnectionRequest = None # type: Boolean
13
+ self.clientPortRef = None # type: RefType
14
+ self.clientPortFromConnectionRequest = None # type: Boolean
15
+ self.pdus = [] # type: List[SocketConnectionIpduIdentifier]
16
+ self.pduSocketConnectionIpdus = [] # type: List[Identifier]
17
+ self.pduCollectionMaxBufferSize = None # type: PositiveInteger
18
+ self.pduCollectionTimeout = None # type: TimeValue
19
+ self.runtimeIpAddressConfiguration = None # type: RuntimeAddressConfigurationEnum
20
+ self.runtimePortConfiguration = None # type: RuntimeAddressConfigurationEnum
21
+ self.shortLabel = None # type: Identifier
22
+
23
+ def getAllowedIPv6ExtHeadersRef(self):
24
+ return self.allowedIPv6ExtHeadersRef
25
+
26
+ def setAllowedIPv6ExtHeadersRef(self, value):
27
+ self.allowedIPv6ExtHeadersRef = value
28
+ return self
29
+
30
+ def getAllowedTcpOptionsRef(self):
31
+ return self.allowedTcpOptionsRef
32
+
33
+ def setAllowedTcpOptionsRef(self, value):
34
+ self.allowedTcpOptionsRef = value
35
+ return self
36
+
37
+ def getClientIpAddrFromConnectionRequest(self):
38
+ return self.clientIpAddrFromConnectionRequest
39
+
40
+ def setClientIpAddrFromConnectionRequest(self, value):
41
+ self.clientIpAddrFromConnectionRequest = value
42
+ return self
43
+
44
+ def getClientPortRef(self):
45
+ return self.clientPortRef
46
+
47
+ def setClientPortRef(self, value):
48
+ self.clientPortRef = value
49
+ return self
50
+
51
+ def getClientPortFromConnectionRequest(self):
52
+ return self.clientPortFromConnectionRequest
53
+
54
+ def setClientPortFromConnectionRequest(self, value):
55
+ self.clientPortFromConnectionRequest = value
56
+ return self
57
+
58
+ def getPdus(self):
59
+ return self.pdus
60
+
61
+ def addPdu(self, value):
62
+ self.pdus.append(value)
63
+ return self
64
+
65
+ def getPduSocketConnectionIpdus(self):
66
+ return self.pduSocketConnectionIpdus
67
+
68
+ def addPduSocketConnectionIpdu(self, value):
69
+ self.pduSocketConnectionIpdus.append(value)
70
+ return self
71
+
72
+ def getPduCollectionMaxBufferSize(self):
73
+ return self.pduCollectionMaxBufferSize
74
+
75
+ def setPduCollectionMaxBufferSize(self, value):
76
+ self.pduCollectionMaxBufferSize = value
77
+ return self
78
+
79
+ def getPduCollectionTimeout(self):
80
+ return self.pduCollectionTimeout
81
+
82
+ def setPduCollectionTimeout(self, value):
83
+ self.pduCollectionTimeout = value
84
+ return self
85
+
86
+ def getRuntimeIpAddressConfiguration(self):
87
+ return self.runtimeIpAddressConfiguration
88
+
89
+ def setRuntimeIpAddressConfiguration(self, value):
90
+ self.runtimeIpAddressConfiguration = value
91
+ return self
92
+
93
+ def getRuntimePortConfiguration(self):
94
+ return self.runtimePortConfiguration
95
+
96
+ def setRuntimePortConfiguration(self, value):
97
+ self.runtimePortConfiguration = value
98
+ return self
99
+
100
+ def getShortLabel(self):
101
+ return self.shortLabel
102
+
103
+ def setShortLabel(self, value):
104
+ self.shortLabel = value
105
+ return self
106
+
107
+
108
+ class SocketConnectionIpduIdentifier(ARObject):
109
+ def __init__(self):
110
+ super().__init__()
111
+
112
+ self.headerId = None # type: PositiveInteger
113
+ self.pduCollectionPduTimeout = None # type: TimeValue
114
+ self.pduCollectionSemantics = None # type: PduCollectionSemanticsEnum
115
+ self.pduCollectionTrigger = None # type: PduCollectionTriggerEnum
116
+ self.PduRef = None # type: RefType
117
+ self.pduTriggeringRef = None # type: RefType
118
+ self.routingGroupRefs = [] # type: List[RefType]
119
+
120
+
121
+ def getHeaderId(self):
122
+ return self.headerId
123
+
124
+ def setHeaderId(self, value):
125
+ self.headerId = value
126
+ return self
127
+
128
+ def getPduCollectionPduTimeout(self):
129
+ return self.pduCollectionPduTimeout
130
+
131
+ def setPduCollectionPduTimeout(self, value):
132
+ self.pduCollectionPduTimeout = value
133
+ return self
134
+
135
+ def getPduCollectionSemantics(self):
136
+ return self.pduCollectionSemantics
137
+
138
+ def setPduCollectionSemantics(self, value):
139
+ self.pduCollectionSemantics = value
140
+ return self
141
+
142
+ def getPduCollectionTrigger(self):
143
+ return self.pduCollectionTrigger
144
+
145
+ def setPduCollectionTrigger(self, value):
146
+ self.pduCollectionTrigger = value
147
+ return self
148
+
149
+ def getPduRef(self):
150
+ return self.PduRef
151
+
152
+ def setPduRef(self, value):
153
+ self.PduRef = value
154
+ return self
155
+
156
+ def getPduTriggeringRef(self):
157
+ return self.pduTriggeringRef
158
+
159
+ def setPduTriggeringRef(self, value):
160
+ self.pduTriggeringRef = value
161
+ return self
162
+
163
+ def getRoutingGroupRefs(self):
164
+ return self.routingGroupRefs
165
+
166
+ def setRoutingGroupRefs(self, value):
167
+ self.routingGroupRefs = value
168
+ return self
169
+
170
+ class SocketConnectionBundle(Referrable):
171
+ def __init__(self, parent: ARObject, short_name: str):
172
+ super().__init__(parent, short_name)
173
+
174
+ self.bundledConnections = [] # type: List[SocketConnection]
175
+ self.differentiatedServiceField = None # type: PositiveInteger
176
+ self.flowLabel = None # type: PositiveInteger
177
+ self.pathMtuDiscoveryEnabled = None # type: Boolean
178
+ self.pdus = [] # type: List[SocketConnectionIpduIdentifier]
179
+ self.serverPortRef = None # type: RefType
180
+ self.udpChecksumHandling = None # type: UdpChecksumCalculationEnum
181
+
182
+ def getBundledConnections(self):
183
+ return self.bundledConnections
184
+
185
+ def addBundledConnection(self, value):
186
+ self.bundledConnections.append(value)
187
+ return self
188
+
189
+ def getDifferentiatedServiceField(self):
190
+ return self.differentiatedServiceField
191
+
192
+ def setDifferentiatedServiceField(self, value):
193
+ self.differentiatedServiceField = value
194
+ return self
195
+
196
+ def getFlowLabel(self):
197
+ return self.flowLabel
198
+
199
+ def setFlowLabel(self, value):
200
+ self.flowLabel = value
201
+ return self
202
+
203
+ def getPathMtuDiscoveryEnabled(self):
204
+ return self.pathMtuDiscoveryEnabled
205
+
206
+ def setPathMtuDiscoveryEnabled(self, value):
207
+ self.pathMtuDiscoveryEnabled = value
208
+ return self
209
+
210
+ def getPdus(self):
211
+ return self.pdus
212
+
213
+ def setPdus(self, value):
214
+ self.pdus = value
215
+ return self
216
+
217
+ def getServerPortRef(self):
218
+ return self.serverPortRef
219
+
220
+ def setServerPortRef(self, value):
221
+ self.serverPortRef = value
222
+ return self
223
+
224
+ def getUdpChecksumHandling(self):
225
+ return self.udpChecksumHandling
226
+
227
+ def setUdpChecksumHandling(self, value):
228
+ self.udpChecksumHandling = value
229
+ return self