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
@@ -4,7 +4,10 @@ from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRef
4
4
  from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AutosarVariableRef import AutosarVariableRef
5
5
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
6
6
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
7
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Identifier, RefType, AREnum, Boolean, ARLiteral, DiagRequirementIdString, Integer, PositiveInteger, RefType, String, TimeValue
7
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Identifier, RefType, AREnum, Boolean, ARLiteral
8
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import DiagRequirementIdString, Integer, PositiveInteger
9
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import String, TimeValue
10
+
8
11
 
9
12
  class RoleBasedDataAssignment(ARObject):
10
13
  def __init__(self):
@@ -44,14 +47,14 @@ class RoleBasedDataAssignment(ARObject):
44
47
  return self
45
48
 
46
49
 
47
-
48
- class ServiceNeeds(Identifiable, metaclass = ABCMeta):
50
+ class ServiceNeeds(Identifiable, metaclass=ABCMeta):
49
51
  def __init__(self, parent: ARObject, short_name: str):
50
- if type(self) == ServiceNeeds:
52
+ if type(self) is ServiceNeeds:
51
53
  raise NotImplementedError("ServiceNeeds is an abstract class.")
52
54
 
53
55
  super().__init__(parent, short_name)
54
56
 
57
+
55
58
  class RamBlockStatusControlEnum(AREnum):
56
59
  API = "api"
57
60
  NV_RAM_MANAGER = "nvRamManager"
@@ -62,6 +65,7 @@ class RamBlockStatusControlEnum(AREnum):
62
65
  RamBlockStatusControlEnum.NV_RAM_MANAGER,
63
66
  ))
64
67
 
68
+
65
69
  class NvBlockNeedsReliabilityEnum(AREnum):
66
70
  ERROR_CORRECTION = "errorCorrection"
67
71
  ERROR_DETECTION = "errorDetection"
@@ -87,6 +91,7 @@ class NvBlockNeedsWritingPriorityEnum(AREnum):
87
91
  NvBlockNeedsWritingPriorityEnum.MEDIUM,
88
92
  ))
89
93
 
94
+
90
95
  class NvBlockNeeds(ServiceNeeds):
91
96
  def __init__(self, parent: ARObject, short_name: str):
92
97
  super().__init__(parent, short_name)
@@ -96,11 +101,9 @@ class NvBlockNeeds(ServiceNeeds):
96
101
  self.cyclicWritingPeriod = None # type: TimeValue
97
102
  self.nDataSets = None # type: PositiveInteger
98
103
  self.nRomBlocks = None # type: PositiveInteger
99
- # type: RamBlockStatusControlEnum
100
- self.ramBlockStatusControl = None
104
+ self.ramBlockStatusControl = None # type: RamBlockStatusControlEnum
101
105
  self.readonly = None # type: Boolean
102
- # type: NvBlockNeedsReliabilityEnum
103
- self.reliability = None
106
+ self.reliability = None # type: NvBlockNeedsReliabilityEnum
104
107
  self.resistantToChangedSw = None # type: Boolean
105
108
  self.restoreAtStart = None # type: Boolean
106
109
  self.selectBlockForFirstInitAll = None # type: Boolean
@@ -114,8 +117,7 @@ class NvBlockNeeds(ServiceNeeds):
114
117
  self.writeOnlyOnce = None # type: Boolean
115
118
  self.writeVerification = None # type: Boolean
116
119
  self.writingFrequency = None # type: PositiveInteger
117
- # type: NvBlockNeedsWritingPriorityEnum
118
- self.writingPriority = None
120
+ self.writingPriority = None # type: NvBlockNeedsWritingPriorityEnum
119
121
 
120
122
  def getCalcRamBlockCrc(self):
121
123
  return self.calcRamBlockCrc
@@ -293,6 +295,12 @@ class RoleBasedDataTypeAssignment(ARObject):
293
295
  self.usedImplementationDataTypeRef = value
294
296
  return self
295
297
 
298
+
299
+ class ServiceDiagnosticRelevanceEnum(AREnum):
300
+ def __init__(self):
301
+ super().__init__([])
302
+
303
+
296
304
  class ServiceDependency(Identifiable):
297
305
  def __init__(self, parent: ARObject, short_name: str):
298
306
  super().__init__(parent, short_name)
@@ -322,6 +330,7 @@ class ServiceDependency(Identifiable):
322
330
  self.symbolicNameProps = value
323
331
  return self
324
332
 
333
+
325
334
  class DiagnosticAudienceEnum(AREnum):
326
335
  AFTER_MARKET = "aftermarket"
327
336
  AFTER_SALES = "afterSales"
@@ -338,6 +347,7 @@ class DiagnosticAudienceEnum(AREnum):
338
347
  DiagnosticAudienceEnum.SUPPLIER,
339
348
  ))
340
349
 
350
+
341
351
  class DiagnosticServiceRequestCallbackTypeEnum(AREnum):
342
352
  REQUEST_CALLBACK_TYPE_MANUFACTURER = "requestCallbackTypeManufacturer"
343
353
  REQUEST_CALLBACK_TYPE_SUPPLIER = "requestCallbackTypeSupplier"
@@ -348,9 +358,10 @@ class DiagnosticServiceRequestCallbackTypeEnum(AREnum):
348
358
  DiagnosticServiceRequestCallbackTypeEnum.REQUEST_CALLBACK_TYPE_SUPPLIER,
349
359
  ))
350
360
 
351
- class DiagnosticCapabilityElement(ServiceNeeds, metaclass = ABCMeta):
361
+
362
+ class DiagnosticCapabilityElement(ServiceNeeds, metaclass=ABCMeta):
352
363
  def __init__(self, parent: ARObject, short_name: str):
353
- if type(self) == DiagnosticCapabilityElement:
364
+ if type(self) is DiagnosticCapabilityElement:
354
365
  raise NotImplementedError("DiagnosticCapabilityElement is an abstract class.")
355
366
 
356
367
  super().__init__(parent, short_name)
@@ -380,6 +391,7 @@ class DiagnosticCapabilityElement(ServiceNeeds, metaclass = ABCMeta):
380
391
  self.securityAccessLevel = value
381
392
  return self
382
393
 
394
+
383
395
  class DiagnosticRoutineTypeEnum(AREnum):
384
396
  ASYNCHRONOUS = "asynchronous"
385
397
  SYNCHRONOUS = "synchronous"
@@ -390,6 +402,7 @@ class DiagnosticRoutineTypeEnum(AREnum):
390
402
  DiagnosticRoutineTypeEnum.SYNCHRONOUS,
391
403
  ))
392
404
 
405
+
393
406
  class DiagnosticCommunicationManagerNeeds(DiagnosticCapabilityElement):
394
407
  def __init__(self, parent: ARObject, short_name: str):
395
408
  super().__init__(parent, short_name)
@@ -403,6 +416,7 @@ class DiagnosticCommunicationManagerNeeds(DiagnosticCapabilityElement):
403
416
  self.serviceRequestCallbackType = value
404
417
  return self
405
418
 
419
+
406
420
  class DiagnosticRoutineNeeds(DiagnosticCapabilityElement):
407
421
  def __init__(self, parent: ARObject, short_name: str):
408
422
  super().__init__(parent, short_name)
@@ -437,6 +451,7 @@ class DiagnosticValueAccessEnum(AREnum):
437
451
  DiagnosticValueAccessEnum.WRITE_ONLY,
438
452
  ))
439
453
 
454
+
440
455
  class DiagnosticProcessingStyleEnum(AREnum):
441
456
  PROCESSING_STYLE_ASYNCHRONOUS = "processingStyleAsynchronous"
442
457
  PROCESSING_STYLE_ASYNCHRONOUS_WITH_ERROR = "processingStyleAsynchronousWithError"
@@ -447,7 +462,8 @@ class DiagnosticProcessingStyleEnum(AREnum):
447
462
  DiagnosticProcessingStyleEnum.PROCESSING_STYLE_ASYNCHRONOUS,
448
463
  DiagnosticProcessingStyleEnum.PROCESSING_STYLE_ASYNCHRONOUS_WITH_ERROR,
449
464
  DiagnosticProcessingStyleEnum.PROCESSING_STYLE_SYNCHRONOUS,
450
- ))
465
+ ))
466
+
451
467
 
452
468
  class DiagnosticValueNeeds(DiagnosticCapabilityElement):
453
469
  def __init__(self, parent: ARObject, short_name: str):
@@ -493,14 +509,16 @@ class DiagnosticValueNeeds(DiagnosticCapabilityElement):
493
509
  def setProcessingStyle(self, value):
494
510
  self.processingStyle = value
495
511
  return self
496
-
497
- class DiagEventDebounceAlgorithm(Identifiable, metaclass = ABCMeta):
512
+
513
+
514
+ class DiagEventDebounceAlgorithm(Identifiable, metaclass=ABCMeta):
498
515
  def __init__(self, parent: ARObject, short_name: str):
499
- if type(self) == ServiceNeeds:
516
+ if type(self) is DiagEventDebounceAlgorithm:
500
517
  raise NotImplementedError("DiagEventDebounceAlgorithm is an abstract class.")
501
518
 
502
519
  super().__init__(parent, short_name)
503
520
 
521
+
504
522
  class DiagEventDebounceCounterBased(DiagEventDebounceAlgorithm):
505
523
  def __init__(self, parent: ARObject, short_name: str):
506
524
  super().__init__(parent, short_name)
@@ -583,6 +601,7 @@ class DiagEventDebounceMonitorInternal(DiagEventDebounceAlgorithm):
583
601
  def __init__(self, parent: ARObject, short_name: str):
584
602
  super().__init__(parent, short_name)
585
603
 
604
+
586
605
  class DiagEventDebounceTimeBased(DiagEventDebounceAlgorithm):
587
606
  def __init__(self, parent: ARObject, short_name: str):
588
607
  super().__init__(parent, short_name)
@@ -612,27 +631,79 @@ class DiagEventDebounceTimeBased(DiagEventDebounceAlgorithm):
612
631
  self.timePassedThreshold = value
613
632
  return self
614
633
 
634
+
635
+ class DtcKindEnum(AREnum):
636
+ def __init__(self):
637
+ super().__init__([])
638
+
639
+
615
640
  class DiagnosticEventInfoNeeds(DiagnosticCapabilityElement):
616
641
  def __init__(self, parent: ARObject, short_name: str):
617
642
  super().__init__(parent, short_name)
618
643
 
644
+ self.dtcKind = None # type: DtcKindEnum
619
645
  self.obdDtcNumber = None # type: PositiveInteger
620
646
  self.udsDtcNumber = None # type: PositiveInteger
621
647
 
648
+ def getDtcKind(self):
649
+ return self.dtcKind
650
+
651
+ def setDtcKind(self, value):
652
+ if value is not None:
653
+ self.dtcKind = value
654
+ return self
655
+
622
656
  def getObdDtcNumber(self):
623
657
  return self.obdDtcNumber
624
658
 
625
659
  def setObdDtcNumber(self, value):
626
- self.obdDtcNumber = value
660
+ if value is not None:
661
+ self.obdDtcNumber = value
627
662
  return self
628
663
 
629
664
  def getUdsDtcNumber(self):
630
665
  return self.udsDtcNumber
631
666
 
632
667
  def setUdsDtcNumber(self, value):
633
- self.udsDtcNumber = value
668
+ if value is not None:
669
+ self.udsDtcNumber = value
670
+ return self
671
+
672
+
673
+ class DiagnosticClearDtcNotificationEnum(AREnum):
674
+ def __init__(self):
675
+ super().__init__([])
676
+
677
+
678
+ class DtcFormatTypeEnum(AREnum):
679
+ def __init__(self):
680
+ super().__init__([])
681
+
682
+
683
+ class DtcStatusChangeNotificationNeeds(DiagnosticCapabilityElement):
684
+ def __init__(self, parent, short_name):
685
+ super().__init__(parent, short_name)
686
+
687
+ self.dtcFormatType = None # type: DtcFormatTypeEnum # AUTOSAR 4.3.1
688
+ self.notificationTime = None # type: DiagnosticClearDtcNotificationEnum
689
+
690
+ def getDtcFormatType(self):
691
+ return self.dtcFormatType
692
+
693
+ def setDtcFormatType(self, value):
694
+ if value is not None:
695
+ self.dtcFormatType = value
634
696
  return self
635
697
 
698
+ def getNotificationTime(self):
699
+ return self.notificationTime
700
+
701
+ def setNotificationTime(self, value):
702
+ if value is not None:
703
+ self.notificationTime = value
704
+ return self
705
+
706
+
636
707
  class DiagnosticEventNeeds(DiagnosticCapabilityElement):
637
708
  def __init__(self, parent: ARObject, short_name: str):
638
709
  super().__init__(parent, short_name)
@@ -719,6 +790,7 @@ class DiagnosticEventNeeds(DiagnosticCapabilityElement):
719
790
  self.udsDtcNumber = value
720
791
  return self
721
792
 
793
+
722
794
  class CryptoServiceNeeds(ServiceNeeds):
723
795
  def __init__(self, parent: ARObject, short_name: str):
724
796
  super().__init__(parent, short_name)
@@ -756,6 +828,7 @@ class CryptoServiceNeeds(ServiceNeeds):
756
828
  self.maximumKeyLength = value
757
829
  return self
758
830
 
831
+
759
832
  class EcuStateMgrUserNeeds(ServiceNeeds):
760
833
  def __init__(self, parent: ARObject, short_name: str):
761
834
  super().__init__(parent, short_name)
@@ -0,0 +1,73 @@
1
+ from typing import List
2
+
3
+ from ......M2.AUTOSARTemplates.CommonStructure import ValueSpecification
4
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
6
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
7
+ from ......M2.AUTOSARTemplates.SWComponentTemplate.Communication import PPortComSpec
8
+
9
+
10
+ class PortPrototypeBlueprintInitValue(ARObject):
11
+ def __init__(self):
12
+ super().__init__()
13
+
14
+ self.dataPrototypeRef = None # type: RefType
15
+ self.value = None # type: ValueSpecification
16
+
17
+ def getDataPrototypeRef(self):
18
+ return self.dataPrototypeRef
19
+
20
+ def setDataPrototypeRef(self, value):
21
+ if value is not None:
22
+ self.dataPrototypeRef = value
23
+ return self
24
+
25
+ def getValue(self):
26
+ return self.value
27
+
28
+ def setValue(self, value):
29
+ if value is not None:
30
+ self.value = value
31
+ return self
32
+
33
+
34
+ class PortPrototypeBlueprint(ARElement):
35
+ def __init__(self, parent, short_name):
36
+ super().__init__(parent, short_name)
37
+
38
+ self.initValues = [] # type: List[PortPrototypeBlueprintInitValue]
39
+ self.interfaceRef = None # type: RefType
40
+ self.providedComSpecs = [] # type: List[PPortComSpec]
41
+ self.requiredComSpecs = [] # type: List[RPortComSpec]
42
+
43
+ def getInitValues(self):
44
+ return self.initValues
45
+
46
+ def setInitValues(self, value):
47
+ if value is not None:
48
+ self.initValues = value
49
+ return self
50
+
51
+ def getInterfaceRef(self):
52
+ return self.interfaceRef
53
+
54
+ def setInterfaceRef(self, value):
55
+ if value is not None:
56
+ self.interfaceRef = value
57
+ return self
58
+
59
+ def getProvidedComSpecs(self):
60
+ return self.providedComSpecs
61
+
62
+ def setProvidedComSpecs(self, value):
63
+ if value is not None:
64
+ self.providedComSpecs = value
65
+ return self
66
+
67
+ def getRequiredComSpecs(self):
68
+ return self.requiredComSpecs
69
+
70
+ def setRequiredComSpecs(self, value):
71
+ if value is not None:
72
+ self.requiredComSpecs = value
73
+ return self
@@ -0,0 +1,45 @@
1
+ from typing import List
2
+
3
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import NameToken
4
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable
5
+
6
+
7
+ class Keyword(Identifiable):
8
+ def __init__(self, parent, short_name):
9
+ super().__init__(parent, short_name)
10
+
11
+ self.abbrName = None # type: NameToken
12
+ self.classifications = [] # type: List[NameToken]
13
+
14
+ def getAbbrName(self):
15
+ return self.abbrName
16
+
17
+ def setAbbrName(self, value):
18
+ if value is not None:
19
+ self.abbrName = value
20
+ return self
21
+
22
+ def getClassifications(self):
23
+ return self.classifications
24
+
25
+ def addClassification(self, value):
26
+ if value is not None:
27
+ self.classifications.append(value)
28
+ return self
29
+
30
+
31
+ class KeywordSet(ARElement):
32
+ def __init__(self, parent, short_name):
33
+ super().__init__(parent, short_name)
34
+
35
+ self.keywords = [] # type: List[Keyword]
36
+
37
+ def getKeywords(self):
38
+ return self.keywords
39
+
40
+ def createKeyword(self, short_name: str) -> Keyword:
41
+ if (not self.IsElementExists(short_name)):
42
+ keyword = Keyword(self, short_name)
43
+ self.addElement(keyword)
44
+ self.keywords.append(keyword)
45
+ return self.getElement(short_name)
@@ -1,9 +1,52 @@
1
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
2
+ from ....M2.MSR.DataDictionary.DataDefProperties import SwImplPolicyEnum
1
3
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
2
4
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
3
5
 
6
+
4
7
  class Trigger(Identifiable):
5
8
  def __init__(self, parent: ARObject, short_name: str):
6
9
  super().__init__(parent, short_name)
7
10
 
8
- self.swImplPolicy = None # type: str
9
- self.triggerPeriod = None # type: float
11
+ self.swImplPolicy = None # type: SwImplPolicyEnum
12
+ self.triggerPeriod = None # type: MultidimensionalTime
13
+
14
+ def getSwImplPolicy(self):
15
+ return self.swImplPolicy
16
+
17
+ def setSwImplPolicy(self, value):
18
+ if value is not None:
19
+ self.swImplPolicy = value
20
+ return self
21
+
22
+ def getTriggerPeriod(self):
23
+ return self.triggerPeriod
24
+
25
+ def setTriggerPeriod(self, value):
26
+ if value is not None:
27
+ self.triggerPeriod = value
28
+ return self
29
+
30
+
31
+ class TriggerMapping(ARObject):
32
+ def __init__(self):
33
+ super().__init__()
34
+
35
+ self.firstTriggerRef = None # type: RefType
36
+ self.secondTriggerRef = None # type: RefType
37
+
38
+ def getFirstTriggerRef(self):
39
+ return self.firstTriggerRef
40
+
41
+ def setFirstTriggerRef(self, value):
42
+ if value is not None:
43
+ self.firstTriggerRef = value
44
+ return self
45
+
46
+ def getSecondTriggerRef(self):
47
+ return self.secondTriggerRef
48
+
49
+ def setSecondTriggerRef(self, value):
50
+ if value is not None:
51
+ self.secondTriggerRef = value
52
+ return self
@@ -7,6 +7,7 @@ from ...M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject imp
7
7
  from ...M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, RefType, ARBoolean
8
8
  from ...M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
9
9
 
10
+
10
11
  class EcucValueCollection(ARElement):
11
12
  def __init__(self, parent: ARObject, short_name: str):
12
13
  super().__init__(parent, short_name)
@@ -27,26 +28,21 @@ class EcucValueCollection(ARElement):
27
28
  def setEcuExtractRef(self, value):
28
29
  self.ecuExtractRef = value
29
30
  return self
30
-
31
- class EcucIndexableValue(ARObject, metaclass = ABCMeta):
31
+
32
+
33
+ class EcucIndexableValue(ARObject, metaclass=ABCMeta):
32
34
  def __init__(self):
33
- if type(self) == EcucIndexableValue:
35
+ if type(self) is EcucIndexableValue:
34
36
  raise NotImplementedError("EcucIndexableValue is an abstract class.")
35
-
36
- super().__init__()
37
37
 
38
- class EcucAbstractReferenceValue(EcucIndexableValue, metaclass=ABCMeta):
39
- def __init__(self):
40
- if type(self) == EcucAbstractReferenceValue:
41
- raise NotImplementedError("EcucAbstractReferenceValue is an abstract class.")
42
-
43
38
  super().__init__()
44
-
39
+
40
+
45
41
  class EcucParameterValue(EcucIndexableValue, metaclass=ABCMeta):
46
42
  def __init__(self):
47
- if type(self) == EcucParameterValue:
43
+ if type(self) is EcucParameterValue:
48
44
  raise NotImplementedError("EcucParameterValue is an abstract class.")
49
-
45
+
50
46
  super().__init__()
51
47
 
52
48
  self.annotations = [] # type: List[Annotation]
@@ -74,6 +70,7 @@ class EcucParameterValue(EcucIndexableValue, metaclass=ABCMeta):
74
70
  self.isAutoValue = value
75
71
  return self
76
72
 
73
+
77
74
  class EcucAddInfoParamValue(EcucParameterValue):
78
75
  def __init__(self):
79
76
  super().__init__()
@@ -86,6 +83,7 @@ class EcucAddInfoParamValue(EcucParameterValue):
86
83
  def setValue(self, value: DocumentationBlock):
87
84
  self.value = value
88
85
 
86
+
89
87
  class EcucTextualParamValue(EcucParameterValue):
90
88
  def __init__(self):
91
89
  super().__init__()
@@ -95,7 +93,7 @@ class EcucTextualParamValue(EcucParameterValue):
95
93
  def getValue(self) -> ARLiteral:
96
94
  return self.value
97
95
 
98
- def setValue(self, value:ARLiteral):
96
+ def setValue(self, value: ARLiteral):
99
97
  self.value = value
100
98
 
101
99
 
@@ -111,11 +109,12 @@ class EcucNumericalParamValue(EcucParameterValue):
111
109
  def setValue(self, value: ARNumerical):
112
110
  self.value = value
113
111
 
112
+
114
113
  class EcucAbstractReferenceValue(EcucIndexableValue, metaclass=ABCMeta):
115
114
  def __init__(self):
116
- if type(self) == EcucAbstractReferenceValue:
115
+ if type(self) is EcucAbstractReferenceValue:
117
116
  raise NotImplementedError("EcucAbstractReferenceValue is an abstract class.")
118
-
117
+
119
118
  super().__init__()
120
119
 
121
120
  self.annotations = [] # type: List[Annotation]
@@ -143,6 +142,7 @@ class EcucAbstractReferenceValue(EcucIndexableValue, metaclass=ABCMeta):
143
142
  self.isAutoValue = value
144
143
  return self
145
144
 
145
+
146
146
  class EcucInstanceReferenceValue(EcucAbstractReferenceValue):
147
147
  def __init__(self):
148
148
  super().__init__()
@@ -156,6 +156,7 @@ class EcucInstanceReferenceValue(EcucAbstractReferenceValue):
156
156
  self.valueRef = value
157
157
  return self
158
158
 
159
+
159
160
  class EcucReferenceValue(EcucAbstractReferenceValue):
160
161
  def __init__(self):
161
162
  super().__init__()
@@ -169,6 +170,7 @@ class EcucReferenceValue(EcucAbstractReferenceValue):
169
170
  self.valueRef = value
170
171
  return self
171
172
 
173
+
172
174
  class EcucContainerValue(ARElement, EcucIndexableValue):
173
175
  def __init__(self, parent: ARObject, short_name: str):
174
176
  ARElement.__init__(self, parent, short_name)
@@ -185,7 +187,7 @@ class EcucContainerValue(ARElement, EcucIndexableValue):
185
187
  self.definitionRef = value
186
188
  return self
187
189
 
188
- def getParameterValues(self)-> List[EcucParameterValue]:
190
+ def getParameterValues(self) -> List[EcucParameterValue]:
189
191
  return self.parameterValues
190
192
 
191
193
  def addParameterValue(self, value: EcucParameterValue):
@@ -229,7 +231,7 @@ class EcucModuleConfigurationValues(ARElement):
229
231
  return self.elements[short_name]
230
232
 
231
233
  def getContainers(self) -> List[EcucContainerValue]:
232
- return list(sorted(filter(lambda a: isinstance(a, EcucContainerValue), self.elements.values()), key= lambda o:o.short_name))
234
+ return list(sorted(filter(lambda a: isinstance(a, EcucContainerValue), self.elements.values()), key=lambda o: o.short_name))
233
235
 
234
236
  def getDefinitionRef(self) -> RefType:
235
237
  return self.definitionRef
@@ -265,4 +267,3 @@ class EcucModuleConfigurationValues(ARElement):
265
267
  def setPostBuildVariantUsed(self, value: ARBoolean):
266
268
  self.postBuildVariantUsed = value
267
269
  return self
268
-
@@ -0,0 +1,59 @@
1
+ from typing import List
2
+
3
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, RefType
4
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable
5
+
6
+
7
+ class HwType(ARElement):
8
+ def __init__(self, parent, short_name):
9
+ super().__init__(parent, short_name)
10
+
11
+
12
+ class HwAttributeDef(Identifiable):
13
+ def __init__(self, parent, short_name):
14
+ super().__init__(parent, short_name)
15
+
16
+ self.hwAttributeLiterals = [] # type: List[HwAttributeLiteralDef]
17
+ self.isRequired = None # type: Boolean
18
+ self.unitRef = None # type: RefType
19
+
20
+ def getHwAttributeLiterals(self):
21
+ return self.hwAttributeLiterals
22
+
23
+ def setHwAttributeLiterals(self, value):
24
+ if value is not None:
25
+ self.hwAttributeLiterals = value
26
+ return self
27
+
28
+ def getIsRequired(self):
29
+ return self.isRequired
30
+
31
+ def setIsRequired(self, value):
32
+ if value is not None:
33
+ self.isRequired = value
34
+ return self
35
+
36
+ def getUnitRef(self):
37
+ return self.unitRef
38
+
39
+ def setUnitRef(self, value):
40
+ if value is not None:
41
+ self.unitRef = value
42
+ return self
43
+
44
+
45
+ class HwCategory(ARElement):
46
+ def __init__(self, parent, short_name):
47
+ super().__init__(parent, short_name)
48
+
49
+ self.hwAttributeDefs = [] # type: List[HwAttributeDef]
50
+
51
+ def getHwAttributeDefs(self):
52
+ return self.hwAttributeDefs
53
+
54
+ def createHwAttributeDef(self, short_name: str) -> HwAttributeDef:
55
+ if (not self.IsElementExists(short_name)):
56
+ pin_group = HwAttributeDef(self, short_name)
57
+ self.addElement(pin_group)
58
+ self.hwAttributeDefs.append(pin_group)
59
+ return self.getElement(short_name)