armodel 1.6.0__py3-none-any.whl → 1.6.2__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.
- armodel/cli/arxml_dump_cli.py +25 -22
- armodel/cli/arxml_format_cli.py +1 -4
- armodel/cli/connector_update_cli.py +1 -1
- armodel/cli/swc_list_cli.py +1 -1
- armodel/data_models/sw_connector.py +3 -3
- armodel/lib/sw_component.py +3 -1
- armodel/lib/system_signal.py +3 -1
- armodel/models/__init__.py +5 -3
- armodel/models/ar_object.py +1 -1
- armodel/models/ar_package.py +185 -151
- armodel/models/ar_ref.py +0 -202
- armodel/models/common_structure.py +3 -71
- armodel/models/communication.py +1 -1
- armodel/models/datatype.py +7 -72
- armodel/models/end_to_end_protection.py +1 -1
- armodel/models/general_structure.py +10 -4
- armodel/models/internal_behavior.py +1 -1
- armodel/models/m2/autosar_templates/autosar_top_level_structure.py +120 -0
- armodel/models/m2/autosar_templates/common_structure/implementation.py +21 -0
- armodel/models/m2/autosar_templates/common_structure/implementation_data_types.py +154 -0
- armodel/models/m2/autosar_templates/ecuc_description_template.py +2 -1
- armodel/models/m2/autosar_templates/generic_structure/__init__.py +0 -0
- armodel/models/m2/autosar_templates/generic_structure/abstract_structure.py +69 -0
- armodel/models/m2/autosar_templates/generic_structure/ar_package.py +528 -0
- armodel/models/m2/autosar_templates/sw_component_template/communication.py +44 -0
- armodel/models/m2/autosar_templates/sw_component_template/components/__init__.py +246 -0
- armodel/models/m2/autosar_templates/sw_component_template/components/instance_refs.py +33 -1
- armodel/models/m2/autosar_templates/sw_component_template/composition/__init__.py +154 -0
- armodel/models/m2/autosar_templates/sw_component_template/composition/instance_refs.py +157 -0
- armodel/models/m2/autosar_templates/sw_component_template/data_type/__init__.py +0 -0
- armodel/models/m2/autosar_templates/sw_component_template/data_type/data_prototypes.py +104 -0
- armodel/models/m2/autosar_templates/sw_component_template/port_interface/__init__.py +243 -0
- armodel/models/m2/autosar_templates/sw_component_template/port_interface/instance_refs.py +39 -0
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py +3 -11
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/instance_refs_usage.py +169 -0
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py +1 -2
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py +5 -4
- armodel/models/m2/autosar_templates/system_template/instance_refs.py +48 -0
- armodel/models/m2_msr.py +1 -0
- armodel/models/port_prototype.py +1 -90
- armodel/models/service_needs.py +3 -1
- armodel/models/sw_component.py +6 -143
- armodel/parser/__init__.py +2 -1
- armodel/parser/abstract_arxml_parser.py +1 -1
- armodel/parser/arxml_parser.py +157 -80
- armodel/parser/connector_xlsx_parser.py +3 -1
- armodel/parser/file_parser.py +43 -0
- armodel/report/connector_xls_report.py +2 -1
- armodel/tests/test_armodel/models/test_ar_package.py +6 -3
- armodel/tests/test_armodel/models/test_ar_ref.py +15 -13
- armodel/tests/test_armodel/models/test_common_structure.py +6 -5
- armodel/tests/test_armodel/models/test_data_prototype.py +1 -1
- armodel/tests/test_armodel/models/test_datatype.py +9 -9
- armodel/tests/test_armodel/models/test_general_structure.py +1 -1
- armodel/tests/test_armodel/models/test_implementation.py +1 -1
- armodel/tests/test_armodel/models/test_port_interface.py +2 -2
- armodel/tests/test_armodel/parser/test_parse_bswmd.py +3 -1
- armodel/tests/test_armodel/parser/test_sw_components.py +2 -2
- armodel/writer/abstract_arxml_writer.py +5 -1
- armodel/writer/arxml_writer.py +70 -60
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/METADATA +5 -1
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/RECORD +66 -51
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/LICENSE +0 -0
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/WHEEL +0 -0
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/entry_points.txt +0 -0
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
from armodel.models.bsw_module_template import BswModuleDescription, BswModuleEntry
|
|
2
|
+
from armodel.models.common_structure import ModeDeclarationGroup
|
|
3
|
+
from armodel.models.datatype import ApplicationArrayDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType, DataTypeMappingSet, SwBaseType
|
|
4
|
+
from armodel.models.end_to_end_protection import EndToEndProtectionSet
|
|
5
|
+
from armodel.models.fibex.can_communication import CanFrame
|
|
6
|
+
from armodel.models.fibex.fibex_4_multiplatform import Gateway
|
|
7
|
+
from armodel.models.fibex.fibex_core.core_communication import DcmIPdu, ISignal, ISignalGroup, ISignalIPdu, ISignalIPduGroup, NPdu, NmPdu, SecuredIPdu, SystemSignal, SystemSignalGroup
|
|
8
|
+
from armodel.models.fibex.fibex_core.core_topology import CanCluster, EcuInstance, LinCluster
|
|
9
|
+
from armodel.models.fibex.lin_communication import LinUnconditionalFrame
|
|
10
|
+
from armodel.models.general_structure import ARObject, CollectableElement, Identifiable, Referrable, SwcBswMapping
|
|
11
|
+
from armodel.models.global_constraints import DataConstr
|
|
12
|
+
from armodel.models.implementation import BswImplementation, Implementation, SwcImplementation
|
|
13
|
+
from armodel.models.m2.autosar_templates.common_structure import ConstantSpecification
|
|
14
|
+
from armodel.models.m2.autosar_templates.common_structure.implementation_data_types import ImplementationDataType
|
|
15
|
+
from armodel.models.m2.autosar_templates.ecuc_description_template import EcucModuleConfigurationValues, EcucValueCollection
|
|
16
|
+
from armodel.models.m2.autosar_templates.sw_component_template.components import SwComponentType
|
|
17
|
+
from armodel.models.m2.autosar_templates.sw_component_template.composition import CompositionSwComponentType
|
|
18
|
+
from armodel.models.m2.autosar_templates.sw_component_template.port_interface import ClientServerInterface, ModeSwitchInterface, ParameterInterface, SenderReceiverInterface, TriggerInterface
|
|
19
|
+
from armodel.models.m2.autosar_templates.system_template import System
|
|
20
|
+
from armodel.models.m2.autosar_templates.system_template.network_management import NmConfig
|
|
21
|
+
from armodel.models.m2.autosar_templates.system_template.transport_protocols import CanTpConfig
|
|
22
|
+
from armodel.models.m2.msr.asam_hdo.units import PhysicalDimension, Unit
|
|
23
|
+
from armodel.models.m2.msr.data_dictionary.auxillary_objects import SwAddrMethod
|
|
24
|
+
from armodel.models.m2_msr import CompuMethod
|
|
25
|
+
from armodel.models.record_layout import SwRecordLayout
|
|
26
|
+
from armodel.models.sw_component import ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, EcuAbstractionSwComponentType, SensorActuatorSwComponentType, ServiceSwComponentType
|
|
27
|
+
from armodel.models.timing import SwcTiming
|
|
28
|
+
|
|
29
|
+
from typing import Dict, List
|
|
30
|
+
|
|
31
|
+
class ARPackage(Identifiable, CollectableElement):
|
|
32
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
33
|
+
Identifiable.__init__(self, parent, short_name)
|
|
34
|
+
CollectableElement.__init__(self)
|
|
35
|
+
|
|
36
|
+
self._ar_packages = {} # type: Dict[str, ARPackage]
|
|
37
|
+
|
|
38
|
+
def getARPackages(self): # type: (...) -> List[ARPackage]
|
|
39
|
+
return list(sorted(self._ar_packages.values(), key= lambda a: a.short_name))
|
|
40
|
+
#return list(filter(lambda e: isinstance(e, ARPackage), self.elements.values()))
|
|
41
|
+
|
|
42
|
+
def createARPackage(self, short_name: str):
|
|
43
|
+
'''
|
|
44
|
+
if (short_name not in self.elements):
|
|
45
|
+
ar_package = ARPackage(self, short_name)
|
|
46
|
+
self.elements[short_name] = ar_package
|
|
47
|
+
return self.elements[short_name]
|
|
48
|
+
'''
|
|
49
|
+
if short_name not in self._ar_packages:
|
|
50
|
+
ar_package = ARPackage(self, short_name)
|
|
51
|
+
self._ar_packages[short_name] = ar_package
|
|
52
|
+
return self._ar_packages[short_name]
|
|
53
|
+
|
|
54
|
+
def getElement(self, short_name: str) -> Referrable:
|
|
55
|
+
if (short_name in self._ar_packages):
|
|
56
|
+
return self._ar_packages[short_name]
|
|
57
|
+
return CollectableElement.getElement(self, short_name)
|
|
58
|
+
|
|
59
|
+
def createEcuAbstractionSwComponentType(self, short_name: str) -> EcuAbstractionSwComponentType:
|
|
60
|
+
if (short_name not in self.elements):
|
|
61
|
+
sw_component = EcuAbstractionSwComponentType(self, short_name)
|
|
62
|
+
self.addElement(sw_component)
|
|
63
|
+
return self.getElement(short_name)
|
|
64
|
+
|
|
65
|
+
def createApplicationSwComponentType(self, short_name: str) -> ApplicationSwComponentType:
|
|
66
|
+
if short_name not in self.elements:
|
|
67
|
+
sw_component = ApplicationSwComponentType(self, short_name)
|
|
68
|
+
self.addElement(sw_component)
|
|
69
|
+
return self.getElement(short_name)
|
|
70
|
+
|
|
71
|
+
def createComplexDeviceDriverSwComponentType(self, short_name: str) -> ComplexDeviceDriverSwComponentType:
|
|
72
|
+
if short_name not in self.elements:
|
|
73
|
+
sw_component = ComplexDeviceDriverSwComponentType(self, short_name)
|
|
74
|
+
self.addElement(sw_component)
|
|
75
|
+
return self.getElement(short_name)
|
|
76
|
+
|
|
77
|
+
def createServiceSwComponentType(self, short_name: str) -> ServiceSwComponentType:
|
|
78
|
+
if (short_name not in self.elements):
|
|
79
|
+
sw_component = ServiceSwComponentType(self, short_name)
|
|
80
|
+
self.addElement(sw_component)
|
|
81
|
+
return self.getElement(short_name)
|
|
82
|
+
|
|
83
|
+
def createSensorActuatorSwComponentType(self, short_name: str) -> SensorActuatorSwComponentType:
|
|
84
|
+
if (short_name not in self.elements):
|
|
85
|
+
sw_component = SensorActuatorSwComponentType(self, short_name)
|
|
86
|
+
self.addElement(sw_component)
|
|
87
|
+
return self.getElement(short_name)
|
|
88
|
+
|
|
89
|
+
def createCompositionSwComponentType(self, short_name: str) -> CompositionSwComponentType:
|
|
90
|
+
if (short_name not in self.elements):
|
|
91
|
+
sw_component = CompositionSwComponentType(self, short_name)
|
|
92
|
+
self.addElement(sw_component)
|
|
93
|
+
return self.getElement(short_name)
|
|
94
|
+
|
|
95
|
+
def createSenderReceiverInterface(self, short_name: str) -> SenderReceiverInterface:
|
|
96
|
+
if (short_name not in self.elements):
|
|
97
|
+
sr_interface = SenderReceiverInterface(self, short_name)
|
|
98
|
+
self.addElement(sr_interface)
|
|
99
|
+
return self.getElement(short_name)
|
|
100
|
+
|
|
101
|
+
def createParameterInterface(self, short_name: str) -> ParameterInterface:
|
|
102
|
+
if (short_name not in self.elements):
|
|
103
|
+
sr_interface = ParameterInterface(self, short_name)
|
|
104
|
+
self.addElement(sr_interface)
|
|
105
|
+
return self.getElement(short_name)
|
|
106
|
+
|
|
107
|
+
def createClientServerInterface(self, short_name: str) -> ClientServerInterface:
|
|
108
|
+
if (short_name not in self.elements):
|
|
109
|
+
cs_interface = ClientServerInterface(self, short_name)
|
|
110
|
+
self.addElement(cs_interface)
|
|
111
|
+
return self.getElement(short_name)
|
|
112
|
+
|
|
113
|
+
def createApplicationPrimitiveDataType(self, short_name: str) -> ApplicationPrimitiveDataType:
|
|
114
|
+
if (short_name not in self.elements):
|
|
115
|
+
data_type = ApplicationPrimitiveDataType(self, short_name)
|
|
116
|
+
self.addElement(data_type)
|
|
117
|
+
return self.getElement(short_name)
|
|
118
|
+
|
|
119
|
+
def createApplicationRecordDataType(self, short_name: str) -> ApplicationPrimitiveDataType:
|
|
120
|
+
if (short_name not in self.elements):
|
|
121
|
+
data_type = ApplicationRecordDataType(self, short_name)
|
|
122
|
+
self.addElement(data_type)
|
|
123
|
+
return self.getElement(short_name)
|
|
124
|
+
|
|
125
|
+
def createImplementationDataType(self, short_name: str) -> ImplementationDataType:
|
|
126
|
+
if (short_name not in self.elements):
|
|
127
|
+
data_type = ImplementationDataType(self, short_name)
|
|
128
|
+
self.addElement(data_type)
|
|
129
|
+
return self.getElement(short_name)
|
|
130
|
+
|
|
131
|
+
def createSwBaseType(self, short_name: str) -> SwBaseType:
|
|
132
|
+
if (short_name not in self.elements):
|
|
133
|
+
base_type = SwBaseType(self, short_name)
|
|
134
|
+
self.addElement(base_type)
|
|
135
|
+
return self.getElement(short_name)
|
|
136
|
+
|
|
137
|
+
def createDataTypeMappingSet(self, short_name: str) -> DataTypeMappingSet:
|
|
138
|
+
if (short_name not in self.elements):
|
|
139
|
+
mapping_set = DataTypeMappingSet(self, short_name)
|
|
140
|
+
self.addElement(mapping_set)
|
|
141
|
+
return self.getElement(short_name)
|
|
142
|
+
|
|
143
|
+
def createCompuMethod(self, short_name: str) -> CompuMethod:
|
|
144
|
+
if (short_name not in self.elements):
|
|
145
|
+
compu_method = CompuMethod(self, short_name)
|
|
146
|
+
self.addElement(compu_method)
|
|
147
|
+
return self.getElement(short_name)
|
|
148
|
+
|
|
149
|
+
def createBswModuleDescription(self, short_name: str) -> BswModuleDescription:
|
|
150
|
+
if (short_name not in self.elements):
|
|
151
|
+
desc = BswModuleDescription(self, short_name)
|
|
152
|
+
self.addElement(desc)
|
|
153
|
+
return self.getElement(short_name)
|
|
154
|
+
|
|
155
|
+
def createBswModuleEntry(self, short_name: str) -> BswModuleEntry:
|
|
156
|
+
if (short_name not in self.elements):
|
|
157
|
+
entry = BswModuleEntry(self, short_name)
|
|
158
|
+
self.addElement(entry)
|
|
159
|
+
return self.getElement(short_name)
|
|
160
|
+
|
|
161
|
+
def createBswImplementation(self, short_name: str) -> BswImplementation:
|
|
162
|
+
if (short_name not in self.elements):
|
|
163
|
+
impl = BswImplementation(self, short_name)
|
|
164
|
+
self.addElement(impl)
|
|
165
|
+
return self.getElement(short_name)
|
|
166
|
+
|
|
167
|
+
def createSwcImplementation(self, short_name: str) -> SwcImplementation:
|
|
168
|
+
if (short_name not in self.elements):
|
|
169
|
+
impl = SwcImplementation(self, short_name)
|
|
170
|
+
self.addElement(impl)
|
|
171
|
+
return self.getElement(short_name)
|
|
172
|
+
|
|
173
|
+
def createSwcBswMapping(self, short_name: str) -> SwcBswMapping:
|
|
174
|
+
if (short_name not in self.elements):
|
|
175
|
+
mapping = SwcBswMapping(self, short_name)
|
|
176
|
+
self.addElement(mapping)
|
|
177
|
+
return self.getElement(short_name)
|
|
178
|
+
|
|
179
|
+
def createConstantSpecification(self, short_name: str) -> ConstantSpecification:
|
|
180
|
+
if (short_name not in self.elements):
|
|
181
|
+
spec = ConstantSpecification(self, short_name)
|
|
182
|
+
self.addElement(spec)
|
|
183
|
+
return self.getElement(short_name)
|
|
184
|
+
|
|
185
|
+
def createDataConstr(self, short_name: str) -> DataConstr:
|
|
186
|
+
if (short_name not in self.elements):
|
|
187
|
+
constr = DataConstr(self, short_name)
|
|
188
|
+
self.addElement(constr)
|
|
189
|
+
return self.getElement(short_name)
|
|
190
|
+
|
|
191
|
+
def createUnit(self, short_name: str) -> Unit:
|
|
192
|
+
if (short_name not in self.elements):
|
|
193
|
+
unit = Unit(self, short_name)
|
|
194
|
+
self.addElement(unit)
|
|
195
|
+
return self.getElement(short_name)
|
|
196
|
+
|
|
197
|
+
def createEndToEndProtectionSet(self, short_name: str) -> EndToEndProtectionSet:
|
|
198
|
+
if (short_name not in self.elements):
|
|
199
|
+
e2d_set = EndToEndProtectionSet(self, short_name)
|
|
200
|
+
self.addElement(e2d_set)
|
|
201
|
+
return self.getElement(short_name)
|
|
202
|
+
|
|
203
|
+
def createApplicationArrayDataType(self, short_name: str) -> ApplicationArrayDataType:
|
|
204
|
+
if (short_name not in self.elements):
|
|
205
|
+
data_type = ApplicationArrayDataType(self, short_name)
|
|
206
|
+
self.addElement(data_type)
|
|
207
|
+
return self.getElement(short_name)
|
|
208
|
+
|
|
209
|
+
def createSwRecordLayout(self, short_name: str) -> SwRecordLayout:
|
|
210
|
+
if (short_name not in self.elements):
|
|
211
|
+
layout = SwRecordLayout(self, short_name)
|
|
212
|
+
self.addElement(layout)
|
|
213
|
+
return self.getElement(short_name)
|
|
214
|
+
|
|
215
|
+
def createSwAddrMethod(self, short_name: str) -> SwAddrMethod:
|
|
216
|
+
if (short_name not in self.elements):
|
|
217
|
+
method = SwAddrMethod(self, short_name)
|
|
218
|
+
self.addElement(method)
|
|
219
|
+
return self.getElement(short_name)
|
|
220
|
+
|
|
221
|
+
def createTriggerInterface(self, short_name: str) -> TriggerInterface:
|
|
222
|
+
if (short_name not in self.elements):
|
|
223
|
+
trigger_interface = TriggerInterface(self, short_name)
|
|
224
|
+
self.addElement(trigger_interface)
|
|
225
|
+
return trigger_interface
|
|
226
|
+
|
|
227
|
+
def createModeDeclarationGroup(self, short_name: str) -> ModeDeclarationGroup:
|
|
228
|
+
if (short_name not in self.elements):
|
|
229
|
+
group = ModeDeclarationGroup(self, short_name)
|
|
230
|
+
self.addElement(group)
|
|
231
|
+
return self.getElement(short_name)
|
|
232
|
+
|
|
233
|
+
def createModeSwitchInterface(self, short_name: str) -> ModeSwitchInterface:
|
|
234
|
+
if (short_name not in self.elements):
|
|
235
|
+
switch_interface = ModeSwitchInterface(self, short_name)
|
|
236
|
+
self.addElement(switch_interface)
|
|
237
|
+
return self.getElement(short_name)
|
|
238
|
+
|
|
239
|
+
def createSwcTiming(self, short_name: str) -> SwcTiming:
|
|
240
|
+
if (short_name not in self.elements):
|
|
241
|
+
timing = SwcTiming(self, short_name)
|
|
242
|
+
self.addElement(timing)
|
|
243
|
+
return self.getElement(short_name)
|
|
244
|
+
|
|
245
|
+
def createLinCluster(self, short_name: str) -> LinCluster:
|
|
246
|
+
if (short_name not in self.elements):
|
|
247
|
+
cluster = LinCluster(self, short_name)
|
|
248
|
+
self.addElement(cluster)
|
|
249
|
+
return self.getElement(short_name)
|
|
250
|
+
|
|
251
|
+
def createCanCluster(self, short_name: str) -> CanCluster:
|
|
252
|
+
if (short_name not in self.elements):
|
|
253
|
+
cluster = CanCluster(self, short_name)
|
|
254
|
+
self.addElement(cluster)
|
|
255
|
+
return self.getElement(short_name)
|
|
256
|
+
|
|
257
|
+
def createLinUnconditionalFrame(self, short_name: str) -> LinUnconditionalFrame:
|
|
258
|
+
if (short_name not in self.elements):
|
|
259
|
+
frame = LinUnconditionalFrame(self, short_name)
|
|
260
|
+
self.addElement(frame)
|
|
261
|
+
return self.getElement(short_name)
|
|
262
|
+
|
|
263
|
+
def createNmPdu(self, short_name: str) -> NmPdu:
|
|
264
|
+
if (short_name not in self.elements):
|
|
265
|
+
element = NmPdu(self, short_name)
|
|
266
|
+
self.addElement(element)
|
|
267
|
+
return self.getElement(short_name)
|
|
268
|
+
|
|
269
|
+
def createNPdu(self, short_name: str) -> NPdu:
|
|
270
|
+
if (short_name not in self.elements):
|
|
271
|
+
element = NPdu(self, short_name)
|
|
272
|
+
self.addElement(element)
|
|
273
|
+
return self.getElement(short_name)
|
|
274
|
+
|
|
275
|
+
def createDcmIPdu(self, short_name: str) -> DcmIPdu:
|
|
276
|
+
if (short_name not in self.elements):
|
|
277
|
+
element = DcmIPdu(self, short_name)
|
|
278
|
+
self.addElement(element)
|
|
279
|
+
return self.getElement(short_name)
|
|
280
|
+
|
|
281
|
+
def createSecuredIPdu(self, short_name: str) -> SecuredIPdu:
|
|
282
|
+
if (short_name not in self.elements):
|
|
283
|
+
element = SecuredIPdu(self, short_name)
|
|
284
|
+
self.addElement(element)
|
|
285
|
+
return self.getElement(short_name)
|
|
286
|
+
|
|
287
|
+
def createNmConfig(self, short_name: str) -> NmConfig:
|
|
288
|
+
if (short_name not in self.elements):
|
|
289
|
+
element = NmConfig(self, short_name)
|
|
290
|
+
self.addElement(element)
|
|
291
|
+
return self.getElement(short_name)
|
|
292
|
+
|
|
293
|
+
def createCanTpConfig(self, short_name: str) -> CanTpConfig:
|
|
294
|
+
if (short_name not in self.elements):
|
|
295
|
+
element = CanTpConfig(self, short_name)
|
|
296
|
+
self.addElement(element)
|
|
297
|
+
return self.getElement(short_name)
|
|
298
|
+
|
|
299
|
+
def createCanFrame(self, short_name: str) -> CanFrame:
|
|
300
|
+
if (short_name not in self.elements):
|
|
301
|
+
element = CanFrame(self, short_name)
|
|
302
|
+
self.addElement(element)
|
|
303
|
+
return self.getElement(short_name)
|
|
304
|
+
|
|
305
|
+
def createEcuInstance(self, short_name: str) -> EcuInstance:
|
|
306
|
+
if (short_name not in self.elements):
|
|
307
|
+
element = EcuInstance(self, short_name)
|
|
308
|
+
self.addElement(element)
|
|
309
|
+
return self.getElement(short_name)
|
|
310
|
+
|
|
311
|
+
def createGateway(self, short_name: str) -> Gateway:
|
|
312
|
+
if (short_name not in self.elements):
|
|
313
|
+
element = Gateway(self, short_name)
|
|
314
|
+
self.addElement(element)
|
|
315
|
+
return self.getElement(short_name)
|
|
316
|
+
|
|
317
|
+
def createISignal(self, short_name: str) -> ISignal:
|
|
318
|
+
if (short_name not in self.elements):
|
|
319
|
+
element = ISignal(self, short_name)
|
|
320
|
+
self.addElement(element)
|
|
321
|
+
return self.getElement(short_name)
|
|
322
|
+
|
|
323
|
+
def createSystemSignal(self, short_name: str) -> SystemSignal:
|
|
324
|
+
if (short_name not in self.elements):
|
|
325
|
+
element = SystemSignal(self, short_name)
|
|
326
|
+
self.addElement(element)
|
|
327
|
+
return self.getElement(short_name)
|
|
328
|
+
|
|
329
|
+
def createSystemSignalGroup(self, short_name: str) -> SystemSignalGroup:
|
|
330
|
+
if (short_name not in self.elements):
|
|
331
|
+
element = SystemSignalGroup(self, short_name)
|
|
332
|
+
self.addElement(element)
|
|
333
|
+
return self.getElement(short_name)
|
|
334
|
+
|
|
335
|
+
def createISignalIPdu(self, short_name: str) -> ISignalIPdu:
|
|
336
|
+
if (short_name not in self.elements):
|
|
337
|
+
element = ISignalIPdu(self, short_name)
|
|
338
|
+
self.addElement(element)
|
|
339
|
+
return self.getElement(short_name)
|
|
340
|
+
|
|
341
|
+
def createEcucValueCollection(self, short_name: str) -> EcucValueCollection:
|
|
342
|
+
if (short_name not in self.elements):
|
|
343
|
+
element = EcucValueCollection(self, short_name)
|
|
344
|
+
self.addElement(element)
|
|
345
|
+
return self.getElement(short_name)
|
|
346
|
+
|
|
347
|
+
def createEcucModuleConfigurationValues(self, short_name: str) -> EcucModuleConfigurationValues:
|
|
348
|
+
if (short_name not in self.elements):
|
|
349
|
+
element = EcucModuleConfigurationValues(self, short_name)
|
|
350
|
+
self.addElement(element)
|
|
351
|
+
return self.getElement(short_name)
|
|
352
|
+
|
|
353
|
+
def createPhysicalDimension(self, short_name: str) -> PhysicalDimension:
|
|
354
|
+
if (short_name not in self.elements):
|
|
355
|
+
element = PhysicalDimension(self, short_name)
|
|
356
|
+
self.addElement(element)
|
|
357
|
+
return self.getElement(short_name)
|
|
358
|
+
|
|
359
|
+
def createISignalGroup(self, short_name: str) -> ISignalGroup:
|
|
360
|
+
if (short_name not in self.elements):
|
|
361
|
+
element = ISignalGroup(self, short_name)
|
|
362
|
+
self.addElement(element)
|
|
363
|
+
return self.getElement(short_name)
|
|
364
|
+
|
|
365
|
+
def createISignalIPduGroup(self, short_name: str) -> ISignalIPduGroup:
|
|
366
|
+
if (short_name not in self.elements):
|
|
367
|
+
element = ISignalIPduGroup(self, short_name)
|
|
368
|
+
self.addElement(element)
|
|
369
|
+
return self.getElement(short_name)
|
|
370
|
+
|
|
371
|
+
def createSystem(self, short_name: str) -> System:
|
|
372
|
+
if (short_name not in self.elements):
|
|
373
|
+
element = System(self, short_name)
|
|
374
|
+
self.addElement(element)
|
|
375
|
+
return self.getElement(short_name)
|
|
376
|
+
|
|
377
|
+
def getApplicationPrimitiveDataTypes(self) -> List[ApplicationPrimitiveDataType]:
|
|
378
|
+
return list(sorted(filter(lambda a: isinstance(a, ApplicationPrimitiveDataType), self.elements.values()), key= lambda o:o.short_name))
|
|
379
|
+
|
|
380
|
+
def getApplicationDataType(self) -> List[ApplicationDataType]:
|
|
381
|
+
return list(sorted(filter(lambda a: isinstance(a, ApplicationDataType), self.elements.values()), key= lambda o:o.short_name))
|
|
382
|
+
|
|
383
|
+
def getImplementationDataTypes(self) -> List[ImplementationDataType]:
|
|
384
|
+
return list(sorted(filter(lambda a: isinstance(a, ImplementationDataType), self.elements.values()), key= lambda o:o.short_name))
|
|
385
|
+
|
|
386
|
+
def getSwBaseTypes(self) -> List[SwBaseType]:
|
|
387
|
+
return list(filter(lambda a: isinstance(a, SwBaseType), self.elements.values()))
|
|
388
|
+
|
|
389
|
+
def getSwComponentTypes(self) -> List[SwComponentType]:
|
|
390
|
+
return list(filter(lambda a : isinstance(a, SwComponentType), self.elements.values()))
|
|
391
|
+
|
|
392
|
+
def getSensorActuatorSwComponentType(self) -> List[SensorActuatorSwComponentType]:
|
|
393
|
+
return list(filter(lambda a : isinstance(a, SensorActuatorSwComponentType), self.elements.values()))
|
|
394
|
+
|
|
395
|
+
def getAtomicSwComponentTypes(self) -> List[AtomicSwComponentType]:
|
|
396
|
+
return list(filter(lambda a : isinstance(a, AtomicSwComponentType), self.elements.values()))
|
|
397
|
+
|
|
398
|
+
def getCompositionSwComponentTypes(self) -> List[CompositionSwComponentType]:
|
|
399
|
+
return list(filter(lambda a : isinstance(a, CompositionSwComponentType), self.elements.values()))
|
|
400
|
+
|
|
401
|
+
def getComplexDeviceDriverSwComponentTypes(self) -> List[ComplexDeviceDriverSwComponentType]:
|
|
402
|
+
return list(sorted(filter(lambda a : isinstance(a, ComplexDeviceDriverSwComponentType), self.elements.values()), key = lambda a: a.short_name))
|
|
403
|
+
|
|
404
|
+
def getSenderReceiverInterfaces(self) -> List[SenderReceiverInterface]:
|
|
405
|
+
return list(sorted(filter(lambda a : isinstance(a, SenderReceiverInterface), self.elements.values()), key = lambda a: a.short_name))
|
|
406
|
+
|
|
407
|
+
def getParameterInterfaces(self) -> List[ParameterInterface]:
|
|
408
|
+
return list(sorted(filter(lambda a : isinstance(a, ParameterInterface), self.elements.values()), key = lambda a: a.short_name))
|
|
409
|
+
|
|
410
|
+
def getClientServerInterfaces(self) -> List[ClientServerInterface]:
|
|
411
|
+
return list(sorted(filter(lambda a : isinstance(a, ClientServerInterface), self.elements.values()), key = lambda a: a.short_name))
|
|
412
|
+
|
|
413
|
+
def getDataTypeMappingSets(self) -> List[DataTypeMappingSet]:
|
|
414
|
+
return list(sorted(filter(lambda a : isinstance(a, DataTypeMappingSet), self.elements.values()), key = lambda a: a.short_name))
|
|
415
|
+
|
|
416
|
+
def getCompuMethods(self) -> List[CompuMethod]:
|
|
417
|
+
return list(filter(lambda a: isinstance(a, CompuMethod), self.elements.values()))
|
|
418
|
+
|
|
419
|
+
def getBswModuleDescriptions(self) -> List[BswModuleDescription]:
|
|
420
|
+
return list(filter(lambda a: isinstance(a, BswModuleDescription), self.elements.values()))
|
|
421
|
+
|
|
422
|
+
def getBswModuleEntries(self) -> List[BswModuleEntry]:
|
|
423
|
+
return list(filter(lambda a: isinstance(a, BswModuleEntry), self.elements.values()))
|
|
424
|
+
|
|
425
|
+
def getBswImplementations(self) -> List[BswImplementation]:
|
|
426
|
+
return list(filter(lambda a: isinstance(a, BswImplementation), self.elements.values()))
|
|
427
|
+
|
|
428
|
+
def getSwcImplementations(self) -> List[SwcImplementation]:
|
|
429
|
+
return list(filter(lambda a: isinstance(a, SwcImplementation), self.elements.values()))
|
|
430
|
+
|
|
431
|
+
def getImplementations(self) -> List[Implementation]:
|
|
432
|
+
return list(filter(lambda a: isinstance(a, Implementation), self.elements.values()))
|
|
433
|
+
|
|
434
|
+
def getSwcBswMappings(self) -> List[SwcBswMapping]:
|
|
435
|
+
return list(filter(lambda a: isinstance(a, SwcBswMapping), self.elements.values()))
|
|
436
|
+
|
|
437
|
+
def getConstantSpecifications(self) -> List[ConstantSpecification]:
|
|
438
|
+
return list(filter(lambda a: isinstance(a, ConstantSpecification), self.elements.values()))
|
|
439
|
+
|
|
440
|
+
def getDataConstrs(self) -> List[DataConstr]:
|
|
441
|
+
return list(filter(lambda a: isinstance(a, DataConstr), self.elements.values()))
|
|
442
|
+
|
|
443
|
+
def getUnits(self) -> List[Unit]:
|
|
444
|
+
return list(filter(lambda a: isinstance(a, Unit), self.elements.values()))
|
|
445
|
+
|
|
446
|
+
def getApplicationArrayDataTypes(self) -> List[ApplicationArrayDataType]:
|
|
447
|
+
return list(sorted(filter(lambda a : isinstance(a, ApplicationArrayDataType), self.elements.values()), key = lambda a: a.short_name))
|
|
448
|
+
|
|
449
|
+
def getSwRecordLayouts(self) -> List[SwRecordLayout]:
|
|
450
|
+
return list(sorted(filter(lambda a : isinstance(a, SwRecordLayout), self.elements.values()), key = lambda a: a.short_name))
|
|
451
|
+
|
|
452
|
+
def getSwAddrMethods(self) -> List[SwAddrMethod]:
|
|
453
|
+
return list(sorted(filter(lambda a : isinstance(a, SwAddrMethod), self.elements.values()), key = lambda a: a.short_name))
|
|
454
|
+
|
|
455
|
+
def getTriggerInterfaces(self) -> List[TriggerInterface]:
|
|
456
|
+
return list(sorted(filter(lambda a : isinstance(a, TriggerInterface), self.elements.values()), key = lambda a: a.short_name))
|
|
457
|
+
|
|
458
|
+
def getModeDeclarationGroups(self) -> List[ModeDeclarationGroup]:
|
|
459
|
+
return list(sorted(filter(lambda a : isinstance(a, ModeDeclarationGroup), self.elements.values()), key = lambda a: a.short_name))
|
|
460
|
+
|
|
461
|
+
def getModeSwitchInterfaces(self) -> List[ModeSwitchInterface]:
|
|
462
|
+
return list(sorted(filter(lambda a : isinstance(a, ModeSwitchInterface), self.elements.values()), key = lambda a: a.short_name))
|
|
463
|
+
|
|
464
|
+
def getSwcTimings(self) -> List[SwcTiming]:
|
|
465
|
+
return list(sorted(filter(lambda a : isinstance(a, SwcTiming), self.elements.values()), key = lambda a: a.short_name))
|
|
466
|
+
|
|
467
|
+
def getLinClusters(self) -> List[LinCluster]:
|
|
468
|
+
return list(sorted(filter(lambda a : isinstance(a, LinCluster), self.elements.values()), key = lambda a: a.short_name))
|
|
469
|
+
|
|
470
|
+
def getCanClusters(self) -> List[CanCluster]:
|
|
471
|
+
return list(sorted(filter(lambda a : isinstance(a, CanCluster), self.elements.values()), key = lambda a: a.short_name))
|
|
472
|
+
|
|
473
|
+
def getLinUnconditionalFrames(self) -> List[LinUnconditionalFrame]:
|
|
474
|
+
return list(sorted(filter(lambda a : isinstance(a, LinUnconditionalFrame), self.elements.values()), key = lambda a: a.short_name))
|
|
475
|
+
|
|
476
|
+
def getNmPdus(self) -> List[NmPdu]:
|
|
477
|
+
return list(sorted(filter(lambda a : isinstance(a, NmPdu), self.elements.values()), key = lambda a: a.short_name))
|
|
478
|
+
|
|
479
|
+
def getNPdus(self) -> List[NPdu]:
|
|
480
|
+
return list(sorted(filter(lambda a : isinstance(a, NPdu), self.elements.values()), key = lambda a: a.short_name))
|
|
481
|
+
|
|
482
|
+
def getDcmIPdus(self) -> List[DcmIPdu]:
|
|
483
|
+
return list(sorted(filter(lambda a : isinstance(a, DcmIPdu), self.elements.values()), key = lambda a: a.short_name))
|
|
484
|
+
|
|
485
|
+
def getSecuredIPdus(self) -> List[SecuredIPdu]:
|
|
486
|
+
return list(sorted(filter(lambda a : isinstance(a, SecuredIPdu), self.elements.values()), key = lambda a: a.short_name))
|
|
487
|
+
|
|
488
|
+
def getNmConfigs(self) -> List[NmConfig]:
|
|
489
|
+
return list(sorted(filter(lambda a : isinstance(a, NmConfig), self.elements.values()), key = lambda a: a.short_name))
|
|
490
|
+
|
|
491
|
+
def getCanTpConfigs(self) -> List[CanTpConfig]:
|
|
492
|
+
return list(sorted(filter(lambda a : isinstance(a, CanTpConfig), self.elements.values()), key = lambda a: a.short_name))
|
|
493
|
+
|
|
494
|
+
def getCanFrames(self) -> List[CanFrame]:
|
|
495
|
+
return list(sorted(filter(lambda a : isinstance(a, CanFrame), self.elements.values()), key = lambda a: a.short_name))
|
|
496
|
+
|
|
497
|
+
def getEcuInstances(self) -> List[EcuInstance]:
|
|
498
|
+
return list(sorted(filter(lambda a : isinstance(a, EcuInstance), self.elements.values()), key = lambda a: a.short_name))
|
|
499
|
+
|
|
500
|
+
def getGateways(self) -> List[Gateway]:
|
|
501
|
+
return list(sorted(filter(lambda a : isinstance(a, Gateway), self.elements.values()), key = lambda a: a.short_name))
|
|
502
|
+
|
|
503
|
+
def getISignals(self) -> List[ISignal]:
|
|
504
|
+
return list(sorted(filter(lambda a : isinstance(a, ISignal), self.elements.values()), key = lambda a: a.short_name))
|
|
505
|
+
|
|
506
|
+
def getEcucValueCollections(self) -> List[EcucValueCollection]:
|
|
507
|
+
return list(sorted(filter(lambda a : isinstance(a, EcucValueCollection), self.elements.values()), key = lambda a: a.short_name))
|
|
508
|
+
|
|
509
|
+
def getEcucModuleConfigurationValues(self) -> List[EcucModuleConfigurationValues]:
|
|
510
|
+
return list(sorted(filter(lambda a : isinstance(a, EcucModuleConfigurationValues), self.elements.values()), key = lambda a: a.short_name))
|
|
511
|
+
|
|
512
|
+
def getEcucModuleConfigurationValues(self) -> List[PhysicalDimension]:
|
|
513
|
+
return list(sorted(filter(lambda a : isinstance(a, PhysicalDimension), self.elements.values()), key = lambda a: a.short_name))
|
|
514
|
+
|
|
515
|
+
def getISignalGroups(self) -> List[ISignalGroup]:
|
|
516
|
+
return list(sorted(filter(lambda a : isinstance(a, ISignalGroup), self.elements.values()), key = lambda a: a.short_name))
|
|
517
|
+
|
|
518
|
+
def getSystemSignals(self) -> List[SystemSignal]:
|
|
519
|
+
return list(sorted(filter(lambda a : isinstance(a, SystemSignal), self.elements.values()), key = lambda a: a.short_name))
|
|
520
|
+
|
|
521
|
+
def getSystemSignalGroups(self) -> List[SystemSignalGroup]:
|
|
522
|
+
return list(sorted(filter(lambda a : isinstance(a, SystemSignalGroup), self.elements.values()), key = lambda a: a.short_name))
|
|
523
|
+
|
|
524
|
+
def getISignalIPdus(self) -> List[ISignalIPdu]:
|
|
525
|
+
return list(sorted(filter(lambda a : isinstance(a, ISignalIPdu), self.elements.values()), key = lambda a: a.short_name))
|
|
526
|
+
|
|
527
|
+
def getSystems(self) -> List[System]:
|
|
528
|
+
return list(sorted(filter(lambda a : isinstance(a, System), self.elements.values()), key = lambda a: a.short_name))
|
|
@@ -149,6 +149,22 @@ class ParameterRequireComSpec(RPortComSpec):
|
|
|
149
149
|
def __init__(self):
|
|
150
150
|
super().__init__()
|
|
151
151
|
|
|
152
|
+
self.initValue = None # type: ValueSpecification
|
|
153
|
+
self.parameterRef = None # type: RefType
|
|
154
|
+
|
|
155
|
+
def getInitValue(self):
|
|
156
|
+
return self.initValue
|
|
157
|
+
|
|
158
|
+
def setInitValue(self, value):
|
|
159
|
+
self.initValue = value
|
|
160
|
+
return self
|
|
161
|
+
|
|
162
|
+
def getParameterRef(self):
|
|
163
|
+
return self.parameterRef
|
|
164
|
+
|
|
165
|
+
def setParameterRef(self, value):
|
|
166
|
+
self.parameterRef = value
|
|
167
|
+
return self
|
|
152
168
|
|
|
153
169
|
class ReceiverComSpec(RPortComSpec):
|
|
154
170
|
__metaclass__ = ABCMeta
|
|
@@ -162,6 +178,34 @@ class ReceiverComSpec(RPortComSpec):
|
|
|
162
178
|
self.handleOutOfRange = None # type: ARLiteral
|
|
163
179
|
self.usesEndToEndProtection = None # type: ARBoolean
|
|
164
180
|
|
|
181
|
+
def getDataElementRef(self):
|
|
182
|
+
return self.dataElementRef
|
|
183
|
+
|
|
184
|
+
def setDataElementRef(self, value):
|
|
185
|
+
self.dataElementRef = value
|
|
186
|
+
return self
|
|
187
|
+
|
|
188
|
+
def getNetworkRepresentation(self):
|
|
189
|
+
return self.networkRepresentation
|
|
190
|
+
|
|
191
|
+
def setNetworkRepresentation(self, value):
|
|
192
|
+
self.networkRepresentation = value
|
|
193
|
+
return self
|
|
194
|
+
|
|
195
|
+
def getHandleOutOfRange(self):
|
|
196
|
+
return self.handleOutOfRange
|
|
197
|
+
|
|
198
|
+
def setHandleOutOfRange(self, value):
|
|
199
|
+
self.handleOutOfRange = value
|
|
200
|
+
return self
|
|
201
|
+
|
|
202
|
+
def getUsesEndToEndProtection(self):
|
|
203
|
+
return self.usesEndToEndProtection
|
|
204
|
+
|
|
205
|
+
def setUsesEndToEndProtection(self, value):
|
|
206
|
+
self.usesEndToEndProtection = value
|
|
207
|
+
return self
|
|
208
|
+
|
|
165
209
|
def addCompositeNetworkRepresentation(self, representation: CompositeNetworkRepresentation):
|
|
166
210
|
self.compositeNetworkRepresentations.append(representation)
|
|
167
211
|
|