armodel 1.7.6__py3-none-any.whl → 1.7.8__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 (69) hide show
  1. armodel/cli/arxml_dump_cli.py +33 -22
  2. armodel/cli/arxml_format_cli.py +25 -13
  3. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +95 -21
  4. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +359 -59
  5. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +134 -35
  6. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +17 -7
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +10 -1
  8. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +18 -2
  9. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +20 -19
  10. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +59 -0
  11. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +145 -0
  12. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +215 -157
  13. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +69 -35
  14. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +17 -1
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +19 -5
  16. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +113 -39
  17. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +3 -2
  18. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +41 -16
  19. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +10 -3
  20. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +13 -6
  21. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +111 -38
  22. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +9 -1
  23. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +5 -4
  24. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +26 -8
  25. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +28 -6
  26. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +167 -5
  27. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +29 -0
  28. armodel/models/M2/AUTOSARTemplates/SystemTemplate/EcuResourceMapping.py +45 -0
  29. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +31 -21
  30. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +5 -3
  31. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +9 -0
  32. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +76 -0
  33. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +654 -0
  34. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__init__.py +0 -0
  35. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +539 -77
  36. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +158 -40
  37. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +28 -6
  38. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +2 -0
  39. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +245 -130
  40. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +27 -0
  41. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +524 -0
  42. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +592 -17
  43. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +33 -21
  44. armodel/models/M2/MSR/AsamHdo/AdminData.py +1 -2
  45. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +3 -1
  46. armodel/models/M2/MSR/AsamHdo/SpecialData.py +35 -8
  47. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +0 -3
  48. armodel/models/__init__.py +8 -0
  49. armodel/parser/abstract_arxml_parser.py +34 -27
  50. armodel/parser/arxml_parser.py +1778 -616
  51. armodel/parser/file_parser.py +5 -3
  52. armodel/tests/test_armodel/models/test_ar_package.py +6 -11
  53. armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -3
  54. armodel/tests/test_armodel/models/test_datatype.py +1 -1
  55. armodel/tests/test_armodel/models/test_port_interface.py +116 -117
  56. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +218 -0
  57. armodel/tests/test_armodel/parser/test_sw_components.py +54 -22
  58. armodel/tests/test_armodel/parser/test_system.py +2 -8
  59. armodel/transformer/__init__.py +0 -0
  60. armodel/transformer/abstract.py +6 -0
  61. armodel/transformer/admin_data.py +31 -0
  62. armodel/writer/abstract_arxml_writer.py +27 -33
  63. armodel/writer/arxml_writer.py +1875 -599
  64. {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/METADATA +81 -3
  65. {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/RECORD +69 -56
  66. {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/LICENSE +0 -0
  67. {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/WHEEL +0 -0
  68. {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/entry_points.txt +0 -0
  69. {armodel-1.7.6.dist-info → armodel-1.7.8.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,15 @@
1
1
  from abc import ABCMeta
2
+ from typing import List
2
3
 
3
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
4
+ from ....M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import TextTableMapping
5
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, RefType
4
6
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
7
  from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationDirectionType
6
8
 
7
- class DataMapping(ARObject, metaclass = ABCMeta):
9
+
10
+ class DataMapping(ARObject, metaclass=ABCMeta):
8
11
  def __init__(self):
9
- if type(self) == ARObject:
12
+ if type(self) is DataMapping:
10
13
  raise NotImplementedError("DataMapping is an abstract class.")
11
14
 
12
15
  super().__init__()
@@ -20,6 +23,7 @@ class DataMapping(ARObject, metaclass = ABCMeta):
20
23
  self.introduction = value
21
24
  return self
22
25
 
26
+
23
27
  class SenderReceiverToSignalMapping(DataMapping):
24
28
  def __init__(self):
25
29
  super().__init__()
@@ -65,13 +69,172 @@ class SenderReceiverToSignalMapping(DataMapping):
65
69
  self.systemSignalRef = value
66
70
  return self
67
71
 
72
+
73
+ class SenderRecCompositeTypeMapping(ARObject, metaclass=ABCMeta):
74
+ def __init__(self):
75
+ if type(self) is SenderRecCompositeTypeMapping:
76
+ raise NotImplementedError("SenderRecCompositeTypeMapping is an abstract class.")
77
+
78
+ super().__init__()
79
+
80
+
81
+ class SenderRecRecordElementMapping(ARObject):
82
+ def __init__(self):
83
+ super().__init__()
84
+
85
+ self.applicationRecordElementRef = None # type: RefType
86
+ self.complexTypeMapping = None # type: SenderRecCompositeTypeMapping
87
+ self.implementationRecordElementRef = None # type: RefType
88
+ self.senderToSignalTextTableMapping = None # type: TextTableMapping
89
+ self.signalToReceiverTextTableMapping = None # type: TextTableMapping
90
+ self.systemSignalRef = None # type: RefType
91
+
92
+ def getApplicationRecordElementRef(self):
93
+ return self.applicationRecordElementRef
94
+
95
+ def setApplicationRecordElementRef(self, value):
96
+ if value is not None:
97
+ self.applicationRecordElementRef = value
98
+ return self
99
+
100
+ def getComplexTypeMapping(self):
101
+ return self.complexTypeMapping
102
+
103
+ def setComplexTypeMapping(self, value):
104
+ if value is not None:
105
+ self.complexTypeMapping = value
106
+ return self
107
+
108
+ def getImplementationRecordElementRef(self):
109
+ return self.implementationRecordElementRef
110
+
111
+ def setImplementationRecordElementRef(self, value):
112
+ if value is not None:
113
+ self.implementationRecordElementRef = value
114
+ return self
115
+
116
+ def getSenderToSignalTextTableMapping(self):
117
+ return self.senderToSignalTextTableMapping
118
+
119
+ def setSenderToSignalTextTableMapping(self, value):
120
+ if value is not None:
121
+ self.senderToSignalTextTableMapping = value
122
+ return self
123
+
124
+ def getSignalToReceiverTextTableMapping(self):
125
+ return self.signalToReceiverTextTableMapping
126
+
127
+ def setSignalToReceiverTextTableMapping(self, value):
128
+ if value is not None:
129
+ self.signalToReceiverTextTableMapping = value
130
+ return self
131
+
132
+ def getSystemSignalRef(self):
133
+ return self.systemSignalRef
134
+
135
+ def setSystemSignalRef(self, value):
136
+ if value is not None:
137
+ self.systemSignalRef = value
138
+ return self
139
+
140
+
141
+ class SenderRecRecordTypeMapping(SenderRecCompositeTypeMapping):
142
+ def __init__(self):
143
+ super().__init__()
144
+
145
+ self.recordElementMappings = [] # type: List[SenderRecRecordElementMapping]
146
+
147
+ def getRecordElementMappings(self):
148
+ return self.recordElementMappings
149
+
150
+ def addRecordElementMapping(self, value):
151
+ if value is not None:
152
+ self.recordElementMappings.append(value)
153
+ return self
154
+
155
+
156
+ class IndexedArrayElement(ARObject):
157
+ def __init__(self):
158
+ super().__init__()
159
+
160
+ self.applicationArrayElementRef = None # type: RefType
161
+ self.implementationArrayElementRef = None # type: RefType
162
+ self.index = None # type: Integer
163
+
164
+
165
+ class SenderRecArrayElementMapping(ARObject):
166
+ def __init__(self):
167
+ super().__init__()
168
+
169
+ self.complexTypeMapping = None # type: SenderRecCompositeTypeMapping
170
+ self.indexedArrayElement = None # type: IndexedArrayElement
171
+ self.systemSignalRef = None # type: RefType
172
+
173
+ def getComplexTypeMapping(self):
174
+ return self.complexTypeMapping
175
+
176
+ def setComplexTypeMapping(self, value):
177
+ if value is not None:
178
+ self.complexTypeMapping = value
179
+ return self
180
+
181
+ def getIndexedArrayElement(self):
182
+ return self.indexedArrayElement
183
+
184
+ def setIndexedArrayElement(self, value):
185
+ if value is not None:
186
+ self.indexedArrayElement = value
187
+ return self
188
+
189
+ def getSystemSignalRef(self):
190
+ return self.systemSignalRef
191
+
192
+ def setSystemSignalRef(self, value):
193
+ if value is not None:
194
+ self.systemSignalRef = value
195
+ return self
196
+
197
+
198
+ class SenderRecArrayTypeMapping(SenderRecCompositeTypeMapping):
199
+ def __init__(self):
200
+ super().__init__()
201
+
202
+ self.arrayElementMappings = [] # type: List[SenderRecArrayElementMapping]
203
+ self.senderToSignal = None # type: TextTableMapping
204
+ self.signalToReceiverTextTableMapping = None # type: TextTableMapping
205
+
206
+ def getArrayElementMappings(self):
207
+ return self.arrayElementMappings
208
+
209
+ def setArrayElementMappings(self, value):
210
+ if value is not None:
211
+ self.arrayElementMappings = value
212
+ return self
213
+
214
+ def getSenderToSignal(self):
215
+ return self.senderToSignal
216
+
217
+ def setSenderToSignal(self, value):
218
+ if value is not None:
219
+ self.senderToSignal = value
220
+ return self
221
+
222
+ def getSignalToReceiverTextTableMapping(self):
223
+ return self.signalToReceiverTextTableMapping
224
+
225
+ def setSignalToReceiverTextTableMapping(self, value):
226
+ if value is not None:
227
+ self.signalToReceiverTextTableMapping = value
228
+ return self
229
+
230
+
68
231
  class SenderReceiverToSignalGroupMapping(DataMapping):
69
232
  def __init__(self):
70
233
  super().__init__()
71
234
 
72
235
  self.dataElementIRef = None # type: RefType
73
236
  self.signalGroupRef = None # type: RefType
74
- self.typeMapping = None
237
+ self.typeMapping = None # type: SenderRecCompositeTypeMapping
75
238
 
76
239
  def getDataElementIRef(self):
77
240
  return self.dataElementIRef
@@ -93,4 +256,3 @@ class SenderReceiverToSignalGroupMapping(DataMapping):
93
256
  def setTypeMapping(self, value):
94
257
  self.typeMapping = value
95
258
  return self
96
-
@@ -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,45 @@
1
+ from typing import List
2
+ from ..GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
3
+ from ..GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
4
+
5
+
6
+ class ECUMapping(Identifiable):
7
+ def __init__(self, parent, short_name):
8
+ super().__init__(parent, short_name)
9
+
10
+ self.commControllerMappings = [] # type: List[CommunicationControllerMapping]
11
+ self.ecuRef = None # type: RefType
12
+ self.ecuInstanceRef = None # type: RefType
13
+ self.hwPortMappings = [] # type: List[HwPortMapping]
14
+
15
+ def getCommControllerMappings(self):
16
+ return self.commControllerMappings
17
+
18
+ def setCommControllerMappings(self, value):
19
+ if value is not None:
20
+ self.commControllerMappings = value
21
+ return self
22
+
23
+ def getEcuRef(self):
24
+ return self.ecuRef
25
+
26
+ def setEcuRef(self, value):
27
+ if value is not None:
28
+ self.ecuRef = value
29
+ return self
30
+
31
+ def getEcuInstanceRef(self):
32
+ return self.ecuInstanceRef
33
+
34
+ def setEcuInstanceRef(self, value):
35
+ if value is not None:
36
+ self.ecuInstanceRef = value
37
+ return self
38
+
39
+ def getHwPortMappings(self):
40
+ return self.hwPortMappings
41
+
42
+ def setHwPortMappings(self, value):
43
+ if value is not None:
44
+ self.hwPortMappings = value
45
+ return self
@@ -1,9 +1,11 @@
1
1
  from abc import ABCMeta
2
2
 
3
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Float, Integer, PositiveInteger, PositiveUnlimitedInteger, TimeValue
3
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Float, Integer, PositiveInteger
4
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveUnlimitedInteger, TimeValue
4
5
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
6
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
6
7
 
8
+
7
9
  class CanControllerFdConfiguration(ARObject):
8
10
  def __init__(self):
9
11
  super().__init__()
@@ -72,6 +74,7 @@ class CanControllerFdConfiguration(ARObject):
72
74
  self.txBitRateSwitch = value
73
75
  return self
74
76
 
77
+
75
78
  class CanControllerFdConfigurationRequirements(ARObject):
76
79
  def __init__(self):
77
80
  super().__init__()
@@ -167,7 +170,8 @@ class CanControllerFdConfigurationRequirements(ARObject):
167
170
  self.txBitRateSwitch = value
168
171
  return self
169
172
 
170
- class AbstractCanCommunicationControllerAttributes(ARObject, metaclass = ABCMeta):
173
+
174
+ class AbstractCanCommunicationControllerAttributes(ARObject, metaclass=ABCMeta):
171
175
  def __init__(self):
172
176
  super().__init__()
173
177
 
@@ -204,6 +208,7 @@ class AbstractCanCommunicationControllerAttributes(ARObject, metaclass = ABCMeta
204
208
  self.canControllerXlRequirements = value
205
209
  return self
206
210
 
211
+
207
212
  class CanControllerConfigurationRequirements(AbstractCanCommunicationControllerAttributes):
208
213
  def __init__(self):
209
214
  super().__init__()
@@ -257,9 +262,10 @@ class CanControllerConfigurationRequirements(AbstractCanCommunicationControllerA
257
262
  self.minSyncJumpWidth = value
258
263
  return self
259
264
 
260
- class AbstractCanCommunicationController(CommunicationController, metaclass = ABCMeta):
265
+
266
+ class AbstractCanCommunicationController(CommunicationController, metaclass=ABCMeta):
261
267
  def __init__(self, parent: ARObject, short_name: str):
262
- if type(self) == AbstractCanCommunicationController:
268
+ if type(self) is AbstractCanCommunicationController:
263
269
  raise NotImplementedError("AbstractCanCommunicationController is an abstract class.")
264
270
 
265
271
  super().__init__(parent, short_name)
@@ -272,63 +278,67 @@ class AbstractCanCommunicationController(CommunicationController, metaclass = AB
272
278
  def setCanControllerAttributes(self, value):
273
279
  self.canControllerAttributes = value
274
280
  return self
275
-
281
+
282
+
276
283
  class CanCommunicationController(AbstractCanCommunicationController):
277
284
  def __init__(self, parent: ARObject, short_name: str):
278
285
  super().__init__(parent, short_name)
279
286
 
280
- class AbstractCanCommunicationConnector(CommunicationConnector, metaclass = ABCMeta):
287
+
288
+ class AbstractCanCommunicationConnector(CommunicationConnector, metaclass=ABCMeta):
281
289
  def __init__(self, parent: ARObject, short_name: str):
282
- if type(self) == AbstractCanCommunicationConnector:
290
+ if type(self) is AbstractCanCommunicationConnector:
283
291
  raise NotImplementedError("AbstractCanCommunicationConnector is an abstract class.")
284
292
 
285
293
  super().__init__(parent, short_name)
286
294
 
295
+
287
296
  class CanCommunicationConnector(AbstractCanCommunicationConnector):
288
297
  def __init__(self, parent: ARObject, short_name: str):
289
- super().__init__(parent, short_name)
298
+ super().__init__(parent, short_name)
290
299
 
291
- # type: PositiveInteger
292
- self.pncWakeupCanId = None
300
+ self.pncWakeupCanId = None # type: PositiveInteger
293
301
  self.pncWakeupCanIdExtended = None # type: Boolean
294
- # type: PositiveInteger
295
- self.pncWakeupCanIdMask = None
296
- # type: PositiveUnlimitedInteger
297
- self.pncWakeupDataMask = None
298
- # type: PositiveInteger
299
- self.pncWakeupDlc = None
302
+ self.pncWakeupCanIdMask = None # type: PositiveInteger
303
+ self.pncWakeupDataMask = None # type: PositiveUnlimitedInteger
304
+ self.pncWakeupDlc = None # type: PositiveInteger
300
305
 
301
306
  def getPncWakeupCanId(self):
302
307
  return self.pncWakeupCanId
303
308
 
304
309
  def setPncWakeupCanId(self, value):
305
- self.pncWakeupCanId = value
310
+ if value is not None:
311
+ self.pncWakeupCanId = value
306
312
  return self
307
313
 
308
314
  def getPncWakeupCanIdExtended(self):
309
315
  return self.pncWakeupCanIdExtended
310
316
 
311
317
  def setPncWakeupCanIdExtended(self, value):
312
- self.pncWakeupCanIdExtended = value
318
+ if value is not None:
319
+ self.pncWakeupCanIdExtended = value
313
320
  return self
314
321
 
315
322
  def getPncWakeupCanIdMask(self):
316
323
  return self.pncWakeupCanIdMask
317
324
 
318
325
  def setPncWakeupCanIdMask(self, value):
319
- self.pncWakeupCanIdMask = value
326
+ if value is not None:
327
+ self.pncWakeupCanIdMask = value
320
328
  return self
321
329
 
322
330
  def getPncWakeupDataMask(self):
323
331
  return self.pncWakeupDataMask
324
332
 
325
333
  def setPncWakeupDataMask(self, value):
326
- self.pncWakeupDataMask = value
334
+ if value is not None:
335
+ self.pncWakeupDataMask = value
327
336
  return self
328
337
 
329
338
  def getPncWakeupDlc(self):
330
339
  return self.pncWakeupDlc
331
340
 
332
341
  def setPncWakeupDlc(self, value):
333
- self.pncWakeupDlc = value
342
+ if value is not None:
343
+ self.pncWakeupDlc = value
334
344
  return self
@@ -2,13 +2,15 @@ from abc import ABCMeta
2
2
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
3
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import Frame
4
4
 
5
- class AbstractEthernetFrame(Frame, metaclass = ABCMeta):
5
+
6
+ class AbstractEthernetFrame(Frame, metaclass=ABCMeta):
6
7
  def __init__(self, parent: ARObject, short_name: str):
7
- if type(self) == AbstractEthernetFrame:
8
+ if type(self) is AbstractEthernetFrame:
8
9
  raise NotImplementedError("AbstractEthernetFrame is an abstract class.")
9
10
 
10
11
  super().__init__(parent, short_name)
11
12
 
13
+
12
14
  class GenericEthernetFrame(AbstractEthernetFrame):
13
15
  def __init__(self, parent: ARObject, short_name: str):
14
- super().__init__(parent, short_name)
16
+ super().__init__(parent, short_name)
@@ -507,6 +507,7 @@ class EthernetCommunicationConnector(CommunicationConnector):
507
507
  self.ethIpPropsRef = None # type: RefType
508
508
  self.maximumTransmissionUnit = None # type: PositiveInteger
509
509
  self.neighborCacheSize = None # type: PositiveInteger
510
+ self.networkEndpointRefs = [] # type: List[RefType] ## 4.3.1 Version
510
511
  self.pathMtuEnabled = None # type: Boolean
511
512
  self.pathMtuTimeout = None # type: TimeValue
512
513
 
@@ -530,6 +531,14 @@ class EthernetCommunicationConnector(CommunicationConnector):
530
531
  def setNeighborCacheSize(self, value):
531
532
  self.neighborCacheSize = value
532
533
  return self
534
+
535
+ def getNetworkEndpointRefs(self):
536
+ return self.networkEndpointRefs
537
+
538
+ def addNetworkEndpointRef(self, value):
539
+ if value is not None:
540
+ self.networkEndpointRefs.append(value)
541
+ return self
533
542
 
534
543
  def getPathMtuEnabled(self):
535
544
  return self.pathMtuEnabled
@@ -0,0 +1,76 @@
1
+ from typing import List
2
+
3
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, PositiveInteger
4
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import Frame, FrameTriggering
6
+
7
+
8
+ class FlexrayFrame(Frame):
9
+ def __init__(self, parent: ARObject, short_name: str):
10
+ super().__init__(parent, short_name)
11
+
12
+
13
+ class FlexrayAbsolutelyScheduledTiming(ARObject):
14
+ def __init__(self):
15
+ super().__init__()
16
+
17
+ self.communicationCycle = None # type: CommunicationCycle
18
+ self.slotID = None # type: PositiveInteger
19
+
20
+ def getCommunicationCycle(self):
21
+ return self.communicationCycle
22
+
23
+ def setCommunicationCycle(self, value):
24
+ if value is not None:
25
+ self.communicationCycle = value
26
+ return self
27
+
28
+ def getSlotID(self):
29
+ return self.slotID
30
+
31
+ def setSlotID(self, value):
32
+ if value is not None:
33
+ self.slotID = value
34
+ return self
35
+
36
+
37
+ class FlexrayFrameTriggering(FrameTriggering):
38
+ def __init__(self, parent: ARObject, short_name: str):
39
+ super().__init__(parent, short_name)
40
+
41
+ self.absolutelyScheduledTimings = [] # type: List[FlexrayAbsolutelyScheduledTiming]
42
+ self.allowDynamicLSduLength = None # type: Boolean
43
+ self.messageId = None # type: PositiveInteger
44
+ self.payloadPreambleIndicator = None # type: Boolean
45
+
46
+ def getAbsolutelyScheduledTimings(self):
47
+ return self.absolutelyScheduledTimings
48
+
49
+ def addAbsolutelyScheduledTiming(self, value):
50
+ if value is not None:
51
+ self.absolutelyScheduledTimings.append(value)
52
+ return self
53
+
54
+ def getAllowDynamicLSduLength(self):
55
+ return self.allowDynamicLSduLength
56
+
57
+ def setAllowDynamicLSduLength(self, value):
58
+ if value is not None:
59
+ self.allowDynamicLSduLength = value
60
+ return self
61
+
62
+ def getMessageId(self):
63
+ return self.messageId
64
+
65
+ def setMessageId(self, value):
66
+ if value is not None:
67
+ self.messageId = value
68
+ return self
69
+
70
+ def getPayloadPreambleIndicator(self):
71
+ return self.payloadPreambleIndicator
72
+
73
+ def setPayloadPreambleIndicator(self, value):
74
+ if value is not None:
75
+ self.payloadPreambleIndicator = value
76
+ return self