armodel 1.7.7__py3-none-any.whl → 1.7.9__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 (73) 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 +84 -28
  4. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +410 -61
  5. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +80 -9
  6. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +141 -35
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +10 -8
  8. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +17 -6
  9. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +38 -3
  10. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +91 -18
  11. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +73 -0
  12. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +0 -0
  13. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +45 -0
  14. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +0 -0
  15. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +45 -2
  16. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +20 -19
  17. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +59 -0
  18. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +145 -0
  19. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +243 -156
  20. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +73 -0
  21. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +60 -32
  22. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +35 -14
  23. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +151 -1
  24. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +66 -42
  25. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +1 -0
  26. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +13 -6
  27. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +166 -50
  28. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +80 -0
  29. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +9 -1
  30. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +5 -4
  31. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +11 -1
  32. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +16 -2
  33. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +9 -1
  34. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +167 -5
  35. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{ECUResourceMapping.py → EcuResourceMapping.py} +4 -3
  36. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +31 -21
  37. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +5 -3
  38. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +18 -6
  39. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +76 -0
  40. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +654 -0
  41. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__init__.py +0 -0
  42. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +64 -31
  43. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +158 -40
  44. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +19 -6
  45. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +2 -0
  46. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +524 -0
  47. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +15 -13
  48. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +10 -1
  49. armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +163 -0
  50. armodel/models/M2/MSR/Documentation/BlockElements/__init__.py +0 -0
  51. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +5 -3
  52. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +22 -1
  53. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +94 -9
  54. armodel/models/__init__.py +7 -1
  55. armodel/parser/abstract_arxml_parser.py +39 -32
  56. armodel/parser/arxml_parser.py +1439 -551
  57. armodel/parser/file_parser.py +5 -3
  58. armodel/tests/test_armodel/models/test_ar_package.py +6 -11
  59. armodel/tests/test_armodel/models/test_port_interface.py +116 -117
  60. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +109 -109
  61. armodel/tests/test_armodel/parser/test_sw_components.py +301 -28
  62. armodel/tests/test_armodel/parser/test_system.py +2 -8
  63. armodel/transformer/__init__.py +0 -0
  64. armodel/transformer/abstract.py +6 -0
  65. armodel/transformer/admin_data.py +31 -0
  66. armodel/writer/abstract_arxml_writer.py +22 -29
  67. armodel/writer/arxml_writer.py +1500 -526
  68. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/METADATA +61 -1
  69. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/RECORD +73 -57
  70. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/LICENSE +0 -0
  71. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/WHEEL +0 -0
  72. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/entry_points.txt +0 -0
  73. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,524 @@
1
+ from abc import ABCMeta
2
+ from typing import List
3
+
4
+ from .....M2.MSR.AsamHdo.ComputationMethod import CompuScale
5
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, Boolean, Integer, NameToken, PositiveInteger
6
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, String
7
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
8
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Describable, Identifiable
9
+
10
+
11
+ class DataTransformationKindEnum(AREnum):
12
+ def __init__(self):
13
+ super().__init__([])
14
+
15
+
16
+ class DataTransformation(Identifiable):
17
+ def __init__(self, parent: ARObject, short_name: str):
18
+ super().__init__(parent, short_name)
19
+
20
+ self.dataTransformationKind = None # type: DataTransformationKindEnum
21
+ self.executeDespiteDataUnavailability = None # type: Boolean
22
+ self.transformerChainRefs = [] # type: List[RefType]
23
+
24
+ def getDataTransformationKind(self):
25
+ return self.dataTransformationKind
26
+
27
+ def setDataTransformationKind(self, value):
28
+ if value is not None:
29
+ self.dataTransformationKind = value
30
+ return self
31
+
32
+ def getExecuteDespiteDataUnavailability(self):
33
+ return self.executeDespiteDataUnavailability
34
+
35
+ def setExecuteDespiteDataUnavailability(self, value):
36
+ if value is not None:
37
+ self.executeDespiteDataUnavailability = value
38
+ return self
39
+
40
+ def getTransformerChainRefs(self):
41
+ return self.transformerChainRefs
42
+
43
+ def addTransformerChainRef(self, value):
44
+ if value is not None:
45
+ self.transformerChainRefs.append(value)
46
+ return self
47
+
48
+
49
+ class BufferProperties(ARObject):
50
+ def __init__(self):
51
+ super().__init__()
52
+
53
+ self.bufferComputation = None # type: CompuScale
54
+ self.headerLength = None # type: Integer
55
+ self.inPlace = None # type: Boolean
56
+
57
+ def getBufferComputation(self):
58
+ return self.bufferComputation
59
+
60
+ def setBufferComputation(self, value):
61
+ if value is not None:
62
+ self.bufferComputation = value
63
+ return self
64
+
65
+ def getHeaderLength(self):
66
+ return self.headerLength
67
+
68
+ def setHeaderLength(self, value):
69
+ if value is not None:
70
+ self.headerLength = value
71
+ return self
72
+
73
+ def getInPlace(self):
74
+ return self.inPlace
75
+
76
+ def setInPlace(self, value):
77
+ if value is not None:
78
+ self.inPlace = value
79
+ return self
80
+
81
+
82
+ class TransformationDescription(Describable, metaclass=ABCMeta):
83
+ def __init__(self):
84
+ if type(self) is TransformationDescription:
85
+ raise NotImplementedError("TransformationDescription is an abstract class.")
86
+ super().__init__()
87
+
88
+
89
+ class DataIdModeEnum(AREnum):
90
+
91
+ ALL_16_BIT = "all16Bit"
92
+ ALTERNATING_8_BIT = "alternating8Bit"
93
+ LOWER_12_BIT = "lower12Bit"
94
+ LOWER_8_BIT = "lower8Bit"
95
+
96
+ def __init__(self):
97
+ super().__init__([
98
+ DataIdModeEnum.ALL_16_BIT,
99
+ DataIdModeEnum.ALTERNATING_8_BIT,
100
+ DataIdModeEnum.LOWER_12_BIT,
101
+ DataIdModeEnum.LOWER_8_BIT
102
+ ])
103
+
104
+
105
+ class EndToEndProfileBehaviorEnum(AREnum):
106
+
107
+ PRE_R4_2 = "PRE_R4_2"
108
+ R4_2 = "R4_2"
109
+
110
+ def __init__(self):
111
+ super().__init__([
112
+ EndToEndProfileBehaviorEnum.PRE_R4_2,
113
+ EndToEndProfileBehaviorEnum.R4_2
114
+ ])
115
+
116
+
117
+ class EndToEndTransformationDescription(TransformationDescription):
118
+ def __init__(self):
119
+ super().__init__()
120
+
121
+ self.clearFromValidToInvalid = None # type: Boolean
122
+ self.counterOffset = None # type: PositiveInteger
123
+ self.crcOffset = None # type: PositiveInteger
124
+ self.dataIdMode = None # type: DataIdModeEnum
125
+ self.dataIdNibbleOffset = None # type: PositiveInteger
126
+ self.e2eProfileCompatibilityPropsRef = None # type: RefType
127
+ self.maxDeltaCounter = None # type: PositiveInteger
128
+ self.maxErrorStateInit = None # type: PositiveInteger
129
+ self.maxErrorStateInvalid = None # type: PositiveInteger
130
+ self.maxErrorStateValid = None # type: PositiveInteger
131
+ self.maxNoNewOrRepeatedData = None # type: PositiveInteger
132
+ self.minOkStateInit = None # type: PositiveInteger
133
+ self.minOkStateInvalid = None # type: PositiveInteger
134
+ self.minOkStateValid = None # type: PositiveInteger
135
+ self.offset = None # type: PositiveInteger
136
+ self.profileBehavior = None # type: EndToEndProfileBehaviorEnum
137
+ self.profileName = None # type: NameToken
138
+ self.syncCounterInit = None # type: PositiveInteger
139
+ self.upperHeaderBitsToShift = None # type: PositiveInteger
140
+ self.windowSizeInit = None # type: PositiveInteger
141
+ self.windowSizeInvalid = None # type: PositiveInteger
142
+ self.windowSizeValid = None # type: PositiveInteger
143
+
144
+ def getClearFromValidToInvalid(self):
145
+ return self.clearFromValidToInvalid
146
+
147
+ def setClearFromValidToInvalid(self, value):
148
+ if value is not None:
149
+ self.clearFromValidToInvalid = value
150
+ return self
151
+
152
+ def getCounterOffset(self):
153
+ return self.counterOffset
154
+
155
+ def setCounterOffset(self, value):
156
+ if value is not None:
157
+ self.counterOffset = value
158
+ return self
159
+
160
+ def getCrcOffset(self):
161
+ return self.crcOffset
162
+
163
+ def setCrcOffset(self, value):
164
+ if value is not None:
165
+ self.crcOffset = value
166
+ return self
167
+
168
+ def getDataIdMode(self):
169
+ return self.dataIdMode
170
+
171
+ def setDataIdMode(self, value):
172
+ if value is not None:
173
+ self.dataIdMode = value
174
+ return self
175
+
176
+ def getDataIdNibbleOffset(self):
177
+ return self.dataIdNibbleOffset
178
+
179
+ def setDataIdNibbleOffset(self, value):
180
+ if value is not None:
181
+ self.dataIdNibbleOffset = value
182
+ return self
183
+
184
+ def getE2eProfileCompatibilityPropsRef(self):
185
+ return self.e2eProfileCompatibilityPropsRef
186
+
187
+ def setE2eProfileCompatibilityPropsRef(self, value):
188
+ if value is not None:
189
+ self.e2eProfileCompatibilityPropsRef = value
190
+ return self
191
+
192
+ def getMaxDeltaCounter(self):
193
+ return self.maxDeltaCounter
194
+
195
+ def setMaxDeltaCounter(self, value):
196
+ if value is not None:
197
+ self.maxDeltaCounter = value
198
+ return self
199
+
200
+ def getMaxErrorStateInit(self):
201
+ return self.maxErrorStateInit
202
+
203
+ def setMaxErrorStateInit(self, value):
204
+ if value is not None:
205
+ self.maxErrorStateInit = value
206
+ return self
207
+
208
+ def getMaxErrorStateInvalid(self):
209
+ return self.maxErrorStateInvalid
210
+
211
+ def setMaxErrorStateInvalid(self, value):
212
+ if value is not None:
213
+ self.maxErrorStateInvalid = value
214
+ return self
215
+
216
+ def getMaxErrorStateValid(self):
217
+ return self.maxErrorStateValid
218
+
219
+ def setMaxErrorStateValid(self, value):
220
+ if value is not None:
221
+ self.maxErrorStateValid = value
222
+ return self
223
+
224
+ def getMaxNoNewOrRepeatedData(self):
225
+ return self.maxNoNewOrRepeatedData
226
+
227
+ def setMaxNoNewOrRepeatedData(self, value):
228
+ if value is not None:
229
+ self.maxNoNewOrRepeatedData = value
230
+ return self
231
+
232
+ def getMinOkStateInit(self):
233
+ return self.minOkStateInit
234
+
235
+ def setMinOkStateInit(self, value):
236
+ if value is not None:
237
+ self.minOkStateInit = value
238
+ return self
239
+
240
+ def getMinOkStateInvalid(self):
241
+ return self.minOkStateInvalid
242
+
243
+ def setMinOkStateInvalid(self, value):
244
+ if value is not None:
245
+ self.minOkStateInvalid = value
246
+ return self
247
+
248
+ def getMinOkStateValid(self):
249
+ return self.minOkStateValid
250
+
251
+ def setMinOkStateValid(self, value):
252
+ if value is not None:
253
+ self.minOkStateValid = value
254
+ return self
255
+
256
+ def getOffset(self):
257
+ return self.offset
258
+
259
+ def setOffset(self, value):
260
+ if value is not None:
261
+ self.offset = value
262
+ return self
263
+
264
+ def getProfileBehavior(self):
265
+ return self.profileBehavior
266
+
267
+ def setProfileBehavior(self, value):
268
+ if value is not None:
269
+ self.profileBehavior = value
270
+ return self
271
+
272
+ def getProfileName(self):
273
+ return self.profileName
274
+
275
+ def setProfileName(self, value):
276
+ if value is not None:
277
+ self.profileName = value
278
+ return self
279
+
280
+ def getSyncCounterInit(self):
281
+ return self.syncCounterInit
282
+
283
+ def setSyncCounterInit(self, value):
284
+ if value is not None:
285
+ self.syncCounterInit = value
286
+ return self
287
+
288
+ def getUpperHeaderBitsToShift(self):
289
+ return self.upperHeaderBitsToShift
290
+
291
+ def setUpperHeaderBitsToShift(self, value):
292
+ if value is not None:
293
+ self.upperHeaderBitsToShift = value
294
+ return self
295
+
296
+ def getWindowSizeInit(self):
297
+ return self.windowSizeInit
298
+
299
+ def setWindowSizeInit(self, value):
300
+ if value is not None:
301
+ self.windowSizeInit = value
302
+ return self
303
+
304
+ def getWindowSizeInvalid(self):
305
+ return self.windowSizeInvalid
306
+
307
+ def setWindowSizeInvalid(self, value):
308
+ if value is not None:
309
+ self.windowSizeInvalid = value
310
+ return self
311
+
312
+ def getWindowSizeValid(self):
313
+ return self.windowSizeValid
314
+
315
+ def setWindowSizeValid(self, value):
316
+ if value is not None:
317
+ self.windowSizeValid = value
318
+ return self
319
+
320
+
321
+ class TransformerClassEnum(AREnum):
322
+
323
+ CUSTOM = "custom"
324
+ SAFETY = "safety"
325
+ SECURITY = "security"
326
+ SERIALIZER = "serializer"
327
+
328
+ def __init__(self):
329
+ super().__init__([
330
+ TransformerClassEnum.CUSTOM,
331
+ TransformerClassEnum.SAFETY,
332
+ TransformerClassEnum.SECURITY,
333
+ TransformerClassEnum.SERIALIZER
334
+ ])
335
+
336
+
337
+ class TransformationTechnology(Identifiable):
338
+ def __init__(self, parent: ARObject, short_name: str):
339
+ super().__init__(parent, short_name)
340
+
341
+ self.bufferProperties = None # type: BufferProperties
342
+ self.hasInternalState = None # type: Boolean
343
+ self.needsOriginalData = None # type: Boolean
344
+ self.protocol = None # type: String
345
+ self.transformationDescription = None # type: TransformationDescription
346
+ self.transformerClass = None # type: TransformerClassEnum
347
+ self.version = None # type: String
348
+
349
+ def getBufferProperties(self):
350
+ return self.bufferProperties
351
+
352
+ def setBufferProperties(self, value):
353
+ if value is not None:
354
+ self.bufferProperties = value
355
+ return self
356
+
357
+ def getHasInternalState(self):
358
+ return self.hasInternalState
359
+
360
+ def setHasInternalState(self, value):
361
+ if value is not None:
362
+ self.hasInternalState = value
363
+ return self
364
+
365
+ def getNeedsOriginalData(self):
366
+ return self.needsOriginalData
367
+
368
+ def setNeedsOriginalData(self, value):
369
+ if value is not None:
370
+ self.needsOriginalData = value
371
+ return self
372
+
373
+ def getProtocol(self):
374
+ return self.protocol
375
+
376
+ def setProtocol(self, value):
377
+ if value is not None:
378
+ self.protocol = value
379
+ return self
380
+
381
+ def getTransformationDescription(self):
382
+ return self.transformationDescription
383
+
384
+ def setTransformationDescription(self, value):
385
+ if value is not None:
386
+ self.transformationDescription = value
387
+ return self
388
+
389
+ def getTransformerClass(self):
390
+ return self.transformerClass
391
+
392
+ def setTransformerClass(self, value):
393
+ if value is not None:
394
+ self.transformerClass = value
395
+ return self
396
+
397
+ def getVersion(self):
398
+ return self.version
399
+
400
+ def setVersion(self, value):
401
+ if value is not None:
402
+ self.version = value
403
+ return self
404
+
405
+
406
+ class DataTransformationSet(ARElement):
407
+ def __init__(self, parent: ARObject, short_name: str):
408
+ super().__init__(parent, short_name)
409
+
410
+ self.dataTransformations = [] # type: List[DataTransformation]
411
+ self.transformationTechnologies = [] # type: List[TransformationTechnology]
412
+
413
+ def getDataTransformations(self):
414
+ return self.dataTransformations
415
+
416
+ def createDataTransformation(self, short_name: str) -> DataTransformation:
417
+ if (not self.IsElementExists(short_name)):
418
+ dfs = DataTransformation(self, short_name)
419
+ self.addElement(dfs)
420
+ self.dataTransformations.append(dfs)
421
+ return self.getElement(short_name)
422
+
423
+ def getTransformationTechnologies(self):
424
+ return self.transformationTechnologies
425
+
426
+ def createTransformationTechnology(self, short_name: str) -> TransformationTechnology:
427
+ if (not self.IsElementExists(short_name)):
428
+ tech = TransformationTechnology(self, short_name)
429
+ self.addElement(tech)
430
+ self.transformationTechnologies.append(tech)
431
+ return self.getElement(short_name)
432
+
433
+
434
+ class TransformationISignalProps(Describable, metaclass=ABCMeta):
435
+ def __init__(self):
436
+ super().__init__()
437
+
438
+ self.csErrorReaction = None # type: CSTransformerErrorReactionEnum
439
+ self.dataPrototypeTransformationProps = [] # type: List[DataPrototypeTransformationProps]
440
+ self.ident = None # type: TransformationISignalPropsIdent
441
+ self.transformerRef = None # type: RefType
442
+
443
+ def getCsErrorReaction(self):
444
+ return self.csErrorReaction
445
+
446
+ def setCsErrorReaction(self, value):
447
+ if value is not None:
448
+ self.csErrorReaction = value
449
+ return self
450
+
451
+ def getDataPrototypeTransformationProps(self):
452
+ return self.dataPrototypeTransformationProps
453
+
454
+ def setDataPrototypeTransformationProps(self, value):
455
+ if value is not None:
456
+ self.dataPrototypeTransformationProps = value
457
+ return self
458
+
459
+ def getIdent(self):
460
+ return self.ident
461
+
462
+ def setIdent(self, value):
463
+ if value is not None:
464
+ self.ident = value
465
+ return self
466
+
467
+ def getTransformerRef(self):
468
+ return self.transformerRef
469
+
470
+ def setTransformerRef(self, value):
471
+ if value is not None:
472
+ self.transformerRef = value
473
+ return self
474
+
475
+
476
+ class EndToEndTransformationISignalProps(TransformationISignalProps):
477
+ def __init__(self):
478
+ super().__init__()
479
+
480
+ self.dataIds = [] # type: List[PositiveInteger]
481
+ self.dataLength = None # type: PositiveInteger
482
+ self.maxDataLength = None # type: PositiveInteger
483
+ self.minDataLength = None # type: PositiveInteger
484
+ self.sourceId = None # type: PositiveInteger
485
+
486
+ def getDataIds(self):
487
+ return self.dataIds
488
+
489
+ def addDataId(self, value):
490
+ if value is not None:
491
+ self.dataIds.append(value)
492
+ return self
493
+
494
+ def getDataLength(self):
495
+ return self.dataLength
496
+
497
+ def setDataLength(self, value):
498
+ if value is not None:
499
+ self.dataLength = value
500
+ return self
501
+
502
+ def getMaxDataLength(self):
503
+ return self.maxDataLength
504
+
505
+ def setMaxDataLength(self, value):
506
+ if value is not None:
507
+ self.maxDataLength = value
508
+ return self
509
+
510
+ def getMinDataLength(self):
511
+ return self.minDataLength
512
+
513
+ def setMinDataLength(self, value):
514
+ if value is not None:
515
+ self.minDataLength = value
516
+ return self
517
+
518
+ def getSourceId(self):
519
+ return self.sourceId
520
+
521
+ def setSourceId(self, value):
522
+ if value is not None:
523
+ self.sourceId = value
524
+ return self
@@ -1,12 +1,12 @@
1
1
  from typing import List
2
2
 
3
-
4
- from ....M2.AUTOSARTemplates.SystemTemplate.ECUResourceMapping import ECUMapping
3
+ from ....M2.AUTOSARTemplates.SystemTemplate.EcuResourceMapping import ECUMapping
5
4
  from ....M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef
6
5
  from ....M2.AUTOSARTemplates.SystemTemplate.SWmapping import SwcToImplMapping
7
6
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
8
7
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable
9
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger, RefType, TRefType
8
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger, RefType, RevisionLabelString, TRefType
9
+
10
10
 
11
11
  class SwcToEcuMapping(Identifiable):
12
12
  def __init__(self, parent: ARObject, short_name: str):
@@ -45,6 +45,7 @@ class SwcToEcuMapping(Identifiable):
45
45
  self.processingUnitRef = value
46
46
  return self
47
47
 
48
+
48
49
  class SystemMapping(Identifiable):
49
50
  def __init__(self, parent: ARObject, short_name: str):
50
51
  super().__init__(parent, short_name)
@@ -229,6 +230,9 @@ class SystemMapping(Identifiable):
229
230
 
230
231
  def getSwMappings(self):
231
232
  return self.swMappings
233
+
234
+ def getSwcToEcuMappings(self) -> List[SwcToEcuMapping]:
235
+ return list(sorted(filter(lambda a: isinstance(a, SwcToEcuMapping), self.elements.values()), key=lambda o: o.short_name))
232
236
 
233
237
  def createSwcToEcuMapping(self, short_name: str) -> SwcToEcuMapping:
234
238
  if short_name not in self.elements:
@@ -251,6 +255,7 @@ class SystemMapping(Identifiable):
251
255
  self.systemSignalToComResourceMappings.append(value)
252
256
  return self
253
257
 
258
+
254
259
  class RootSwCompositionPrototype(Identifiable):
255
260
  def __init__(self, parent: ARObject, short_name: str):
256
261
  super().__init__(parent, short_name)
@@ -280,6 +285,7 @@ class RootSwCompositionPrototype(Identifiable):
280
285
  self.softwareCompositionTRef = value
281
286
  return self
282
287
 
288
+
283
289
  class System(ARElement):
284
290
  def __init__(self, parent: ARObject, short_name: str):
285
291
  super().__init__(parent, short_name)
@@ -320,7 +326,7 @@ class System(ARElement):
320
326
  return self
321
327
 
322
328
  def getFibexElementRefs(self):
323
- #return sorted(self.fibexElements, key= lambda i: i.getShortValue())
329
+ # return sorted(self.fibexElements, key= lambda i: i.getShortValue())
324
330
  return self.fibexElements
325
331
 
326
332
  def addFibexElementRef(self, value):
@@ -343,14 +349,17 @@ class System(ARElement):
343
349
  return self
344
350
 
345
351
  def getMappings(self) -> List[SystemMapping]:
346
- return list(sorted(filter(lambda a: isinstance(a, SystemMapping), self.elements.values()), key= lambda o:o.short_name))
352
+ return list(sorted(filter(lambda a: isinstance(a, SystemMapping), self.elements.values()), key=lambda o: o.short_name))
353
+
354
+ def getSystemMappings(self) -> List[SystemMapping]:
355
+ return list(sorted(filter(lambda a: isinstance(a, SystemMapping), self.elements.values()), key=lambda o: o.short_name))
347
356
 
348
357
  def createSystemMapping(self, short_name) -> SystemMapping:
349
358
  if (short_name not in self.elements):
350
359
  mapping = SystemMapping(self, short_name)
351
360
  self.elements[short_name] = mapping
352
361
  return self.elements[short_name]
353
-
362
+
354
363
  def getPncVectorLength(self):
355
364
  return self.pncVectorLength
356
365
 
@@ -395,10 +404,3 @@ class System(ARElement):
395
404
  def setSystemVersion(self, value):
396
405
  self.systemVersion = value
397
406
  return self
398
-
399
-
400
-
401
-
402
-
403
-
404
-
@@ -2,9 +2,10 @@ from typing import List
2
2
  from ....M2.MSR.Documentation.Annotation import Annotation
3
3
  from ....M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxisSet
4
4
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, RefType, ARLiteral
5
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, ARFloat, RefType, ARLiteral
6
6
  from ....M2.AUTOSARTemplates.CommonStructure import ValueSpecification
7
7
 
8
+
8
9
  class SwDataDefPropsConditional(ARObject):
9
10
  '''
10
11
  Patch for the time-stamp
@@ -12,6 +13,14 @@ class SwDataDefPropsConditional(ARObject):
12
13
  def __init__(self):
13
14
  super().__init__()
14
15
 
16
+
17
+ class SwImplPolicyEnum(AREnum):
18
+ def __init__(self, enum_values):
19
+ super().__init__([
20
+
21
+ ])
22
+
23
+
15
24
  class SwDataDefProps(ARObject):
16
25
  def __init__(self):
17
26
  super().__init__()