armodel 1.6.3__py3-none-any.whl → 1.7.0__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 (133) hide show
  1. armodel/cli/arxml_dump_cli.py +7 -7
  2. armodel/cli/arxml_format_cli.py +14 -12
  3. armodel/cli/connector2xlsx_cli.py +2 -3
  4. armodel/cli/connector_update_cli.py +1 -4
  5. armodel/cli/memory_section_cli.py +2 -2
  6. armodel/cli/swc_list_cli.py +2 -3
  7. armodel/cli/system_signal_cli.py +2 -2
  8. armodel/lib/sw_component.py +2 -2
  9. armodel/lib/system_signal.py +1 -3
  10. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +5 -10
  11. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +9 -11
  12. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +51 -12
  13. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +3 -3
  14. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +5 -6
  15. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__init__.py +4 -1
  16. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +86 -0
  17. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +186 -29
  18. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +7 -10
  19. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +21 -11
  20. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +3 -3
  21. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +3 -6
  22. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +3 -5
  23. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +10 -6
  24. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +3 -4
  25. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +2 -5
  26. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +0 -1
  27. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +45 -0
  28. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +24 -0
  29. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +33 -0
  30. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +2 -2
  31. armodel/models/M2/AUTOSARTemplates/CommonStructure/__init__.py +4 -6
  32. armodel/models/M2/AUTOSARTemplates/{ecuc_description_template.py → ECUCDescriptionTemplate.py} +6 -11
  33. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +3 -6
  34. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +42 -36
  35. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +2 -5
  36. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +11 -16
  37. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +87 -4
  38. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__init__.py +0 -1
  39. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +21 -8
  40. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py +2 -4
  41. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +114 -12
  42. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py +2 -5
  43. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +4 -62
  44. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +6 -8
  45. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +7 -7
  46. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__init__.py +0 -1
  47. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/{port_interface/instance_refs.py → PortInterface/InstanceRefs.py} +2 -2
  48. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/{port_interface → PortInterface}/__init__.py +10 -10
  49. armodel/models/{rpt_scenario.py → M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py} +4 -6
  50. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +29 -6
  51. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +6 -6
  52. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +2 -2
  53. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +3 -3
  54. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +28 -4
  55. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py +3 -3
  56. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +86 -0
  57. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +174 -0
  58. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py +3 -4
  59. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +37 -3
  60. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +2 -4
  61. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +166 -10
  62. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{data_mapping.py → DataMapping.py} +2 -3
  63. armodel/models/{fibex/can_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py} +3 -4
  64. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +173 -0
  65. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +14 -0
  66. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +116 -0
  67. armodel/models/{fibex/lin_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py} +4 -5
  68. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__init__.py +0 -0
  69. armodel/models/{fibex/fibex_4_multiplatform.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py} +5 -6
  70. armodel/models/{fibex/fibex_core/core_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py} +6 -14
  71. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +388 -0
  72. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +223 -0
  73. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +177 -0
  74. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__init__.py +0 -0
  75. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__init__.py +0 -0
  76. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +39 -2
  77. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{network_management.py → NetworkManagement.py} +5 -10
  78. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +6 -0
  79. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +86 -17
  80. armodel/models/M2/MSR/AsamHdo/AdminData.py +2 -5
  81. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +3 -3
  82. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +5 -6
  83. armodel/models/M2/MSR/AsamHdo/Constraints/GlobalConstraints.py +3 -4
  84. armodel/models/M2/MSR/AsamHdo/Constraints/__init__.py +0 -1
  85. armodel/models/M2/MSR/AsamHdo/SpecialData.py +1 -4
  86. armodel/models/M2/MSR/AsamHdo/Units.py +3 -6
  87. armodel/models/M2/MSR/AsamHdo/__init__.py +0 -1
  88. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +3 -7
  89. armodel/models/M2/MSR/CalibrationData/__init__.py +0 -1
  90. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +3 -6
  91. armodel/models/M2/MSR/DataDictionary/Axis.py +3 -3
  92. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +3 -3
  93. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +5 -6
  94. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +4 -4
  95. armodel/models/M2/MSR/DataDictionary/__init__.py +0 -1
  96. armodel/models/M2/MSR/Documentation/Annotation.py +4 -6
  97. armodel/models/M2/MSR/Documentation/BlockElements.py +2 -2
  98. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +1 -2
  99. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +3 -6
  100. armodel/models/M2/MSR/Documentation/TextModel/__init__.py +0 -2
  101. armodel/models/M2/MSR/Documentation/__init__.py +1 -1
  102. armodel/models/M2/MSR/__init__.py +1 -1
  103. armodel/models/M2/__init__.py +0 -1
  104. armodel/models/__init__.py +57 -3
  105. armodel/parser/abstract_arxml_parser.py +50 -16
  106. armodel/parser/arxml_parser.py +285 -112
  107. armodel/parser/file_parser.py +2 -1
  108. armodel/report/connector_xls_report.py +2 -1
  109. armodel/tests/test_armodel/models/test_ar_object.py +0 -2
  110. armodel/tests/test_armodel/models/test_ar_package.py +4 -4
  111. armodel/tests/test_armodel/models/test_data_prototype.py +1 -1
  112. armodel/tests/test_armodel/models/test_datatype.py +7 -7
  113. armodel/tests/test_armodel/models/test_port_interface.py +6 -6
  114. armodel/tests/test_armodel/parser/test_parse_bswmd.py +12 -12
  115. armodel/tests/test_armodel/parser/test_sw_components.py +1 -23
  116. armodel/tests/test_armodel/parser/test_system.py +3 -3
  117. armodel/writer/abstract_arxml_writer.py +10 -1
  118. armodel/writer/arxml_writer.py +249 -80
  119. {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/METADATA +385 -366
  120. armodel-1.7.0.dist-info/RECORD +160 -0
  121. {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/WHEEL +1 -1
  122. armodel/models/M2/AUTOSARTemplates/SystemTemplate/transport_protocols.py +0 -7
  123. armodel/models/fibex/fibex_core/core_topology.py +0 -184
  124. armodel/models/sw_component.py +0 -390
  125. armodel/models/timing.py +0 -91
  126. armodel-1.6.3.dist-info/RECORD +0 -148
  127. /armodel/models/{fibex → M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint}/__init__.py +0 -0
  128. /armodel/models/{fibex/fibex_4_can → M2/AUTOSARTemplates/CommonStructure/Timing}/__init__.py +0 -0
  129. /armodel/models/{fibex/fibex_4_lin → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can}/__init__.py +0 -0
  130. /armodel/models/{fibex/fibex_core → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet}/__init__.py +0 -0
  131. {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/LICENSE +0 -0
  132. {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/entry_points.txt +0 -0
  133. {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,174 @@
1
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import RVariableInAtomicSwcInstanceRef, RModeInAtomicSwcInstanceRef
2
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import POperationInAtomicSwcInstanceRef
3
+ from .....M2.AUTOSARTemplates.CommonStructure.InternalBehavior import AbstractEvent
4
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, TimeValue
6
+ from typing import List
7
+
8
+ class RTEEvent(AbstractEvent):
9
+ def __init__(self, parent: ARObject, short_name: str):
10
+ super().__init__(parent, short_name)
11
+
12
+ self.disabledModeIRefs = [] # type: List[RModeInAtomicSwcInstanceRef]
13
+ self.startOnEventRef = None # type: RefType
14
+
15
+ def getDisabledModeIRefs(self):
16
+ return self.disabledModeIRefs
17
+
18
+ def addDisabledModeIRef(self, value):
19
+ self.disabledModeIRefs.append(value)
20
+ return self
21
+
22
+ def getStartOnEventRef(self):
23
+ return self.startOnEventRef
24
+
25
+ def setStartOnEventRef(self, value):
26
+ self.startOnEventRef = value
27
+ return self
28
+
29
+ class AsynchronousServerCallReturnsEvent(RTEEvent):
30
+ def __init__(self, parent: ARObject, short_name: str):
31
+ super().__init__(parent, short_name)
32
+
33
+ self.eventSourceRef = None # type: RefType
34
+
35
+ def getEventSourceRef(self):
36
+ return self.eventSourceRef
37
+
38
+ def setEventSourceRef(self, value):
39
+ self.eventSourceRef = value
40
+ return self
41
+
42
+
43
+ class DataSendCompletedEvent(RTEEvent):
44
+ def __init__(self, parent: ARObject, short_name: str):
45
+ super().__init__(parent, short_name)
46
+
47
+ self.eventSourceRef = None # type: RefType
48
+
49
+ def getEventSourceRef(self):
50
+ return self.eventSourceRef
51
+
52
+ def setEventSourceRef(self, value):
53
+ self.eventSourceRef = value
54
+ return self
55
+
56
+ class DataWriteCompletedEvent(RTEEvent):
57
+ def __init__(self, parent: ARObject, short_name: str):
58
+ super().__init__(parent, short_name)
59
+
60
+ self.eventSourceRef = None # type: RefType
61
+
62
+ def getEventSourceRef(self):
63
+ return self.eventSourceRef
64
+
65
+ def setEventSourceRef(self, value):
66
+ self.eventSourceRef = value
67
+ return self
68
+
69
+ class DataReceivedEvent(RTEEvent):
70
+ def __init__(self, parent: ARObject, short_name: str):
71
+ super().__init__(parent, short_name)
72
+
73
+ self.dataIRef = None # type: RVariableInAtomicSwcInstanceRef
74
+
75
+ def getDataIRef(self):
76
+ return self.dataIRef
77
+
78
+ def setDataIRef(self, value):
79
+ self.dataIRef = value
80
+ return self
81
+
82
+
83
+ class SwcModeSwitchEvent(RTEEvent):
84
+ def __init__(self, parent: ARObject, short_name: str):
85
+ super().__init__(parent, short_name)
86
+
87
+ self.activation = None # type: ModeActivationKind
88
+ self.modeIRefs = [] # type: List[RModeInAtomicSwcInstanceRef]
89
+
90
+ def getActivation(self):
91
+ return self.activation
92
+
93
+ def setActivation(self, value):
94
+ self.activation = value
95
+ return self
96
+
97
+ def getModeIRefs(self):
98
+ return self.modeIRefs
99
+
100
+ def addModeIRef(self, value):
101
+ self.modeIRefs.append(value)
102
+ return self
103
+
104
+ class DataReceiveErrorEvent(RTEEvent):
105
+ def __init__(self, parent: ARObject, short_name: str):
106
+ super().__init__(parent, short_name)
107
+
108
+ self.dataIRef = None
109
+
110
+ def getDataIRef(self):
111
+ return self.dataIRef
112
+
113
+ def setDataIRef(self, value):
114
+ self.dataIRef = value
115
+ return self
116
+
117
+ class OperationInvokedEvent(RTEEvent):
118
+ def __init__(self, parent: ARObject, short_name: str):
119
+ super().__init__(parent, short_name)
120
+
121
+ self.operationIRef = None # type: POperationInAtomicSwcInstanceRef
122
+
123
+ def getOperationIRef(self):
124
+ return self.operationIRef
125
+
126
+ def setOperationIRef(self, value):
127
+ self.operationIRef = value
128
+ return self
129
+
130
+ class InitEvent(RTEEvent):
131
+ def __init__(self, parent: ARObject, short_name: str):
132
+ super().__init__(parent, short_name)
133
+
134
+
135
+ class TimingEvent(RTEEvent):
136
+ def __init__(self, parent: ARObject, short_name: str):
137
+ super().__init__(parent, short_name)
138
+
139
+ self.offset = None # type: TimeValue
140
+ self.period = None # type: TimeValue
141
+
142
+ @property
143
+ def periodMs(self):
144
+ if (self.period < 0.001):
145
+ return self.period * 1000
146
+ else:
147
+ return (int)(self.period * 1000)
148
+
149
+ def getOffset(self):
150
+ return self.offset
151
+
152
+ def setOffset(self, value):
153
+ self.offset = value
154
+ return self
155
+
156
+ def getPeriod(self):
157
+ return self.period
158
+
159
+ def setPeriod(self, value):
160
+ self.period = value
161
+ return self
162
+
163
+ class InternalTriggerOccurredEvent(RTEEvent):
164
+ def __init__(self, parent: ARObject, short_name: str):
165
+ super().__init__(parent, short_name)
166
+
167
+ self.eventSourceRef = None # type: RefType
168
+
169
+ def getEventSourceRef(self):
170
+ return self.eventSourceRef
171
+
172
+ def setEventSourceRef(self, value):
173
+ self.eventSourceRef = value
174
+ return self
@@ -1,8 +1,7 @@
1
1
  from abc import ABCMeta
2
- from ...GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
- from ..Composition.InstanceRefs import ROperationInAtomicSwcInstanceRef
4
- from .AccessCount import AbstractAccessPoint
5
-
2
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AccessCount import AbstractAccessPoint
3
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import ROperationInAtomicSwcInstanceRef
6
5
 
7
6
  class ServerCallPoint(AbstractAccessPoint, metaclass = ABCMeta):
8
7
 
@@ -1,6 +1,8 @@
1
- from ....AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
2
- from ....AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
3
-
1
+ from typing import List
2
+ from .....M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import NvBlockNeeds, RoleBasedDataAssignment, ServiceNeeds
3
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Identifier, RefType
5
+ from .....M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import ServiceDependency
4
6
  class RoleBasedPortAssignment(ARObject):
5
7
  def __init__(self):
6
8
  super().__init__()
@@ -21,3 +23,35 @@ class RoleBasedPortAssignment(ARObject):
21
23
  def setRole(self, value):
22
24
  self.role = value
23
25
  return self
26
+
27
+
28
+ class SwcServiceDependency(ServiceDependency):
29
+ def __init__(self, parent: ARObject, short_name: str):
30
+ super().__init__(parent, short_name)
31
+
32
+ self._assigned_data = []
33
+ self._assigned_ports = []
34
+
35
+ def AddAssignedData(self, data: RoleBasedDataAssignment):
36
+ self._assigned_data.append(data)
37
+
38
+ def getAssignedData(self) -> List[RoleBasedDataAssignment]:
39
+ return self._assigned_data
40
+
41
+ def AddAssignedPort(self, data: RoleBasedPortAssignment):
42
+ self._assigned_ports.append(data)
43
+
44
+ def getAssignedPorts(self) -> List[RoleBasedPortAssignment]:
45
+ return self._assigned_ports
46
+
47
+ def createNvBlockNeeds(self, short_name: str) -> NvBlockNeeds:
48
+ if (short_name not in self.elements):
49
+ event = NvBlockNeeds(self, short_name)
50
+ self.elements[short_name] = event
51
+ return self.elements[short_name]
52
+
53
+ def getNvBlockNeeds(self) -> List[NvBlockNeeds]:
54
+ return sorted(filter(lambda c: isinstance(c, NvBlockNeeds), self.elements.values()), key=lambda e: e.short_name)
55
+
56
+ def getServiceNeeds(self) -> List[ServiceNeeds]:
57
+ return sorted(filter(lambda c: isinstance(c, ServiceNeeds), self.elements.values()), key=lambda e: e.short_name)
@@ -1,7 +1,5 @@
1
-
2
- from .AccessCount import AbstractAccessPoint
3
- from ...GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
-
1
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AccessCount import AbstractAccessPoint
2
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
3
 
6
4
  class InternalTriggeringPoint(AbstractAccessPoint):
7
5
  def __init__(self, parent: ARObject, short_name: str):
@@ -1,15 +1,19 @@
1
-
2
- from .ServiceMapping import *
3
-
4
1
  from typing import Dict, List
5
2
 
6
- from ...GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, RefType, ARBoolean
7
- from ...SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
8
- from ...SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
9
- from ...SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import ModeAccessPoint, ModeSwitchPoint
10
- from ...SWComponentTemplate.SwcInternalBehavior.Trigger import InternalTriggeringPoint
11
- from ...GenericStructure.GeneralTemplateClasses.ArObject import ARObject
12
- from ...CommonStructure.InternalBehavior import ExecutableEntity
3
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption
4
+ from .....M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
5
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ParameterDataPrototype, VariableDataPrototype
6
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
7
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PerInstanceMemory import PerInstanceMemory
8
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent, TimingEvent
9
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import SwcServiceDependency
10
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, RefType, ARBoolean
11
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
12
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
13
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import ModeAccessPoint, ModeSwitchPoint
14
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.Trigger import InternalTriggeringPoint
15
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
16
+ from .....M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
13
17
 
14
18
  class RunnableEntityArgument(ARObject):
15
19
  def __init__(self):
@@ -200,3 +204,155 @@ class RunnableEntity(ExecutableEntity):
200
204
  self.symbol = value
201
205
  return self
202
206
 
207
+
208
+ class SwcInternalBehavior(InternalBehavior):
209
+ def __init__(self, parent: ARObject, short_name: str):
210
+ super().__init__(parent, short_name)
211
+
212
+ self.handle_termination_and_restart = None # type: str
213
+ self.supports_multiple_instantiation = None # type: ARBoolean
214
+ self.explicit_inter_runnable_variables = [] # type: List[VariableDataPrototype]
215
+ self.implicit_inter_runnable_variables = [] # type: List[VariableDataPrototype]
216
+ self.per_instance_memories = [] # type: List[PerInstanceMemory]
217
+ self.per_instance_parameters = [] # type: List[ParameterDataPrototype]
218
+ self.port_api_options = [] # type: List[PortAPIOption]
219
+ self.included_data_type_sets = [] # type: List[IncludedDataTypeSet]
220
+
221
+ def getExplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
222
+ return self.explicit_inter_runnable_variables
223
+
224
+ def getImplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
225
+ return self.implicit_inter_runnable_variables
226
+
227
+ def getPerInstanceMemories(self) -> List[PerInstanceMemory]:
228
+ return self.per_instance_memories
229
+
230
+ def getPerInstanceParameters(self) -> List[ParameterDataPrototype]:
231
+ return self.per_instance_parameters
232
+
233
+ def addPortAPIOption(self, option: PortAPIOption):
234
+ self.port_api_options.append(option)
235
+
236
+ def getPortAPIOptions(self) -> List[PortAPIOption]:
237
+ return self.port_api_options
238
+
239
+ def addIncludedDataTypeSet(self, set: IncludedDataTypeSet):
240
+ self.included_data_type_sets.append(set)
241
+
242
+ def getIncludedDataTypeSets(self) -> List[IncludedDataTypeSet]:
243
+ return self.included_data_type_sets
244
+
245
+ def createOperationInvokedEvent(self, short_name: str) -> OperationInvokedEvent:
246
+ if (short_name not in self.elements):
247
+ event = OperationInvokedEvent(self, short_name)
248
+ self.elements[short_name] = event
249
+ return self.elements[short_name]
250
+
251
+ def createTimingEvent(self, short_name: str) -> TimingEvent:
252
+ if (short_name not in self.elements):
253
+ event = TimingEvent(self, short_name)
254
+ self.elements[short_name] = event
255
+ return self.elements[short_name]
256
+
257
+ def createInitEvent(self, short_name: str) -> InitEvent:
258
+ if (short_name not in self.elements):
259
+ event = InitEvent(self, short_name)
260
+ self.elements[short_name] = event
261
+ return self.elements[short_name]
262
+
263
+ def createDataReceivedEvent(self, short_name: str) -> DataReceivedEvent:
264
+ if (short_name not in self.elements):
265
+ event = DataReceivedEvent(self, short_name)
266
+ self.elements[short_name] = event
267
+ return self.elements[short_name]
268
+
269
+ def createSwcModeSwitchEvent(self, short_name: str) -> SwcModeSwitchEvent:
270
+ if (short_name not in self.elements):
271
+ event = SwcModeSwitchEvent(self, short_name)
272
+ self.elements[short_name] = event
273
+ return self.elements[short_name]
274
+
275
+ def createInternalTriggerOccurredEvent(self, short_name: str) -> InternalTriggerOccurredEvent:
276
+ if (short_name not in self.elements):
277
+ event = InternalTriggerOccurredEvent(self, short_name)
278
+ self.elements[short_name] = event
279
+ return self.elements[short_name]
280
+
281
+ def createSwcServiceDependency(self, short_name: str) -> SwcServiceDependency:
282
+ if (short_name not in self.elements):
283
+ event = SwcServiceDependency(self, short_name)
284
+ self.elements[short_name] = event
285
+ return self.elements[short_name]
286
+
287
+ def getRteEvents(self) -> List[RTEEvent]:
288
+ return sorted(filter(lambda c: isinstance(c, RTEEvent), self.elements.values()), key=lambda e: e.short_name)
289
+
290
+ def getOperationInvokedEvents(self) -> List[OperationInvokedEvent]:
291
+ return sorted(filter(lambda c: isinstance(c, OperationInvokedEvent), self.elements.values()), key=lambda e: e.short_name)
292
+
293
+ def getInitEvents(self) -> List[InitEvent]:
294
+ return sorted(filter(lambda c: isinstance(c, InitEvent), self.elements.values()), key=lambda e: e.short_name)
295
+
296
+ def getTimingEvents(self) -> List[TimingEvent]:
297
+ return sorted(filter(lambda c: isinstance(c, TimingEvent), self.elements.values()), key=lambda e: e.short_name)
298
+
299
+ def getDataReceivedEvents(self) -> List[DataReceivedEvent]:
300
+ return sorted(filter(lambda c: isinstance(c, DataReceivedEvent), self.elements.values()), key=lambda e: e.short_name)
301
+
302
+ def getSwcModeSwitchEvents(self) -> List[SwcModeSwitchEvent]:
303
+ return sorted(filter(lambda c: isinstance(c, SwcModeSwitchEvent), self.elements.values()), key=lambda e: e.short_name)
304
+
305
+ def getInternalTriggerOccurredEvents(self) -> List[InternalTriggerOccurredEvent]:
306
+ return sorted(filter(lambda c: isinstance(c, InternalTriggerOccurredEvent), self.elements.values()), key= lambda e: e.short_name)
307
+
308
+ def getSwcServiceDependencies(self) -> List[SwcServiceDependency]:
309
+ return sorted(filter(lambda c: isinstance(c, SwcServiceDependency), self.elements.values()), key= lambda e: e.short_name)
310
+
311
+ def getEvent(self, short_name: str) -> RTEEvent:
312
+ if (not isinstance(self.elements[short_name], RTEEvent)):
313
+ raise ValueError("Invalid Event Type <%s> of <%s>" % type(self.elements[short_name]), short_name)
314
+ return self.elements[short_name]
315
+
316
+ def createExplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
317
+ if (short_name not in self.elements):
318
+ prototype = VariableDataPrototype(self, short_name)
319
+ self.elements[short_name] = prototype
320
+ self.explicit_inter_runnable_variables.append(prototype)
321
+ return self.elements[short_name]
322
+
323
+ def createImplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
324
+ if (short_name not in self.elements):
325
+ prototype = VariableDataPrototype(self, short_name)
326
+ self.elements[short_name] = prototype
327
+ self.implicit_inter_runnable_variables.append(prototype)
328
+ return self.elements[short_name]
329
+
330
+ def createPerInstanceMemory(self, short_name: str) -> PerInstanceMemory:
331
+ if (short_name not in self.elements):
332
+ memory = PerInstanceMemory(self, short_name)
333
+ self.elements[short_name] = memory
334
+ self.per_instance_memories.append(memory)
335
+ return self.elements[short_name]
336
+
337
+ def createPerInstanceParameter(self, short_name: str) -> ParameterDataPrototype:
338
+ if (short_name not in self.elements):
339
+ prototype = ParameterDataPrototype(self, short_name)
340
+ self.elements[short_name] = prototype
341
+ self.per_instance_parameters.append(prototype)
342
+ return self.elements[short_name]
343
+
344
+ def getVariableDataPrototypes(self) -> List[VariableDataPrototype]:
345
+ return sorted(filter(lambda c: isinstance(c, VariableDataPrototype), self.elements.values()), key=lambda e: e.short_name)
346
+
347
+ def createRunnableEntity(self, short_name: str) -> RunnableEntity:
348
+ if (short_name not in self.elements):
349
+ runnable = RunnableEntity(self, short_name)
350
+ self.elements[short_name] = runnable
351
+ return self.elements[short_name]
352
+
353
+ def getRunnableEntities(self) -> List[RunnableEntity]:
354
+ return sorted(filter(lambda c: isinstance(c, RunnableEntity), self.elements.values()), key=lambda r: r.short_name)
355
+
356
+ def getRunnableEntity(self, short_name) -> RunnableEntity:
357
+ return self.elements[short_name]
358
+
@@ -1,7 +1,6 @@
1
1
  from abc import ABCMeta
2
-
3
- from ..GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
4
- from ..GenericStructure.GeneralTemplateClasses.ArObject import ARObject
2
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
3
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
4
 
6
5
  class DataMapping(ARObject, metaclass = ABCMeta):
7
6
  def __init__(self):
@@ -1,7 +1,6 @@
1
- from ..M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
2
- from ..M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
3
- from ..M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARPositiveInteger
4
- from .fibex_core.core_communication import Frame, FrameTriggering
1
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import Frame, FrameTriggering
2
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARPositiveInteger
5
4
 
6
5
  class RxIdentifierRange(ARObject):
7
6
  def __init__(self):
@@ -0,0 +1,173 @@
1
+ from abc import ABCMeta
2
+
3
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Float, Integer, PositiveInteger, PositiveUnlimitedInteger
4
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
6
+
7
+ class AbstractCanCommunicationControllerAttributes(ARObject, metaclass = ABCMeta):
8
+ def __init__(self):
9
+ super().__init__()
10
+
11
+ self.canControllerFdAttributes = None # type: CanControllerFdConfiguration
12
+ self.canControllerFdRequirements = None # type: CanControllerFdConfigurationRequirements
13
+ self.canControllerXlAttributes = None # type: CanControllerXlConfiguration
14
+ self.canControllerXlRequirements = None # type: CanControllerXlConfigurationRequirements
15
+
16
+ def getCanControllerFdAttributes(self):
17
+ return self.canControllerFdAttributes
18
+
19
+ def setCanControllerFdAttributes(self, value):
20
+ self.canControllerFdAttributes = value
21
+ return self
22
+
23
+ def getCanControllerFdRequirements(self):
24
+ return self.canControllerFdRequirements
25
+
26
+ def setCanControllerFdRequirements(self, value):
27
+ self.canControllerFdRequirements = value
28
+ return self
29
+
30
+ def getCanControllerXlAttributes(self):
31
+ return self.canControllerXlAttributes
32
+
33
+ def setCanControllerXlAttributes(self, value):
34
+ self.canControllerXlAttributes = value
35
+ return self
36
+
37
+ def getCanControllerXlRequirements(self):
38
+ return self.canControllerXlRequirements
39
+
40
+ def setCanControllerXlRequirements(self, value):
41
+ self.canControllerXlRequirements = value
42
+ return self
43
+
44
+ class CanControllerConfigurationRequirements(AbstractCanCommunicationControllerAttributes):
45
+ def __init__(self):
46
+ super().__init__()
47
+
48
+ self.maxNumberOfTimeQuantaPerBit = None # type: Integer
49
+ self.maxSamplePoint = None # type: Float
50
+ self.maxSyncJumpWidth = None # type: Float
51
+ self.minNumberOfTimeQuantaPerBit = None # type: Integer
52
+ self.minSamplePoint = None # type: Float
53
+ self.minSyncJumpWidth = None # type: Float
54
+
55
+ def getMaxNumberOfTimeQuantaPerBit(self):
56
+ return self.maxNumberOfTimeQuantaPerBit
57
+
58
+ def setMaxNumberOfTimeQuantaPerBit(self, value):
59
+ self.maxNumberOfTimeQuantaPerBit = value
60
+ return self
61
+
62
+ def getMaxSamplePoint(self):
63
+ return self.maxSamplePoint
64
+
65
+ def setMaxSamplePoint(self, value):
66
+ self.maxSamplePoint = value
67
+ return self
68
+
69
+ def getMaxSyncJumpWidth(self):
70
+ return self.maxSyncJumpWidth
71
+
72
+ def setMaxSyncJumpWidth(self, value):
73
+ self.maxSyncJumpWidth = value
74
+ return self
75
+
76
+ def getMinNumberOfTimeQuantaPerBit(self):
77
+ return self.minNumberOfTimeQuantaPerBit
78
+
79
+ def setMinNumberOfTimeQuantaPerBit(self, value):
80
+ self.minNumberOfTimeQuantaPerBit = value
81
+ return self
82
+
83
+ def getMinSamplePoint(self):
84
+ return self.minSamplePoint
85
+
86
+ def setMinSamplePoint(self, value):
87
+ self.minSamplePoint = value
88
+ return self
89
+
90
+ def getMinSyncJumpWidth(self):
91
+ return self.minSyncJumpWidth
92
+
93
+ def setMinSyncJumpWidth(self, value):
94
+ self.minSyncJumpWidth = value
95
+ return self
96
+
97
+
98
+
99
+ class AbstractCanCommunicationController(CommunicationController, metaclass = ABCMeta):
100
+ def __init__(self, parent: ARObject, short_name: str):
101
+ if type(self) == AbstractCanCommunicationController:
102
+ raise NotImplementedError("AbstractCanCommunicationController is an abstract class.")
103
+
104
+ super().__init__(parent, short_name)
105
+
106
+ self.canControllerAttributes = None # type: AbstractCanCommunicationControllerAttributes
107
+
108
+ def getCanControllerAttributes(self):
109
+ return self.canControllerAttributes
110
+
111
+ def setCanControllerAttributes(self, value):
112
+ self.canControllerAttributes = value
113
+ return self
114
+
115
+ class CanCommunicationController(AbstractCanCommunicationController):
116
+ def __init__(self, parent: ARObject, short_name: str):
117
+ super().__init__(parent, short_name)
118
+
119
+ class AbstractCanCommunicationConnector(CommunicationConnector, metaclass = ABCMeta):
120
+ def __init__(self, parent: ARObject, short_name: str):
121
+ if type(self) == AbstractCanCommunicationConnector:
122
+ raise NotImplementedError("AbstractCanCommunicationConnector is an abstract class.")
123
+
124
+ super().__init__(parent, short_name)
125
+
126
+ class CanCommunicationConnector(AbstractCanCommunicationConnector):
127
+ def __init__(self, parent: ARObject, short_name: str):
128
+ super().__init__(parent, short_name)
129
+
130
+ # type: PositiveInteger
131
+ self.pncWakeupCanId = None
132
+ self.pncWakeupCanIdExtended = None # type: Boolean
133
+ # type: PositiveInteger
134
+ self.pncWakeupCanIdMask = None
135
+ # type: PositiveUnlimitedInteger
136
+ self.pncWakeupDataMask = None
137
+ # type: PositiveInteger
138
+ self.pncWakeupDlc = None
139
+
140
+ def getPncWakeupCanId(self):
141
+ return self.pncWakeupCanId
142
+
143
+ def setPncWakeupCanId(self, value):
144
+ self.pncWakeupCanId = value
145
+ return self
146
+
147
+ def getPncWakeupCanIdExtended(self):
148
+ return self.pncWakeupCanIdExtended
149
+
150
+ def setPncWakeupCanIdExtended(self, value):
151
+ self.pncWakeupCanIdExtended = value
152
+ return self
153
+
154
+ def getPncWakeupCanIdMask(self):
155
+ return self.pncWakeupCanIdMask
156
+
157
+ def setPncWakeupCanIdMask(self, value):
158
+ self.pncWakeupCanIdMask = value
159
+ return self
160
+
161
+ def getPncWakeupDataMask(self):
162
+ return self.pncWakeupDataMask
163
+
164
+ def setPncWakeupDataMask(self, value):
165
+ self.pncWakeupDataMask = value
166
+ return self
167
+
168
+ def getPncWakeupDlc(self):
169
+ return self.pncWakeupDlc
170
+
171
+ def setPncWakeupDlc(self, value):
172
+ self.pncWakeupDlc = value
173
+ return self
@@ -0,0 +1,14 @@
1
+ from abc import ABCMeta
2
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import Frame
4
+
5
+ class AbstractEthernetFrame(Frame, metaclass = ABCMeta):
6
+ def __init__(self, parent: ARObject, short_name: str):
7
+ if type(self) == AbstractEthernetFrame:
8
+ raise NotImplementedError("AbstractEthernetFrame is an abstract class.")
9
+
10
+ super().__init__(parent, short_name)
11
+
12
+ class GenericEthernetFrame(AbstractEthernetFrame):
13
+ def __init__(self, parent: ARObject, short_name: str):
14
+ super().__init__(parent, short_name)