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,16 @@
1
1
  from abc import ABCMeta
2
2
  from typing import List
3
3
 
4
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
4
+ from ....M2.AUTOSARTemplates.SystemTemplate.DoIp import AbstractDoIpLogicAddressProps
5
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable, Referrable
6
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Integer, PositiveInteger, RefType, TimeValue
5
7
  from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
6
8
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
7
9
 
8
10
  class TpConfig(FibexElement, metaclass = ABCMeta):
9
11
  def __init__(self, parent: ARObject, short_name: str):
10
- if type(self) == ARObject:
11
- raise NotImplementedError("ARObject is an abstract class.")
12
+ if type(self) == TpConfig:
13
+ raise NotImplementedError("TpConfig is an abstract class.")
12
14
 
13
15
  super().__init__(parent, short_name)
14
16
 
@@ -21,26 +23,435 @@ class TpConfig(FibexElement, metaclass = ABCMeta):
21
23
  if value is not None:
22
24
  self.communicationClusterRef = value
23
25
  return self
26
+
27
+ class CanTpAddress(Identifiable):
28
+ def __init__(self, parent: ARObject, short_name: str):
29
+ super().__init__(parent, short_name)
30
+
31
+ self.tpAddress = None # type: Integer
32
+ self.tpAddressExtensionValue = None # type: Integer
33
+
34
+ def getTpAddress(self):
35
+ return self.tpAddress
36
+
37
+ def setTpAddress(self, value):
38
+ if value is not None:
39
+ self.tpAddress = value
40
+ return self
41
+
42
+ def getTpAddressExtensionValue(self):
43
+ return self.tpAddressExtensionValue
44
+
45
+ def setTpAddressExtensionValue(self, value):
46
+ if value is not None:
47
+ self.tpAddressExtensionValue = value
48
+ return self
49
+
50
+ class CanTpChannel(Identifiable):
51
+ def __init__(self, parent: ARObject, short_name: str):
52
+ super().__init__(parent, short_name)
53
+
54
+ self.channelId = None # type: PositiveInteger
55
+ self.channelMode = None # type: CanTpChannelModeType
56
+
57
+ def getChannelId(self):
58
+ return self.channelId
59
+
60
+ def setChannelId(self, value):
61
+ if value is not None:
62
+ self.channelId = value
63
+ return self
64
+
65
+ def getChannelMode(self):
66
+ return self.channelMode
67
+
68
+ def setChannelMode(self, value):
69
+ if value is not None:
70
+ self.channelMode = value
71
+ return self
72
+
73
+ class TpConnectionIdent(Referrable):
74
+ def __init__(self, parent, short_name):
75
+ super().__init__(parent, short_name)
76
+
77
+ class TpConnection(ARObject, metaclass = ABCMeta):
78
+ def __init__(self):
79
+ if type(self) == TpConnection:
80
+ raise NotImplementedError("TpConnection is an abstract class.")
81
+
82
+ super().__init__()
83
+
84
+ self.ident = None # type: TpConnectionIdent
85
+
86
+ def getIdent(self):
87
+ return self.ident
88
+
89
+ def createTpConnectionIdent(self, short_name: str):
90
+ ident = TpConnectionIdent(self, short_name)
91
+ self.ident = ident
92
+ return ident
93
+
94
+ class CanTpConnection(TpConnection):
95
+ def __init__(self):
96
+ super().__init__()
97
+
98
+ self.addressingFormat = None # type: CanTpAddressingFormatType
99
+ self.cancellation = None # type: Boolean
100
+ self.canTpChannelRef = None # type: RefType
101
+ self.dataPduRef = None # type: RefType
102
+ self.flowControlPduRef = None # type: RefType
103
+ self.maxBlockSize = None # type: Integer
104
+ self.multicastRef = None # type: RefType
105
+ self.paddingActivation = None # type: Boolean
106
+ self.receiverRefs = [] # type: List[RefType]
107
+ self.taType = None # type: NetworkTargetAddressType
108
+ self.timeoutBr = None # type: TimeValue
109
+ self.timeoutBs = None # type: TimeValue
110
+ self.timeoutCr = None # type: TimeValue
111
+ self.timeoutCs = None # type: TimeValue
112
+ self.tpSduRef = None # type: RefType
113
+ self.transmitterRef = None # type: RefType
114
+
115
+ def getAddressingFormat(self):
116
+ return self.addressingFormat
117
+
118
+ def setAddressingFormat(self, value):
119
+ if value is not None:
120
+ self.addressingFormat = value
121
+ return self
122
+
123
+ def getCancellation(self):
124
+ return self.cancellation
125
+
126
+ def setCancellation(self, value):
127
+ if value is not None:
128
+ self.cancellation = value
129
+ return self
130
+
131
+ def getCanTpChannelRef(self):
132
+ return self.canTpChannelRef
133
+
134
+ def setCanTpChannelRef(self, value):
135
+ if value is not None:
136
+ self.canTpChannelRef = value
137
+ return self
138
+
139
+ def getDataPduRef(self):
140
+ return self.dataPduRef
141
+
142
+ def setDataPduRef(self, value):
143
+ if value is not None:
144
+ self.dataPduRef = value
145
+ return self
146
+
147
+ def getFlowControlPduRef(self):
148
+ return self.flowControlPduRef
149
+
150
+ def setFlowControlPduRef(self, value):
151
+ if value is not None:
152
+ self.flowControlPduRef = value
153
+ return self
154
+
155
+ def getMaxBlockSize(self):
156
+ return self.maxBlockSize
157
+
158
+ def setMaxBlockSize(self, value):
159
+ if value is not None:
160
+ self.maxBlockSize = value
161
+ return self
162
+
163
+ def getMulticastRef(self):
164
+ return self.multicastRef
165
+
166
+ def setMulticastRef(self, value):
167
+ if value is not None:
168
+ self.multicastRef = value
169
+ return self
170
+
171
+ def getPaddingActivation(self):
172
+ return self.paddingActivation
173
+
174
+ def setPaddingActivation(self, value):
175
+ if value is not None:
176
+ self.paddingActivation = value
177
+ return self
178
+
179
+ def getReceiverRefs(self):
180
+ return self.receiverRefs
181
+
182
+ def addReceiverRef(self, value):
183
+ if value is not None:
184
+ self.receiverRefs.append(value)
185
+ return self
186
+
187
+ def getTaType(self):
188
+ return self.taType
189
+
190
+ def setTaType(self, value):
191
+ if value is not None:
192
+ self.taType = value
193
+ return self
194
+
195
+ def getTimeoutBr(self):
196
+ return self.timeoutBr
197
+
198
+ def setTimeoutBr(self, value):
199
+ if value is not None:
200
+ self.timeoutBr = value
201
+ return self
202
+
203
+ def getTimeoutBs(self):
204
+ return self.timeoutBs
205
+
206
+ def setTimeoutBs(self, value):
207
+ if value is not None:
208
+ self.timeoutBs = value
209
+ return self
210
+
211
+ def getTimeoutCr(self):
212
+ return self.timeoutCr
213
+
214
+ def setTimeoutCr(self, value):
215
+ if value is not None:
216
+ self.timeoutCr = value
217
+ return self
218
+
219
+ def getTimeoutCs(self):
220
+ return self.timeoutCs
221
+
222
+ def setTimeoutCs(self, value):
223
+ if value is not None:
224
+ self.timeoutCs = value
225
+ return self
226
+
227
+ def getTpSduRef(self):
228
+ return self.tpSduRef
229
+
230
+ def setTpSduRef(self, value):
231
+ if value is not None:
232
+ self.tpSduRef = value
233
+ return self
234
+
235
+ def getTransmitterRef(self):
236
+ return self.transmitterRef
237
+
238
+ def setTransmitterRef(self, value):
239
+ if value is not None:
240
+ self.transmitterRef = value
241
+ return self
242
+
243
+ class CanTpEcu(ARObject):
244
+ def __init__(self):
245
+ super().__init__()
246
+
247
+ self.cycleTimeMainFunction = None # type: TimeValue
248
+ self.ecuInstanceRef = None # type: RefType
249
+
250
+ def getCycleTimeMainFunction(self):
251
+ return self.cycleTimeMainFunction
252
+
253
+ def setCycleTimeMainFunction(self, value):
254
+ if value is not None:
255
+ self.cycleTimeMainFunction = value
256
+ return self
257
+
258
+ def getEcuInstanceRef(self):
259
+ return self.ecuInstanceRef
260
+
261
+ def setEcuInstanceRef(self, value):
262
+ if value is not None:
263
+ self.ecuInstanceRef = value
264
+ return self
265
+
266
+ class CanTpNode(Identifiable):
267
+ def __init__(self, parent: ARObject, short_name: str):
268
+ super().__init__(parent, short_name)
269
+
270
+ self.connectorRef = None # type: RefType
271
+ self.maxFcWait = None # type: Integer
272
+ self.stMin = None # type: TimeValue
273
+ self.timeoutAr = None # type: TimeValue
274
+ self.timeoutAs = None # type: TimeValue
275
+ self.tpAddressRef = None # type: RefType
276
+
277
+ def getConnectorRef(self):
278
+ return self.connectorRef
279
+
280
+ def setConnectorRef(self, value):
281
+ if value is not None:
282
+ self.connectorRef = value
283
+ return self
284
+
285
+ def getMaxFcWait(self):
286
+ return self.maxFcWait
287
+
288
+ def setMaxFcWait(self, value):
289
+ if value is not None:
290
+ self.maxFcWait = value
291
+ return self
292
+
293
+ def getStMin(self):
294
+ return self.stMin
295
+
296
+ def setStMin(self, value):
297
+ if value is not None:
298
+ self.stMin = value
299
+ return self
300
+
301
+ def getTimeoutAr(self):
302
+ return self.timeoutAr
303
+
304
+ def setTimeoutAr(self, value):
305
+ if value is not None:
306
+ self.timeoutAr = value
307
+ return self
308
+
309
+ def getTimeoutAs(self):
310
+ return self.timeoutAs
311
+
312
+ def setTimeoutAs(self, value):
313
+ if value is not None:
314
+ self.timeoutAs = value
315
+ return self
316
+
317
+ def getTpAddressRef(self):
318
+ return self.tpAddressRef
319
+
320
+ def setTpAddressRef(self, value):
321
+ if value is not None:
322
+ self.tpAddressRef = value
323
+ return self
324
+
24
325
 
25
326
 
26
327
  class CanTpConfig(TpConfig):
27
328
  def __init__(self, parent: ARObject, short_name: str):
28
329
  super().__init__(parent, short_name)
29
330
 
331
+ self.tpAddresses = [] # type: List[CanTpAddress]
332
+ self.tpChannels = [] # type: List[CanTpChannel]
333
+ self.tpConnections =[] # type: List[CanTpConnection]
334
+ self.tpEcus = [] # type: List[CanTpEcu]
335
+ self.tpNodes = [] # type: List[CanTpNode]
336
+
337
+ def getTpAddresses(self):
338
+ return self.tpAddresses
339
+
340
+ def createCanTpAddress(self, short_name: str):
341
+ if (not self.IsElementExists(short_name)):
342
+ address = CanTpAddress(self, short_name)
343
+ self.addElement(address)
344
+ self.tpAddresses.append(address)
345
+ return self.getElement(short_name)
346
+
347
+ def getTpChannels(self):
348
+ return self.tpChannels
349
+
350
+ def createCanTpChannel(self, short_name: str):
351
+ if (not self.IsElementExists(short_name)):
352
+ address = CanTpChannel(self, short_name)
353
+ self.addElement(address)
354
+ self.tpChannels.append(address)
355
+ return self.getElement(short_name)
356
+
357
+ def getTpConnections(self):
358
+ return self.tpConnections
359
+
360
+ def addTpConnection(self, value):
361
+ if value is not None:
362
+ self.tpConnections.append(value)
363
+ return self
364
+
365
+ def getTpEcus(self):
366
+ return self.tpEcus
367
+
368
+ def addTpEcu(self, value):
369
+ if value is not None:
370
+ self.tpEcus.append(value)
371
+ return self
372
+
373
+ def getTpNodes(self):
374
+ return self.tpNodes
375
+
376
+ def createCanTpNode(self, short_name: str):
377
+ if (not self.IsElementExists(short_name)):
378
+ address = CanTpNode(self, short_name)
379
+ self.addElement(address)
380
+ self.tpNodes.append(address)
381
+ return self.getElement(short_name)
382
+
383
+ class DoIpLogicAddress(Identifiable):
384
+ def __init__(self, parent: ARObject, short_name: str):
385
+ super().__init__(parent, short_name)
386
+
387
+ self.address = None # type: Integer
388
+ self.doIpLogicAddressProps = None # type: AbstractDoIpLogicAddressProps
389
+
390
+ def getAddress(self):
391
+ return self.address
392
+
393
+ def setAddress(self, value):
394
+ if value is not None:
395
+ self.address = value
396
+ return self
397
+
398
+ def getDoIpLogicAddressProps(self):
399
+ return self.doIpLogicAddressProps
400
+
401
+ def setDoIpLogicAddressProps(self, value):
402
+ if value is not None:
403
+ self.doIpLogicAddressProps = value
404
+ return self
405
+
406
+ class DoIpTpConnection(TpConnection):
407
+ def __init__(self):
408
+ super().__init__()
409
+
410
+ self.doIpSourceAddressRef = None # type: RefType
411
+ self.doIpTargetAddressRef = None # type: RefType
412
+ self.tpSduRef = None # type: RefType
413
+
414
+ def getDoIpSourceAddressRef(self):
415
+ return self.doIpSourceAddressRef
416
+
417
+ def setDoIpSourceAddressRef(self, value):
418
+ if value is not None:
419
+ self.doIpSourceAddressRef = value
420
+ return self
421
+
422
+ def getDoIpTargetAddressRef(self):
423
+ return self.doIpTargetAddressRef
424
+
425
+ def setDoIpTargetAddressRef(self, value):
426
+ if value is not None:
427
+ self.doIpTargetAddressRef = value
428
+ return self
429
+
430
+ def getTpSduRef(self):
431
+ return self.tpSduRef
432
+
433
+ def setTpSduRef(self, value):
434
+ if value is not None:
435
+ self.tpSduRef = value
436
+ return self
437
+
438
+
30
439
  class DoIpTpConfig(TpConfig):
31
440
  def __init__(self, parent: ARObject, short_name: str):
32
441
  super().__init__(parent, short_name)
33
442
 
34
443
  self.doIpLogicAddresses = [] # type: List[DoIpLogicAddress]
35
- self.tpConnections = [] # typeL List[DoIpTpConnection]
444
+ self.tpConnections = [] # type: List[DoIpTpConnection]
36
445
 
37
446
  def getDoIpLogicAddresses(self):
38
447
  return self.doIpLogicAddresses
39
448
 
40
- def addDoIpLogicAddress(self, value):
41
- if value is not None:
42
- self.doIpLogicAddresses.append(value)
43
- return self
449
+ def createDoIpLogicAddress(self, short_name: str):
450
+ if (not self.IsElementExists(short_name)):
451
+ address = DoIpLogicAddress(self, short_name)
452
+ self.addElement(address)
453
+ self.doIpLogicAddresses.append(address)
454
+ return self.getElement(short_name)
44
455
 
45
456
  def getTpConnections(self):
46
457
  return self.tpConnections
@@ -49,7 +460,167 @@ class DoIpTpConfig(TpConfig):
49
460
  if value is not None:
50
461
  self.tpConnections.append(value)
51
462
  return self
463
+
464
+ class TpAddress(Identifiable):
465
+ def __init__(self, parent, short_name):
466
+ super().__init__(parent, short_name)
467
+
468
+ self.tpAddress = None # type: Integer
469
+
470
+ def getTpAddress(self):
471
+ return self.tpAddress
472
+
473
+ def setTpAddress(self, value):
474
+ if value is not None:
475
+ self.tpAddress = value
476
+ return self
477
+
478
+ class LinTpConnection(TpConnection):
479
+ def __init__(self):
480
+ super().__init__()
481
+
482
+ self.dataPduRef = None # type: RefType
483
+ self.flowControlRef = None # type: RefType
484
+ self.linTpNSduRef = None # type: RefType
485
+ self.multicastRef = None # type: RefType
486
+ self.receiverRefs = [] # type: List[RefType]
487
+ self.timeoutAs = None # type: TimeValue
488
+ self.timeoutCr = None # type: TimeValue
489
+ self.timeoutCs = None # type: TimeValue
490
+ self.transmitterRef = None # type: RefType
491
+
492
+ def getDataPduRef(self):
493
+ return self.dataPduRef
494
+
495
+ def setDataPduRef(self, value):
496
+ if value is not None:
497
+ self.dataPduRef = value
498
+ return self
499
+
500
+ def getFlowControlRef(self):
501
+ return self.flowControlRef
502
+
503
+ def setFlowControlRef(self, value):
504
+ if value is not None:
505
+ self.flowControlRef = value
506
+ return self
507
+
508
+ def getLinTpNSduRef(self):
509
+ return self.linTpNSduRef
510
+
511
+ def setLinTpNSduRef(self, value):
512
+ if value is not None:
513
+ self.linTpNSduRef = value
514
+ return self
515
+
516
+ def getMulticastRef(self):
517
+ return self.multicastRef
518
+
519
+ def setMulticastRef(self, value):
520
+ if value is not None:
521
+ self.multicastRef = value
522
+ return self
523
+
524
+ def getReceiverRefs(self):
525
+ return self.receiverRefs
526
+
527
+ def addReceiverRef(self, value):
528
+ if value is not None:
529
+ self.receiverRefs.append(value)
530
+ return self
531
+
532
+ def getTimeoutAs(self):
533
+ return self.timeoutAs
534
+
535
+ def setTimeoutAs(self, value):
536
+ if value is not None:
537
+ self.timeoutAs = value
538
+ return self
539
+
540
+ def getTimeoutCr(self):
541
+ return self.timeoutCr
542
+
543
+ def setTimeoutCr(self, value):
544
+ if value is not None:
545
+ self.timeoutCr = value
546
+ return self
547
+
548
+ def getTimeoutCs(self):
549
+ return self.timeoutCs
550
+
551
+ def setTimeoutCs(self, value):
552
+ if value is not None:
553
+ self.timeoutCs = value
554
+ return self
555
+
556
+ def getTransmitterRef(self):
557
+ return self.transmitterRef
558
+
559
+ def setTransmitterRef(self, value):
560
+ if value is not None:
561
+ self.transmitterRef = value
562
+ return self
563
+
564
+ class LinTpNode(Identifiable):
565
+ def __init__(self, parent: ARObject, short_name: str):
566
+ super().__init__(parent, short_name)
567
+
568
+ self.connectorRef = None # type: RefType
569
+ self.dropNotRequestedNad = None # type: Boolean
570
+ self.maxNumberOfRespPendingFrames = None # type: Integer
571
+ self.p2Max = None # type: TimeValue
572
+ self.p2Timing = None # type: TimeValue
573
+ self.tpAddressRef = None # type: RefType
574
+
575
+ def getConnectorRef(self):
576
+ return self.connectorRef
577
+
578
+ def setConnectorRef(self, value):
579
+ if value is not None:
580
+ self.connectorRef = value
581
+ return self
582
+
583
+ def getDropNotRequestedNad(self):
584
+ return self.dropNotRequestedNad
585
+
586
+ def setDropNotRequestedNad(self, value):
587
+ if value is not None:
588
+ self.dropNotRequestedNad = value
589
+ return self
590
+
591
+ def getMaxNumberOfRespPendingFrames(self):
592
+ return self.maxNumberOfRespPendingFrames
593
+
594
+ def setMaxNumberOfRespPendingFrames(self, value):
595
+ if value is not None:
596
+ self.maxNumberOfRespPendingFrames = value
597
+ return self
598
+
599
+ def getP2Max(self):
600
+ return self.p2Max
601
+
602
+ def setP2Max(self, value):
603
+ if value is not None:
604
+ self.p2Max = value
605
+ return self
606
+
607
+ def getP2Timing(self):
608
+ return self.p2Timing
609
+
610
+ def setP2Timing(self, value):
611
+ if value is not None:
612
+ self.p2Timing = value
613
+ return self
614
+
615
+ def getTpAddressRef(self):
616
+ return self.tpAddressRef
617
+
618
+ def setTpAddressRef(self, value):
619
+ if value is not None:
620
+ self.tpAddressRef = value
621
+ return self
52
622
 
623
+
53
624
  class LinTpConfig(TpConfig):
54
625
  def __init__(self, parent: ARObject, short_name: str):
55
626
  super().__init__(parent, short_name)
@@ -61,10 +632,12 @@ class LinTpConfig(TpConfig):
61
632
  def getTpAddresses(self):
62
633
  return self.tpAddresses
63
634
 
64
- def addTpAddress(self, value):
65
- if value is not None:
66
- self.tpAddresses.append(value)
67
- return self
635
+ def createTpAddress(self, short_name: str):
636
+ if (not self.IsElementExists(short_name)):
637
+ address = TpAddress(self, short_name)
638
+ self.addElement(address)
639
+ self.tpAddresses.append(address)
640
+ return self.getElement(short_name)
68
641
 
69
642
  def getTpConnections(self):
70
643
  return self.tpConnections
@@ -76,8 +649,10 @@ class LinTpConfig(TpConfig):
76
649
 
77
650
  def getTpNodes(self):
78
651
  return self.tpNodes
79
-
80
- def setTpNode(self, value):
81
- if value is not None:
82
- self.tpNodes.append(value)
83
- return self
652
+
653
+ def createLinTpNode(self, short_name: str):
654
+ if (not self.IsElementExists(short_name)):
655
+ address = LinTpNode(self, short_name)
656
+ self.addElement(address)
657
+ self.tpNodes.append(address)
658
+ return self.getElement(short_name)