armodel 1.7.5__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 (48) 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/CommonStructure/ImplementationDataTypes.py +2 -2
  5. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +4 -0
  6. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +8 -2
  7. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +9 -3
  8. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +30 -1
  9. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +19 -5
  10. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -0
  11. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +2 -2
  12. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +41 -16
  13. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +10 -3
  14. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +26 -8
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +19 -5
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +29 -0
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/ECUResourceMapping.py +44 -0
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +165 -4
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +409 -17
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +356 -8
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +2 -4
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +76 -10
  23. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +483 -54
  24. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +45 -23
  25. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +10 -0
  26. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +245 -130
  27. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +27 -0
  28. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +633 -5
  29. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +22 -11
  30. armodel/models/M2/MSR/AsamHdo/AdminData.py +1 -2
  31. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +3 -1
  32. armodel/models/M2/MSR/AsamHdo/SpecialData.py +35 -8
  33. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +0 -3
  34. armodel/models/__init__.py +4 -0
  35. armodel/parser/abstract_arxml_parser.py +8 -5
  36. armodel/parser/arxml_parser.py +1229 -572
  37. armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -3
  38. armodel/tests/test_armodel/models/test_datatype.py +1 -1
  39. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +218 -0
  40. armodel/tests/test_armodel/parser/test_sw_components.py +22 -1
  41. armodel/writer/abstract_arxml_writer.py +7 -6
  42. armodel/writer/arxml_writer.py +1037 -187
  43. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/METADATA +62 -3
  44. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/RECORD +48 -44
  45. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/LICENSE +0 -0
  46. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/WHEEL +0 -0
  47. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/entry_points.txt +0 -0
  48. {armodel-1.7.5.dist-info → armodel-1.7.7.dist-info}/top_level.txt +0 -0
@@ -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
@@ -6,7 +6,7 @@ from .....M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBe
6
6
  from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ParameterDataPrototype, VariableDataPrototype
7
7
  from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
8
8
  from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PerInstanceMemory import PerInstanceMemory
9
- from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import AsynchronousServerCallReturnsEvent, DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent, TimingEvent
9
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import AsynchronousServerCallReturnsEvent, BackgroundEvent, DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent, ModeSwitchedAckEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent, TimingEvent
10
10
  from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import SwcServiceDependency
11
11
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, Boolean, RefType, ARBoolean
12
12
  from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
@@ -338,6 +338,18 @@ class SwcInternalBehavior(InternalBehavior):
338
338
  event = SwcServiceDependency(self, short_name)
339
339
  self.elements[short_name] = event
340
340
  return self.elements[short_name]
341
+
342
+ def createModeSwitchedAckEvent(self, short_name: str) -> ModeSwitchedAckEvent:
343
+ if (short_name not in self.elements):
344
+ event = ModeSwitchedAckEvent(self, short_name)
345
+ self.addElement(event)
346
+ return self.getElement(short_name)
347
+
348
+ def createBackgroundEvent(self, short_name: str) -> BackgroundEvent:
349
+ if (short_name not in self.elements):
350
+ event = BackgroundEvent(self, short_name)
351
+ self.addElement(event)
352
+ return self.getElement(short_name)
341
353
 
342
354
  def getRteEvents(self) -> List[RTEEvent]:
343
355
  return sorted(filter(lambda c: isinstance(c, RTEEvent), self.elements.values()), key=lambda e: e.short_name)
@@ -359,6 +371,12 @@ class SwcInternalBehavior(InternalBehavior):
359
371
 
360
372
  def getInternalTriggerOccurredEvents(self) -> List[InternalTriggerOccurredEvent]:
361
373
  return sorted(filter(lambda c: isinstance(c, InternalTriggerOccurredEvent), self.elements.values()), key= lambda e: e.short_name)
374
+
375
+ def getModeSwitchedAckEvents(self) -> List[ModeSwitchedAckEvent]:
376
+ return sorted(filter(lambda c: isinstance(c, ModeSwitchedAckEvent), self.elements.values()), key= lambda e: e.short_name)
377
+
378
+ def getBackgroundEvents(self) -> List[BackgroundEvent]:
379
+ return sorted(filter(lambda c: isinstance(c, BackgroundEvent), self.elements.values()), key= lambda e: e.short_name)
362
380
 
363
381
  def getSwcServiceDependencies(self) -> List[SwcServiceDependency]:
364
382
  return sorted(filter(lambda c: isinstance(c, SwcServiceDependency), self.elements.values()), key= lambda e: e.short_name)
@@ -367,10 +385,6 @@ class SwcInternalBehavior(InternalBehavior):
367
385
  if (not isinstance(self.elements[short_name], RTEEvent)):
368
386
  raise ValueError("Invalid Event Type <%s> of <%s>" % type(self.elements[short_name]), short_name)
369
387
  return self.elements[short_name]
370
-
371
-
372
-
373
-
374
388
 
375
389
  def createImplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
376
390
  if (short_name not in self.elements):
@@ -0,0 +1,29 @@
1
+ from abc import ABCMeta
2
+
3
+ from .....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
+ from .....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
5
+
6
+ class AbstractDoIpLogicAddressProps(Identifiable, metaclass = ABCMeta):
7
+ def __init__(self, parent: ARObject, short_name: str):
8
+ if type(self) == AbstractDoIpLogicAddressProps:
9
+ raise NotImplementedError("AbstractDoIpLogicAddressProps is an abstract class.")
10
+
11
+ super().__init__(parent, short_name)
12
+
13
+ class DoIpLogicTargetAddressProps(AbstractDoIpLogicAddressProps):
14
+ def __init__(self, parent, short_name):
15
+ super().__init__(parent, short_name)
16
+
17
+ class DoIpLogicTesterAddressProps(AbstractDoIpLogicAddressProps):
18
+ def __init__(self, parent, short_name):
19
+ super().__init__(parent, short_name)
20
+
21
+ self.doIpTesterRoutingActivationRef = None # type: RefType
22
+
23
+ def getDoIpTesterRoutingActivationRef(self):
24
+ return self.doIpTesterRoutingActivationRef
25
+
26
+ def setDoIpTesterRoutingActivationRef(self, value):
27
+ if value is not None:
28
+ self.doIpTesterRoutingActivationRef = value
29
+ return self
@@ -0,0 +1,44 @@
1
+ from typing import List
2
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
3
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
4
+
5
+ class ECUMapping(Identifiable):
6
+ def __init__(self, parent, short_name):
7
+ super().__init__(parent, short_name)
8
+
9
+ self.commControllerMappings = [] # type: List[CommunicationControllerMapping]
10
+ self.ecuRef = None # type: RefType
11
+ self.ecuInstanceRef = None # type: RefType
12
+ self.hwPortMappings =[] # type: List[HwPortMapping]
13
+
14
+ def getCommControllerMappings(self):
15
+ return self.commControllerMappings
16
+
17
+ def setCommControllerMappings(self, value):
18
+ if value is not None:
19
+ self.commControllerMappings = value
20
+ return self
21
+
22
+ def getEcuRef(self):
23
+ return self.ecuRef
24
+
25
+ def setEcuRef(self, value):
26
+ if value is not None:
27
+ self.ecuRef = value
28
+ return self
29
+
30
+ def getEcuInstanceRef(self):
31
+ return self.ecuInstanceRef
32
+
33
+ def setEcuInstanceRef(self, value):
34
+ if value is not None:
35
+ self.ecuInstanceRef = value
36
+ return self
37
+
38
+ def getHwPortMappings(self):
39
+ return self.hwPortMappings
40
+
41
+ def setHwPortMappings(self, value):
42
+ if value is not None:
43
+ self.hwPortMappings = value
44
+ return self
@@ -1,9 +1,172 @@
1
1
  from abc import ABCMeta
2
2
 
3
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Float, Integer, PositiveInteger, PositiveUnlimitedInteger
3
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Float, Integer, PositiveInteger, PositiveUnlimitedInteger, TimeValue
4
4
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
5
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
6
6
 
7
+ class CanControllerFdConfiguration(ARObject):
8
+ def __init__(self):
9
+ super().__init__()
10
+
11
+ self.paddingValue = None # type: PositiveInteger
12
+ self.propSeg = None # type: PositiveInteger
13
+ self.sspOffset = None # type: PositiveInteger
14
+ self.syncJumpWidth = None # type: PositiveInteger
15
+ self.timeSeg1 = None # type: PositiveInteger
16
+ self.timeSeg2 = None # type: PositiveInteger
17
+ self.txBitRateSwitch = None # type: Boolean
18
+
19
+ def getPaddingValue(self):
20
+ return self.paddingValue
21
+
22
+ def setPaddingValue(self, value):
23
+ if value is not None:
24
+ self.paddingValue = value
25
+ return self
26
+
27
+ def getPropSeg(self):
28
+ return self.propSeg
29
+
30
+ def setPropSeg(self, value):
31
+ if value is not None:
32
+ self.propSeg = value
33
+ return self
34
+
35
+ def getSspOffset(self):
36
+ return self.sspOffset
37
+
38
+ def setSspOffset(self, value):
39
+ if value is not None:
40
+ self.sspOffset = value
41
+ return self
42
+
43
+ def getSyncJumpWidth(self):
44
+ return self.syncJumpWidth
45
+
46
+ def setSyncJumpWidth(self, value):
47
+ if value is not None:
48
+ self.syncJumpWidth = value
49
+ return self
50
+
51
+ def getTimeSeg1(self):
52
+ return self.timeSeg1
53
+
54
+ def setTimeSeg1(self, value):
55
+ if value is not None:
56
+ self.timeSeg1 = value
57
+ return self
58
+
59
+ def getTimeSeg2(self):
60
+ return self.timeSeg2
61
+
62
+ def setTimeSeg2(self, value):
63
+ if value is not None:
64
+ self.timeSeg2 = value
65
+ return self
66
+
67
+ def getTxBitRateSwitch(self):
68
+ return self.txBitRateSwitch
69
+
70
+ def setTxBitRateSwitch(self, value):
71
+ if value is not None:
72
+ self.txBitRateSwitch = value
73
+ return self
74
+
75
+ class CanControllerFdConfigurationRequirements(ARObject):
76
+ def __init__(self):
77
+ super().__init__()
78
+
79
+ self.maxNumberOfTimeQuantaPerBit = None # type: Integer
80
+ self.maxSamplePoint = None # type: Float
81
+ self.maxSyncJumpWidth = None # type: Float
82
+ self.maxTrcvDelayCompensationOffset = None # type: TimeValue
83
+ self.minNumberOfTimeQuantaPerBit = None # type: Integer
84
+ self.minSamplePoint = None # type: Float
85
+ self.minSyncJumpWidth = None # type: Float
86
+ self.minTrcvDelayCompensationOffset = None # type: TimeValue
87
+ self.paddingValue = None # type: PositiveInteger
88
+ self.txBitRateSwitch = None # type: Boolean
89
+
90
+ def getMaxNumberOfTimeQuantaPerBit(self):
91
+ return self.maxNumberOfTimeQuantaPerBit
92
+
93
+ def setMaxNumberOfTimeQuantaPerBit(self, value):
94
+ if value is not None:
95
+ self.maxNumberOfTimeQuantaPerBit = value
96
+ return self
97
+
98
+ def getMaxSamplePoint(self):
99
+ return self.maxSamplePoint
100
+
101
+ def setMaxSamplePoint(self, value):
102
+ if value is not None:
103
+ self.maxSamplePoint = value
104
+ return self
105
+
106
+ def getMaxSyncJumpWidth(self):
107
+ return self.maxSyncJumpWidth
108
+
109
+ def setMaxSyncJumpWidth(self, value):
110
+ if value is not None:
111
+ self.maxSyncJumpWidth = value
112
+ return self
113
+
114
+ def getMaxTrcvDelayCompensationOffset(self):
115
+ return self.maxTrcvDelayCompensationOffset
116
+
117
+ def setMaxTrcvDelayCompensationOffset(self, value):
118
+ if value is not None:
119
+ self.maxTrcvDelayCompensationOffset = value
120
+ return self
121
+
122
+ def getMinNumberOfTimeQuantaPerBit(self):
123
+ return self.minNumberOfTimeQuantaPerBit
124
+
125
+ def setMinNumberOfTimeQuantaPerBit(self, value):
126
+ if value is not None:
127
+ self.minNumberOfTimeQuantaPerBit = value
128
+ return self
129
+
130
+ def getMinSamplePoint(self):
131
+ return self.minSamplePoint
132
+
133
+ def setMinSamplePoint(self, value):
134
+ if value is not None:
135
+ self.minSamplePoint = value
136
+ return self
137
+
138
+ def getMinSyncJumpWidth(self):
139
+ return self.minSyncJumpWidth
140
+
141
+ def setMinSyncJumpWidth(self, value):
142
+ if value is not None:
143
+ self.minSyncJumpWidth = value
144
+ return self
145
+
146
+ def getMinTrcvDelayCompensationOffset(self):
147
+ return self.minTrcvDelayCompensationOffset
148
+
149
+ def setMinTrcvDelayCompensationOffset(self, value):
150
+ if value is not None:
151
+ self.minTrcvDelayCompensationOffset = value
152
+ return self
153
+
154
+ def getPaddingValue(self):
155
+ return self.paddingValue
156
+
157
+ def setPaddingValue(self, value):
158
+ if value is not None:
159
+ self.paddingValue = value
160
+ return self
161
+
162
+ def getTxBitRateSwitch(self):
163
+ return self.txBitRateSwitch
164
+
165
+ def setTxBitRateSwitch(self, value):
166
+ if value is not None:
167
+ self.txBitRateSwitch = value
168
+ return self
169
+
7
170
  class AbstractCanCommunicationControllerAttributes(ARObject, metaclass = ABCMeta):
8
171
  def __init__(self):
9
172
  super().__init__()
@@ -94,8 +257,6 @@ class CanControllerConfigurationRequirements(AbstractCanCommunicationControllerA
94
257
  self.minSyncJumpWidth = value
95
258
  return self
96
259
 
97
-
98
-
99
260
  class AbstractCanCommunicationController(CommunicationController, metaclass = ABCMeta):
100
261
  def __init__(self, parent: ARObject, short_name: str):
101
262
  if type(self) == AbstractCanCommunicationController:
@@ -111,7 +272,7 @@ class AbstractCanCommunicationController(CommunicationController, metaclass = AB
111
272
  def setCanControllerAttributes(self, value):
112
273
  self.canControllerAttributes = value
113
274
  return self
114
-
275
+
115
276
  class CanCommunicationController(AbstractCanCommunicationController):
116
277
  def __init__(self, parent: ARObject, short_name: str):
117
278
  super().__init__(parent, short_name)