armodel 1.5.0__py3-none-any.whl → 1.6.1__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 (96) hide show
  1. armodel/cli/arxml_dump_cli.py +13 -13
  2. armodel/cli/memory_section_cli.py +76 -0
  3. armodel/cli/system_signal_cli.py +74 -0
  4. armodel/data_models/sw_connector.py +3 -3
  5. armodel/lib/__init__.py +2 -1
  6. armodel/lib/system_signal.py +37 -0
  7. armodel/models/__init__.py +9 -4
  8. armodel/models/annotation.py +27 -3
  9. armodel/models/ar_object.py +18 -6
  10. armodel/models/ar_package.py +271 -127
  11. armodel/models/ar_ref.py +11 -166
  12. armodel/models/bsw_module_template.py +37 -14
  13. armodel/models/common_structure.py +91 -174
  14. armodel/models/communication.py +2 -2
  15. armodel/models/data_prototype.py +41 -6
  16. armodel/models/datatype.py +16 -74
  17. armodel/models/end_to_end_protection.py +1 -1
  18. armodel/models/fibex/can_communication.py +119 -3
  19. armodel/models/fibex/fibex_4_can/__init__.py +0 -0
  20. armodel/models/fibex/fibex_4_lin/__init__.py +0 -0
  21. armodel/models/fibex/fibex_4_multiplatform.py +81 -88
  22. armodel/models/fibex/fibex_core/__init__.py +0 -0
  23. armodel/models/fibex/fibex_core/core_communication.py +627 -0
  24. armodel/models/fibex/fibex_core/core_topology.py +180 -0
  25. armodel/models/fibex/lin_communication.py +24 -3
  26. armodel/models/general_structure.py +110 -11
  27. armodel/models/internal_behavior.py +1 -1
  28. armodel/models/m2/__init__.py +0 -0
  29. armodel/models/m2/autosar_templates/__init__.py +0 -0
  30. armodel/models/m2/autosar_templates/common_structure/__init__.py +188 -0
  31. armodel/models/m2/autosar_templates/common_structure/constants.py +0 -0
  32. armodel/models/m2/autosar_templates/common_structure/implementation.py +21 -0
  33. armodel/models/m2/autosar_templates/common_structure/implementation_data_types.py +148 -0
  34. armodel/models/m2/autosar_templates/ecuc_description_template.py +269 -0
  35. armodel/models/m2/autosar_templates/generic_structure/__init__.py +0 -0
  36. armodel/models/m2/autosar_templates/generic_structure/abstract_structure.py +69 -0
  37. armodel/models/m2/autosar_templates/sw_component_template/__init__.py +0 -0
  38. armodel/models/m2/autosar_templates/sw_component_template/communication.py +360 -0
  39. armodel/models/m2/autosar_templates/sw_component_template/components/__init__.py +246 -0
  40. armodel/models/m2/autosar_templates/sw_component_template/components/instance_refs.py +181 -0
  41. armodel/models/m2/autosar_templates/sw_component_template/composition/__init__.py +154 -0
  42. armodel/models/m2/autosar_templates/sw_component_template/composition/instance_refs.py +157 -0
  43. armodel/models/m2/autosar_templates/sw_component_template/data_type/__init__.py +0 -0
  44. armodel/models/m2/autosar_templates/sw_component_template/data_type/data_prototypes.py +104 -0
  45. armodel/models/m2/autosar_templates/sw_component_template/port_interface/__init__.py +243 -0
  46. armodel/models/m2/autosar_templates/sw_component_template/port_interface/instance_refs.py +39 -0
  47. armodel/models/m2/autosar_templates/sw_component_template/port_interface.py +236 -0
  48. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/__init__.py +203 -0
  49. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/access_count.py +13 -0
  50. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py +46 -0
  51. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/instance_refs_usage.py +169 -0
  52. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py +38 -0
  53. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py +27 -0
  54. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/trigger.py +10 -0
  55. armodel/models/m2/autosar_templates/system_template/__init__.py +321 -0
  56. armodel/models/m2/autosar_templates/system_template/data_mapping.py +88 -0
  57. armodel/models/m2/autosar_templates/system_template/instance_refs.py +48 -0
  58. armodel/models/m2/autosar_templates/system_template/network_management.py +554 -0
  59. armodel/models/m2/autosar_templates/system_template/transport_protocols.py +7 -0
  60. armodel/models/m2/msr/__init__.py +0 -0
  61. armodel/models/m2/msr/asam_hdo/__init__.py +0 -0
  62. armodel/models/m2/msr/asam_hdo/units.py +105 -0
  63. armodel/models/m2/msr/data_dictionary/__init__.py +0 -0
  64. armodel/models/m2/msr/data_dictionary/auxillary_objects.py +42 -0
  65. armodel/models/m2/msr/data_dictionary/data_def_properties.py +295 -0
  66. armodel/models/m2/msr/documentation/__init__.py +0 -0
  67. armodel/models/m2/msr/documentation/block_elements.py +18 -0
  68. armodel/models/m2_msr.py +1 -0
  69. armodel/models/multilanguage_data.py +15 -0
  70. armodel/models/per_instance_memory.py +34 -6
  71. armodel/models/port_prototype.py +2 -253
  72. armodel/models/service_needs.py +3 -1
  73. armodel/models/sw_component.py +19 -358
  74. armodel/parser/__init__.py +2 -1
  75. armodel/parser/abstract_arxml_parser.py +10 -1
  76. armodel/parser/arxml_parser.py +912 -229
  77. armodel/parser/file_parser.py +43 -0
  78. armodel/tests/test_armodel/models/test_ar_package.py +6 -3
  79. armodel/tests/test_armodel/models/test_ar_ref.py +18 -16
  80. armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -5
  81. armodel/tests/test_armodel/models/test_common_structure.py +8 -7
  82. armodel/tests/test_armodel/models/test_data_dictionary.py +5 -5
  83. armodel/tests/test_armodel/models/test_data_prototype.py +2 -2
  84. armodel/tests/test_armodel/models/test_datatype.py +9 -9
  85. armodel/tests/test_armodel/models/test_port_interface.py +2 -2
  86. armodel/tests/test_armodel/parser/test_parse_bswmd.py +3 -3
  87. armodel/tests/test_armodel/parser/test_sw_components.py +3 -3
  88. armodel/writer/abstract_arxml_writer.py +5 -1
  89. armodel/writer/arxml_writer.py +870 -224
  90. {armodel-1.5.0.dist-info → armodel-1.6.1.dist-info}/METADATA +28 -1
  91. armodel-1.6.1.dist-info/RECORD +140 -0
  92. {armodel-1.5.0.dist-info → armodel-1.6.1.dist-info}/entry_points.txt +3 -1
  93. armodel-1.5.0.dist-info/RECORD +0 -91
  94. {armodel-1.5.0.dist-info → armodel-1.6.1.dist-info}/LICENSE +0 -0
  95. {armodel-1.5.0.dist-info → armodel-1.6.1.dist-info}/WHEEL +0 -0
  96. {armodel-1.5.0.dist-info → armodel-1.6.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,321 @@
1
+
2
+ from typing import List
3
+
4
+ from ....ar_ref import RefType
5
+ from ....general_structure import ARElement, Identifiable
6
+
7
+ class SystemMapping(Identifiable):
8
+ def __init__(self, parent, short_name):
9
+ super().__init__(parent, short_name)
10
+
11
+ self.applicationPartitionToEcuPartitionMappings = []
12
+ self.appOsTaskProxyToEcuTaskProxyMappings = []
13
+ self.comManagementMappings = []
14
+ self.cryptoServiceMappings = []
15
+ self.dataMappings = []
16
+ self.ddsISignalToTopicMappings = []
17
+ self.ecuResourceMappings = []
18
+ self.j1939ControllerApplicationToJ1939NmNodeMappings = []
19
+ self.mappingConstraints = []
20
+ self.pncMappings = []
21
+ self.portElementToComResourceMappings = []
22
+ self.resourceEstimations = []
23
+ self.resourceToApplicationPartitionMappings = []
24
+ self.rteEventSeparations = []
25
+ self.rteEventToOsTaskProxyMappings = []
26
+ self.signalPathConstraints = []
27
+ self.softwareClusterToApplicationPartitionMappings = []
28
+ self.softwareClusterToResourceMappings = []
29
+ self.swClusterMappings = []
30
+ self.swcToApplicationPartitionMappings = []
31
+ self.swImplMappings = []
32
+ self.swMappings = []
33
+ self.systemSignalGroupToComResourceMappings = []
34
+ self.systemSignalToComResourceMappings = []
35
+
36
+ def getApplicationPartitionToEcuPartitionMappings(self):
37
+ return self.applicationPartitionToEcuPartitionMappings
38
+
39
+ def addApplicationPartitionToEcuPartitionMapping(self, value):
40
+ self.applicationPartitionToEcuPartitionMappings.append(value)
41
+ return self
42
+
43
+ def getAppOsTaskProxyToEcuTaskProxyMappings(self):
44
+ return self.appOsTaskProxyToEcuTaskProxyMappings
45
+
46
+ def addAppOsTaskProxyToEcuTaskProxyMapping(self, value):
47
+ self.appOsTaskProxyToEcuTaskProxyMappings.append(value)
48
+ return self
49
+
50
+ def getComManagementMappings(self):
51
+ return self.comManagementMappings
52
+
53
+ def addComManagementMapping(self, value):
54
+ self.comManagementMappings.append(value)
55
+ return self
56
+
57
+ def getCryptoServiceMappings(self):
58
+ return self.cryptoServiceMappings
59
+
60
+ def addCryptoServiceMapping(self, value):
61
+ self.cryptoServiceMappings.append(value)
62
+ return self
63
+
64
+ def getDataMappings(self):
65
+ return self.dataMappings
66
+
67
+ def addDataMapping(self, value):
68
+ self.dataMappings.append(value)
69
+ return self
70
+
71
+ def getDdsISignalToTopicMapping(self):
72
+ return self.ddsISignalToTopicMappings
73
+
74
+ def addDdsISignalToTopicMapping(self, value):
75
+ self.ddsISignalToTopicMappings.append(value)
76
+ return self
77
+
78
+ def getEcuResourceMappings(self):
79
+ return self.ecuResourceMappings
80
+
81
+ def addEcuResourceMapping(self, value):
82
+ self.ecuResourceMappings.append(value)
83
+ return self
84
+
85
+ def getJ1939ControllerApplicationToJ1939NmNodeMappings(self):
86
+ return self.j1939ControllerApplicationToJ1939NmNodeMappings
87
+
88
+ def addJ1939ControllerApplicationToJ1939NmNodeMapping(self, value):
89
+ self.j1939ControllerApplicationToJ1939NmNodeMappings.append(value)
90
+ return self
91
+
92
+ def getMappingConstraints(self):
93
+ return self.mappingConstraints
94
+
95
+ def addMappingConstraint(self, value):
96
+ self.mappingConstraints.append(value)
97
+ return self
98
+
99
+ def getPncMappings(self):
100
+ return self.pncMappings
101
+
102
+ def addPncMapping(self, value):
103
+ self.pncMappings.append(value)
104
+ return self
105
+
106
+ def getPortElementToComResourceMappings(self):
107
+ return self.portElementToComResourceMappings
108
+
109
+ def addPortElementToComResourceMapping(self, value):
110
+ self.portElementToComResourceMappings.append(value)
111
+ return self
112
+
113
+ def getResourceEstimations(self):
114
+ return self.resourceEstimations
115
+
116
+ def addResourceEstimation(self, value):
117
+ self.resourceEstimations.append(value)
118
+ return self
119
+
120
+ def getResourceToApplicationPartitionMappings(self):
121
+ return self.resourceToApplicationPartitionMappings
122
+
123
+ def addResourceToApplicationPartitionMapping(self, value):
124
+ self.resourceToApplicationPartitionMappings.append(value)
125
+ return self
126
+
127
+ def getRteEventSeparations(self):
128
+ return self.rteEventSeparations
129
+
130
+ def addRteEventSeparation(self, value):
131
+ self.rteEventSeparations.append(value)
132
+ return self
133
+
134
+ def getRteEventToOsTaskProxyMappings(self):
135
+ return self.rteEventToOsTaskProxyMappings
136
+
137
+ def addRteEventToOsTaskProxyMapping(self, value):
138
+ self.rteEventToOsTaskProxyMappings.append(value)
139
+ return self
140
+
141
+ def getSignalPathConstraints(self):
142
+ return self.signalPathConstraints
143
+
144
+ def addSignalPathConstraint(self, value):
145
+ self.signalPathConstraints.append(value)
146
+ return self
147
+
148
+ def getSoftwareClusterToApplicationPartitionMappings(self):
149
+ return self.softwareClusterToApplicationPartitionMappings
150
+
151
+ def addSoftwareClusterToApplicationPartitionMapping(self, value):
152
+ self.softwareClusterToApplicationPartitionMappings.append(value)
153
+ return self
154
+
155
+ def getSoftwareClusterToResourceMappings(self):
156
+ return self.softwareClusterToResourceMappings
157
+
158
+ def addSoftwareClusterToResourceMapping(self, value):
159
+ self.softwareClusterToResourceMappings.append(value)
160
+ return self
161
+
162
+ def getSwClusterMappings(self):
163
+ return self.swClusterMappings
164
+
165
+ def addSwClusterMapping(self, value):
166
+ self.swClusterMappings.append(value)
167
+ return self
168
+
169
+ def getSwcToApplicationPartitionMappings(self):
170
+ return self.swcToApplicationPartitionMappings
171
+
172
+ def addSwcToApplicationPartitionMappings(self, value):
173
+ self.swcToApplicationPartitionMappings.append(value)
174
+ return self
175
+
176
+ def getSwImplMapping(self):
177
+ return self.swImplMappings
178
+
179
+ def addSwImplMappings(self, value):
180
+ self.swImplMappings.append(value)
181
+ return self
182
+
183
+ def getSwMappings(self):
184
+ return self.swMappings
185
+
186
+ def addSwMapping(self, value):
187
+ self.swMappings.append(value)
188
+ return self
189
+
190
+ def getSystemSignalGroupToComResourceMappings(self):
191
+ return self.systemSignalGroupToComResourceMappings
192
+
193
+ def addSystemSignalGroupToComResourceMapping(self, value):
194
+ self.systemSignalGroupToComResourceMappings.append(value)
195
+ return self
196
+
197
+ def getSystemSignalToComResourceMappings(self):
198
+ return self.systemSignalToComResourceMappings
199
+
200
+ def addSystemSignalToComResourceMapping(self, value):
201
+ self.systemSignalToComResourceMappings.append(value)
202
+ return self
203
+
204
+
205
+ class System(ARElement):
206
+ def __init__(self, parent, short_name):
207
+ super().__init__(parent, short_name)
208
+
209
+ self.clientIdDefinitionSetRefs = [] # type: List[RefType]
210
+ self.containerIPduHeaderByteOrder = None
211
+ self.ecuExtractVersion = None
212
+ self.fibexElements = []
213
+ self.interpolationRoutineMappingSetRefs = [] # type: List[RefType]
214
+ self.j1939SharedAddressClusters = []
215
+ self.mappings = [] # type: List[SystemMapping]
216
+ self.pncVectorLength = None
217
+ self.pncVectorOffset = None
218
+ self.rootSoftwareComposition = None
219
+ self.swClusters = []
220
+ self.systemDocumentation = []
221
+ self.systemVersion = None
222
+
223
+ def getClientIdDefinitionSetRefs(self):
224
+ return self.clientIdDefinitionSetRefs
225
+
226
+ def addClientIdDefinitionSetRefs(self, value):
227
+ self.clientIdDefinitionSetRefs.append(value)
228
+ return self
229
+
230
+ def getContainerIPduHeaderByteOrder(self):
231
+ return self.containerIPduHeaderByteOrder
232
+
233
+ def setContainerIPduHeaderByteOrder(self, value):
234
+ self.containerIPduHeaderByteOrder = value
235
+ return self
236
+
237
+ def getEcuExtractVersion(self):
238
+ return self.ecuExtractVersion
239
+
240
+ def setEcuExtractVersion(self, value):
241
+ self.ecuExtractVersion = value
242
+ return self
243
+
244
+ def getFibexElementRefs(self):
245
+ return self.fibexElements
246
+
247
+ def addFibexElementRef(self, value):
248
+ self.fibexElements.append(value)
249
+ return self
250
+
251
+ def getInterpolationRoutineMappingSetRefs(self):
252
+ return self.interpolationRoutineMappingSetRefs
253
+
254
+ def addInterpolationRoutineMappingSetRefs(self, value):
255
+ self.interpolationRoutineMappingSetRefs.append(value)
256
+ return self
257
+
258
+ def getJ1939SharedAddressClusters(self):
259
+ return self.j1939SharedAddressClusters
260
+
261
+ def setJ1939SharedAddressClusters(self, value):
262
+ self.j1939SharedAddressClusters.append(value)
263
+ return self
264
+
265
+ def getMappings(self) -> List[SystemMapping]:
266
+ return list(sorted(filter(lambda a: isinstance(a, SystemMapping), self.elements.values()), key= lambda o:o.short_name))
267
+
268
+ def createSystemMapping(self, short_name) -> SystemMapping:
269
+ if (short_name not in self.elements):
270
+ mapping = SystemMapping(self, short_name)
271
+ self.elements[short_name] = mapping
272
+ return self.elements[short_name]
273
+
274
+ def getPncVectorLength(self):
275
+ return self.pncVectorLength
276
+
277
+ def setPncVectorLength(self, value):
278
+ self.pncVectorLength = value
279
+ return self
280
+
281
+ def getPncVectorOffset(self):
282
+ return self.pncVectorOffset
283
+
284
+ def setPncVectorOffset(self, value):
285
+ self.pncVectorOffset = value
286
+ return self
287
+
288
+ def getRootSoftwareComposition(self):
289
+ return self.rootSoftwareComposition
290
+
291
+ def setRootSoftwareComposition(self, value):
292
+ self.rootSoftwareComposition = value
293
+ return self
294
+
295
+ def getSwClusters(self):
296
+ return self.swClusters
297
+
298
+ def addSwClusters(self, value):
299
+ self.swClusters.append(value)
300
+ return self
301
+
302
+ def getSystemDocumentation(self):
303
+ return self.systemDocumentation
304
+
305
+ def setSystemDocumentation(self, value):
306
+ self.systemDocumentation = value
307
+ return self
308
+
309
+ def getSystemVersion(self):
310
+ return self.systemVersion
311
+
312
+ def setSystemVersion(self, value):
313
+ self.systemVersion = value
314
+ return self
315
+
316
+
317
+
318
+
319
+
320
+
321
+
@@ -0,0 +1,88 @@
1
+ from abc import ABCMeta
2
+
3
+ from .....models.ar_ref import RefType
4
+ from .....models.ar_object import ARObject
5
+
6
+ class DataMapping(ARObject, metaclass = ABCMeta):
7
+ def __init__(self):
8
+ if type(self) == ARObject:
9
+ raise NotImplementedError("DataMapping is an abstract class.")
10
+
11
+ super().__init__()
12
+
13
+ self.introduction = None
14
+
15
+ def getIntroduction(self):
16
+ return self.introduction
17
+
18
+ def setIntroduction(self, value):
19
+ self.introduction = value
20
+ return self
21
+
22
+
23
+ class SenderReceiverToSignalMapping(DataMapping):
24
+ def __init__(self):
25
+ super().__init__()
26
+
27
+ self.dataElementIRef = None
28
+ self.senderToSignalTextTableMapping = None
29
+ self.signalToReceiverTextTableMapping = None
30
+ self.systemSignalRef = None
31
+
32
+ def getDataElementIRef(self):
33
+ return self.dataElementIRef
34
+
35
+ def setDataElementIRef(self, value):
36
+ self.dataElementIRef = value
37
+ return self
38
+
39
+ def getSenderToSignalTextTableMapping(self):
40
+ return self.senderToSignalTextTableMapping
41
+
42
+ def setSenderToSignalTextTableMapping(self, value):
43
+ self.senderToSignalTextTableMapping = value
44
+ return self
45
+
46
+ def getSignalToReceiverTextTableMapping(self):
47
+ return self.signalToReceiverTextTableMapping
48
+
49
+ def setSignalToReceiverTextTableMapping(self, value):
50
+ self.signalToReceiverTextTableMapping = value
51
+ return self
52
+
53
+ def getSystemSignalRef(self):
54
+ return self.systemSignalRef
55
+
56
+ def setSystemSignalRef(self, value):
57
+ self.systemSignalRef = value
58
+ return self
59
+
60
+ class SenderReceiverToSignalGroupMapping(DataMapping):
61
+ def __init__(self):
62
+ super().__init__()
63
+
64
+ self.dataElementIRef = None # type: RefType
65
+ self.signalGroupRef = None # type: RefType
66
+ self.typeMapping = None
67
+
68
+ def getDataElementIRef(self):
69
+ return self.dataElementIRef
70
+
71
+ def setDataElementIRef(self, value):
72
+ self.dataElementIRef = value
73
+ return self
74
+
75
+ def getSignalGroupRef(self):
76
+ return self.signalGroupRef
77
+
78
+ def setSignalGroupRef(self, value):
79
+ self.signalGroupRef = value
80
+ return self
81
+
82
+ def getTypeMapping(self):
83
+ return self.typeMapping
84
+
85
+ def setTypeMapping(self, value):
86
+ self.typeMapping = value
87
+ return self
88
+
@@ -0,0 +1,48 @@
1
+ from typing import List
2
+ from ....ar_ref import RefType
3
+ from ..generic_structure.abstract_structure import AtpInstanceRef
4
+
5
+ class VariableDataPrototypeInSystemInstanceRef(AtpInstanceRef):
6
+ def __init__(self):
7
+ super().__init__()
8
+
9
+ self.baseRef = None # type: RefType
10
+ self.contextComponentRefs = [] # type: List[RefType]
11
+ self.contextCompositionRef = None # type: RefType
12
+ self.contextPortRef = None # type: RefType
13
+ self.targetDataPrototypeRef = None # type: RefType
14
+
15
+ def getBaseRef(self):
16
+ return self.baseRef
17
+
18
+ def setBaseRef(self, value):
19
+ self.baseRef = value
20
+ return self
21
+
22
+ def getContextComponentRefs(self):
23
+ return self.contextComponentRefs
24
+
25
+ def addContextComponentRef(self, value):
26
+ self.contextComponentRefs.append(value)
27
+ return self
28
+
29
+ def getContextCompositionRef(self):
30
+ return self.contextCompositionRef
31
+
32
+ def setContextCompositionRef(self, value):
33
+ self.contextCompositionRef = value
34
+ return self
35
+
36
+ def getContextPortRef(self):
37
+ return self.contextPortRef
38
+
39
+ def setContextPortRef(self, value):
40
+ self.contextPortRef = value
41
+ return self
42
+
43
+ def getTargetDataPrototypeRef(self):
44
+ return self.targetDataPrototypeRef
45
+
46
+ def setTargetDataPrototypeRef(self, value):
47
+ self.targetDataPrototypeRef = value
48
+ return self