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,43 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
import os
|
|
3
|
+
import re
|
|
4
|
+
from typing import List
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class FileListParser:
|
|
8
|
+
'''
|
|
9
|
+
FileListParser supports to collect the arxml files from the following rules
|
|
10
|
+
|
|
11
|
+
'''
|
|
12
|
+
def __init__(self) -> None:
|
|
13
|
+
self.file_list = []
|
|
14
|
+
self.logger = logging.getLogger()
|
|
15
|
+
|
|
16
|
+
def get_file_list(self) -> List[str]:
|
|
17
|
+
return self.file_list
|
|
18
|
+
|
|
19
|
+
def parse_text_file(self, file):
|
|
20
|
+
try:
|
|
21
|
+
with open(file) as f_in:
|
|
22
|
+
for line in f_in:
|
|
23
|
+
self.file_list.append(line.strip())
|
|
24
|
+
except:
|
|
25
|
+
self.logger.error("No such file or directory: %s" % os.path.realpath(file))
|
|
26
|
+
|
|
27
|
+
def parse_dir_files(self, dir_name):
|
|
28
|
+
for (root, _, files) in os.walk(dir_name, topdown=False):
|
|
29
|
+
for file in files:
|
|
30
|
+
m = re.match(r'.*\.arxml$', file, re.I)
|
|
31
|
+
if m:
|
|
32
|
+
self.file_list.append(os.path.join(root, file))
|
|
33
|
+
|
|
34
|
+
def parse(self, args: List[str]):
|
|
35
|
+
for input_file in args:
|
|
36
|
+
if os.path.isdir(input_file):
|
|
37
|
+
self.parse_dir_files(input_file)
|
|
38
|
+
else:
|
|
39
|
+
if input_file[0] == "@":
|
|
40
|
+
logging.debug("Parse ARXML list file %s " % input_file)
|
|
41
|
+
self.parse_text_file(input_file[1:])
|
|
42
|
+
else:
|
|
43
|
+
self.file_list.append(input_file)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
from ..models.m2.autosar_templates.generic_structure.ar_package import ARPackage
|
|
1
2
|
from .excel_report import ExcelReporter
|
|
2
|
-
from ..models import AUTOSAR,
|
|
3
|
+
from ..models import AUTOSAR, CompositionSwComponentType
|
|
3
4
|
from ..models import PPortInCompositionInstanceRef, RPortInCompositionInstanceRef
|
|
4
5
|
from typing import List
|
|
5
6
|
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
""" Test AR Package """
|
|
2
2
|
import pytest
|
|
3
3
|
|
|
4
|
-
from ....models.
|
|
5
|
-
from ....models.
|
|
4
|
+
from ....models.m2.autosar_templates.common_structure.implementation_data_types import ImplementationDataType
|
|
5
|
+
from ....models.m2.autosar_templates.sw_component_template.components import SwComponentType
|
|
6
|
+
from ....models.m2.autosar_templates.autosar_top_level_structure import AUTOSAR
|
|
7
|
+
from ....models.datatype import ApplicationPrimitiveDataType, ApplicationRecordDataType, DataTypeMappingSet, SwBaseType
|
|
6
8
|
from ....models.general_structure import ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement, Referrable
|
|
7
9
|
from ....models.m2_msr import CompuMethod
|
|
8
10
|
from ....models.m2.autosar_templates.sw_component_template.port_interface import ClientServerInterface, DataInterface, PortInterface, SenderReceiverInterface
|
|
9
|
-
from ....models.sw_component import ApplicationSwComponentType, AtomicSwComponentType,
|
|
11
|
+
from ....models.sw_component import ApplicationSwComponentType, AtomicSwComponentType, EcuAbstractionSwComponentType, ServiceSwComponentType
|
|
12
|
+
from ....models.m2.autosar_templates.sw_component_template.composition import CompositionSwComponentType
|
|
10
13
|
|
|
11
14
|
class TestAUTOSAR:
|
|
12
15
|
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import pytest
|
|
4
4
|
|
|
5
|
-
from ....models.
|
|
6
|
-
from ....models.
|
|
5
|
+
from ....models.m2.autosar_templates.generic_structure.abstract_structure import AtpInstanceRef
|
|
6
|
+
from ....models.m2.autosar_templates.sw_component_template.composition.instance_refs import OperationInAtomicSwcInstanceRef, POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef, ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef
|
|
7
|
+
from ....models.m2.autosar_templates.sw_component_template.swc_internal_behavior.instance_refs_usage import ArVariableInImplementationDataInstanceRef, AutosarVariableRef
|
|
8
|
+
from ....models.ar_ref import RefType, TRefType
|
|
7
9
|
from ....models.general_structure import ARObject
|
|
8
10
|
|
|
9
11
|
|
|
@@ -33,24 +35,24 @@ class TestARRef:
|
|
|
33
35
|
def test_ProvidedPortPrototypeInstanceRef(self):
|
|
34
36
|
ref_type = PPortInCompositionInstanceRef()
|
|
35
37
|
assert(ref_type != None)
|
|
36
|
-
assert(ref_type.
|
|
37
|
-
assert(ref_type.
|
|
38
|
+
assert(ref_type.getContextComponentRef() == None)
|
|
39
|
+
assert(ref_type.getTargetPPortRef() == None)
|
|
38
40
|
|
|
39
41
|
def test_RequiredPortPrototypeInstanceRef(self):
|
|
40
42
|
ref_type = RPortInCompositionInstanceRef()
|
|
41
43
|
assert(ref_type != None)
|
|
42
|
-
assert(ref_type.
|
|
43
|
-
assert(ref_type.
|
|
44
|
+
assert(ref_type.getContextComponentRef() == None)
|
|
45
|
+
assert(ref_type.getTargetRPortRef() == None)
|
|
44
46
|
|
|
45
47
|
def test_ArVariableInImplementationDataInstanceRef(self):
|
|
46
48
|
ref_type = ArVariableInImplementationDataInstanceRef()
|
|
47
49
|
assert(ref_type != None)
|
|
48
|
-
assert(ref_type.
|
|
49
|
-
assert(ref_type.
|
|
50
|
+
assert(ref_type.getPortPrototypeRef() == None)
|
|
51
|
+
assert(ref_type.getTargetDataPrototypeRef() == None)
|
|
50
52
|
|
|
51
53
|
def test_OperationInAtomicSwcInstanceRef(self):
|
|
52
54
|
with pytest.raises(NotImplementedError) as err:
|
|
53
|
-
|
|
55
|
+
_ = OperationInAtomicSwcInstanceRef()
|
|
54
56
|
assert(str(err.value) == "OperationInAtomicSwcInstanceRef is an abstract class.")
|
|
55
57
|
|
|
56
58
|
def test_POperationInAtomicSwcInstanceRef(self):
|
|
@@ -60,8 +62,8 @@ class TestARRef:
|
|
|
60
62
|
assert(isinstance(ref_type, OperationInAtomicSwcInstanceRef))
|
|
61
63
|
assert(isinstance(ref_type, POperationInAtomicSwcInstanceRef))
|
|
62
64
|
assert(ref_type != None)
|
|
63
|
-
assert(ref_type.
|
|
64
|
-
assert(ref_type.
|
|
65
|
+
assert(ref_type.getContextPPortRef() == None)
|
|
66
|
+
assert(ref_type.getTargetProvidedOperationRef() == None)
|
|
65
67
|
|
|
66
68
|
def test_ROperationInAtomicSwcInstanceRef(self):
|
|
67
69
|
ref_type = ROperationInAtomicSwcInstanceRef()
|
|
@@ -70,5 +72,5 @@ class TestARRef:
|
|
|
70
72
|
assert(isinstance(ref_type, OperationInAtomicSwcInstanceRef))
|
|
71
73
|
assert(isinstance(ref_type, ROperationInAtomicSwcInstanceRef))
|
|
72
74
|
assert(ref_type != None)
|
|
73
|
-
assert(ref_type.
|
|
74
|
-
assert(ref_type.
|
|
75
|
+
assert(ref_type.getContextRPortRef() == None)
|
|
76
|
+
assert(ref_type.getTargetRequiredOperationRef() == None)
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
|
+
from ....models.m2.autosar_templates.common_structure.implementation_data_types import AbstractImplementationDataTypeElement, ImplementationDataTypeElement
|
|
3
4
|
from .... import AUTOSAR
|
|
4
5
|
from ....models.m2.autosar_templates.common_structure import ConstantReference, ConstantSpecification, ValueSpecification
|
|
5
|
-
from ....models.common_structure import
|
|
6
|
+
from ....models.common_structure import ExecutableEntity
|
|
6
7
|
from ....models.general_structure import ARElement, ARObject, CollectableElement, Identifiable
|
|
7
8
|
from ....models.general_structure import MultilanguageReferrable, PackageableElement, Referrable
|
|
8
9
|
|
|
@@ -50,9 +51,9 @@ class Test_M2_AUTOSARTemplates_CommonStructure_ImplementationDataTypes:
|
|
|
50
51
|
ar_root = document.createARPackage("AUTOSAR")
|
|
51
52
|
data_type = ImplementationDataTypeElement(ar_root, "implementation_data_type")
|
|
52
53
|
|
|
53
|
-
assert(data_type.
|
|
54
|
-
assert(data_type.
|
|
55
|
-
assert(data_type.
|
|
54
|
+
assert(data_type.getShortName() == "implementation_data_type")
|
|
55
|
+
assert(data_type.getArraySize() == None)
|
|
56
|
+
assert(data_type.getIsOptional() == None)
|
|
56
57
|
|
|
57
58
|
assert(isinstance(data_type, ARObject))
|
|
58
59
|
assert(isinstance(data_type, AbstractImplementationDataTypeElement))
|
|
@@ -65,7 +66,7 @@ class Test_M2_AUTOSARTemplates_CommonStructure_ImplementationDataTypes:
|
|
|
65
66
|
assert(isinstance(data_type, ImplementationDataTypeElement))
|
|
66
67
|
|
|
67
68
|
sub_type = data_type.createImplementationDataTypeElement("sub_type")
|
|
68
|
-
assert(sub_type.
|
|
69
|
+
assert(sub_type.getShortName() == "sub_type")
|
|
69
70
|
assert(isinstance(sub_type, ImplementationDataTypeElement))
|
|
70
71
|
|
|
71
72
|
assert(len(data_type.getImplementationDataTypeElements()) == 1)
|
|
@@ -2,7 +2,7 @@ import pytest
|
|
|
2
2
|
|
|
3
3
|
from .... import AUTOSAR
|
|
4
4
|
from ....models.ar_ref import RefType
|
|
5
|
-
from ....models.
|
|
5
|
+
from ....models.m2.autosar_templates.sw_component_template.data_type.data_prototypes import ApplicationArrayElement, ApplicationCompositeElementDataPrototype, ApplicationRecordElement, AtpPrototype, AutosarDataPrototype, DataPrototype, VariableDataPrototype
|
|
6
6
|
from ....models.general_structure import ARObject, AtpFeature, Identifiable, MultilanguageReferrable, Referrable
|
|
7
7
|
|
|
8
8
|
class Test_M2_AUTOSARTemplates_SWComponentTemplate_Datatype_DataPrototypes:
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
|
-
from .... import
|
|
4
|
-
from ....models import
|
|
5
|
-
from ....models.common_structure import
|
|
6
|
-
from ....models.
|
|
7
|
-
from ....models.datatype import
|
|
3
|
+
from ....models.m2.autosar_templates.common_structure.implementation_data_types import AbstractImplementationDataType, ImplementationDataType, ImplementationDataTypeElement
|
|
4
|
+
from ....models.m2.autosar_templates.sw_component_template.components import SymbolProps
|
|
5
|
+
from ....models.m2.autosar_templates.common_structure.implementation import ImplementationProps
|
|
6
|
+
from ....models.m2.autosar_templates.sw_component_template.data_type.data_prototypes import ApplicationRecordElement
|
|
7
|
+
from ....models.datatype import ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType, AtpType, AutosarDataType, BaseType, DataTypeMap, DataTypeMappingSet
|
|
8
8
|
from ....models.datatype import BaseTypeDirectDefinition, SwBaseType
|
|
9
9
|
from ....models.general_structure import ARElement, ARObject, CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement, Referrable
|
|
10
|
-
|
|
10
|
+
from .... import AUTOSAR
|
|
11
11
|
class Test_M2_AUTOSARTemplates_CommonStructure_Implementation:
|
|
12
12
|
def test_ImplementationProps(self):
|
|
13
13
|
with pytest.raises(NotImplementedError) as err:
|
|
@@ -28,7 +28,7 @@ class Test_M2_AUTOSARTemplates_CommonStructure_Implementation:
|
|
|
28
28
|
|
|
29
29
|
assert(prototype._parent == ar_root)
|
|
30
30
|
assert(prototype.short_name == "SymbolProps")
|
|
31
|
-
assert(prototype.symbol ==
|
|
31
|
+
assert(prototype.symbol == None)
|
|
32
32
|
|
|
33
33
|
class Test_M2_MSR_AsamHdo_BaseTypes:
|
|
34
34
|
def test_BaseType(self):
|
|
@@ -226,8 +226,8 @@ class Test_M2_AUTOSARTemplates_CommonStructure_ImplementationDataTypes:
|
|
|
226
226
|
|
|
227
227
|
assert(data_type._parent == ar_root)
|
|
228
228
|
assert(data_type.short_name == "ImplementationDataType")
|
|
229
|
-
assert(data_type.
|
|
230
|
-
assert(data_type.
|
|
229
|
+
assert(data_type.subElements == [])
|
|
230
|
+
assert(data_type.symbolProps == None)
|
|
231
231
|
assert(data_type._type_emitter == None)
|
|
232
232
|
|
|
233
233
|
element = data_type.createImplementationDataTypeElement("ImplementationDataTypeElement")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
|
-
from ....models.
|
|
3
|
+
from ....models.m2.autosar_templates.autosar_top_level_structure import AUTOSAR
|
|
4
4
|
from ....models.general_structure import ARElement, ARObject, AtpFeature, CollectableElement, Identifiable, Limit, MultilanguageReferrable, PackageableElement, Referrable
|
|
5
5
|
|
|
6
6
|
class TestGeneralStructure:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
|
-
from ....models.
|
|
3
|
+
from ....models.m2.autosar_templates.autosar_top_level_structure import AUTOSAR
|
|
4
4
|
from ....models.ar_ref import RefType
|
|
5
|
-
from ....models.
|
|
5
|
+
from ....models.m2.autosar_templates.sw_component_template.data_type.data_prototypes import AtpPrototype, AutosarDataPrototype, DataPrototype, VariableDataPrototype
|
|
6
6
|
from ....models.datatype import AtpType
|
|
7
7
|
from ....models.general_structure import ARElement, ARObject, AtpFeature, CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement, Referrable
|
|
8
8
|
from ....models.m2.autosar_templates.sw_component_template.port_interface import ApplicationError, ArgumentDataPrototype, ClientServerInterface, ClientServerOperation, DataInterface, NvDataInterface, ParameterInterface, PortInterface, SenderReceiverInterface
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import filecmp
|
|
2
|
-
from ....models.
|
|
2
|
+
from ....models.m2.autosar_templates.sw_component_template.composition import CompositionSwComponentType
|
|
3
3
|
from ....writer.arxml_writer import ARXMLWriter
|
|
4
4
|
from ....parser.arxml_parser import ARXMLParser
|
|
5
|
-
from ....models.
|
|
5
|
+
from ....models.m2.autosar_templates.autosar_top_level_structure import AUTOSAR
|
|
6
6
|
|
|
7
7
|
class TestSWComponents:
|
|
8
8
|
def setup_method(self):
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import sys
|
|
1
2
|
from abc import ABCMeta
|
|
2
3
|
import re
|
|
3
4
|
from xml.dom import minidom
|
|
@@ -111,7 +112,10 @@ class AbstractARXMLWriter:
|
|
|
111
112
|
return xml
|
|
112
113
|
|
|
113
114
|
def saveToFile(self, filename, root: ET.Element):
|
|
114
|
-
|
|
115
|
+
if sys.version_info <= (3,9):
|
|
116
|
+
xml = ET.tostring(root, encoding = "UTF-8", short_empty_elements = False)
|
|
117
|
+
else:
|
|
118
|
+
xml = ET.tostring(root, encoding = "UTF-8", xml_declaration = True, short_empty_elements = False)
|
|
115
119
|
|
|
116
120
|
dom = minidom.parseString(xml.decode())
|
|
117
121
|
xml = dom.toprettyxml(indent = " ", encoding = "UTF-8")
|
armodel/writer/arxml_writer.py
CHANGED
|
@@ -2,6 +2,10 @@ import xml.etree.cElementTree as ET
|
|
|
2
2
|
|
|
3
3
|
from typing import List
|
|
4
4
|
|
|
5
|
+
from armodel.models.m2.autosar_templates.common_structure.implementation_data_types import ImplementationDataType
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
5
9
|
from ..models.m2.msr.data_dictionary.auxillary_objects import SwAddrMethod
|
|
6
10
|
from ..models.m2.msr.data_dictionary.data_def_properties import SwDataDefProps
|
|
7
11
|
from ..models.m2.msr.asam_hdo.units import PhysicalDimension
|
|
@@ -9,16 +13,24 @@ from ..models.m2.msr.documentation.block_elements import DocumentationBlock
|
|
|
9
13
|
from ..models.m2_msr import CompuConstTextContent, CompuMethod, CompuNominatorDenominator, CompuScale, CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
|
|
10
14
|
|
|
11
15
|
from ..models.m2.autosar_templates.common_structure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference, ConstantSpecification, NumericalValueSpecification, RecordValueSpecification, TextValueSpecification, ValueSpecification
|
|
12
|
-
from ..models.m2.autosar_templates.
|
|
16
|
+
from ..models.m2.autosar_templates.ecuc_description_template import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
|
|
17
|
+
from ..models.m2.autosar_templates.generic_structure.abstract_structure import AnyInstanceRef
|
|
18
|
+
from ..models.m2.autosar_templates.sw_component_template.components import PortGroup, SwComponentType, PPortPrototype, PortPrototype, RPortPrototype
|
|
19
|
+
from ..models.m2.autosar_templates.sw_component_template.components.instance_refs import InnerPortGroupInCompositionInstanceRef, PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef, RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
|
|
13
20
|
from ..models.m2.autosar_templates.sw_component_template.swc_internal_behavior import RunnableEntityArgument, SynchronousServerCallPoint
|
|
14
21
|
from ..models.m2.autosar_templates.sw_component_template.swc_internal_behavior.server_call import ServerCallPoint
|
|
15
22
|
from ..models.m2.autosar_templates.sw_component_template.swc_internal_behavior.data_elements import ParameterAccess, VariableAccess
|
|
16
|
-
from ..models.m2.autosar_templates.
|
|
23
|
+
from ..models.m2.autosar_templates.sw_component_template.composition import AssemblySwConnector, CompositionSwComponentType, DelegationSwConnector, SwComponentPrototype, SwConnector
|
|
24
|
+
from ..models.m2.autosar_templates.sw_component_template.composition.instance_refs import POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef, ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef
|
|
25
|
+
from ..models.m2.autosar_templates.sw_component_template.port_interface.instance_refs import ApplicationCompositeElementInPortInterfaceInstanceRef
|
|
26
|
+
from ..models.m2.autosar_templates.sw_component_template.swc_internal_behavior.instance_refs_usage import AutosarParameterRef, AutosarVariableRef, VariableInAtomicSWCTypeInstanceRef
|
|
27
|
+
from ..models.m2.autosar_templates.system_template.instance_refs import VariableDataPrototypeInSystemInstanceRef
|
|
28
|
+
from ..models.m2.autosar_templates.sw_component_template.components.instance_refs import PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef
|
|
17
29
|
from ..models.m2.autosar_templates.system_template.data_mapping import SenderReceiverToSignalGroupMapping, SenderReceiverToSignalMapping
|
|
18
30
|
from ..models.m2.autosar_templates.system_template import System, SystemMapping
|
|
19
31
|
from ..models.m2.autosar_templates.system_template.network_management import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode
|
|
20
32
|
from ..models.m2.autosar_templates.system_template.transport_protocols import CanTpConfig
|
|
21
|
-
from ..models.m2.autosar_templates.sw_component_template.communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, RPortComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
|
|
33
|
+
from ..models.m2.autosar_templates.sw_component_template.communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, RPortComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
|
|
22
34
|
|
|
23
35
|
from ..models.fibex.fibex_4_multiplatform import Gateway, ISignalMapping
|
|
24
36
|
from ..models.fibex.can_communication import CanFrame, CanFrameTriggering, RxIdentifierRange
|
|
@@ -33,20 +45,18 @@ from ..models.multilanguage_data import MultiLanguageOverviewParagraph, MultiLan
|
|
|
33
45
|
from ..models.record_layout import SwRecordLayout, SwRecordLayoutGroup, SwRecordLayoutV
|
|
34
46
|
from ..models.service_mapping import RoleBasedPortAssignment
|
|
35
47
|
from ..models.service_needs import NvBlockNeeds, RoleBasedDataAssignment
|
|
36
|
-
from ..models.
|
|
48
|
+
from ..models.m2.autosar_templates.sw_component_template.data_type.data_prototypes import ApplicationArrayElement, ApplicationCompositeElementDataPrototype, ApplicationRecordElement, AutosarDataPrototype, DataPrototype, ParameterDataPrototype, VariableDataPrototype
|
|
37
49
|
from ..models.bsw_module_template import BswCalledEntity, BswEvent, BswInternalBehavior, BswModeSenderPolicy, BswModuleDescription, BswModuleEntity, BswModuleEntry, BswSchedulableEntity, BswScheduleEvent, BswTimingEvent
|
|
38
|
-
from ..models.
|
|
39
|
-
from ..models.sw_component import ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, DataReceivedEvent, EcuAbstractionSwComponentType, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, PortAPIOption,
|
|
40
|
-
from ..models.ar_package import ARPackage
|
|
41
|
-
from ..models.ar_ref import
|
|
50
|
+
from ..models.m2.autosar_templates.autosar_top_level_structure import AUTOSAR
|
|
51
|
+
from ..models.sw_component import ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, DataReceivedEvent, EcuAbstractionSwComponentType, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, PortAPIOption, RTEEvent, ServiceDependency, ServiceSwComponentType, SwcModeSwitchEvent, SwcServiceDependency
|
|
52
|
+
from ..models.m2.autosar_templates.generic_structure.ar_package import ARPackage
|
|
53
|
+
from ..models.ar_ref import RefType
|
|
42
54
|
from ..models.calibration import SwAxisGrouped, SwAxisIndividual, SwCalprmAxis, SwCalprmAxisSet, SwValueCont, SwValues
|
|
43
55
|
from ..models.common_structure import IncludedModeDeclarationGroupSet, ModeDeclaration, ModeDeclarationGroup, ModeDeclarationGroupPrototype
|
|
44
56
|
from ..models.communication import CompositeNetworkRepresentation, TransmissionAcknowledgementRequest
|
|
45
|
-
from ..models.datatype import ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType, AutosarDataType, BaseTypeDirectDefinition, DataTypeMappingSet,
|
|
57
|
+
from ..models.datatype import ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType, AutosarDataType, BaseTypeDirectDefinition, DataTypeMappingSet, SwBaseType
|
|
46
58
|
from ..models.general_structure import ARElement, AdminData, Identifiable, Limit, MultilanguageReferrable, Referrable, Sdg, SwcBswMapping, SwcBswRunnableMapping
|
|
47
59
|
|
|
48
|
-
from ..models.port_prototype import PPortPrototype, PortPrototype, RPortPrototype
|
|
49
|
-
from ..models.sw_component import AssemblySwConnector, CompositionSwComponentType, DelegationSwConnector, SwComponentPrototype, SwComponentType, SwConnector
|
|
50
60
|
from ..models.annotation import Annotation
|
|
51
61
|
from ..models.end_to_end_protection import EndToEndDescription, EndToEndProtection, EndToEndProtectionSet, EndToEndProtectionVariablePrototype
|
|
52
62
|
from ..models.m2.autosar_templates.sw_component_template.port_interface import ApplicationError, ClientServerInterface, ClientServerOperation, ModeSwitchInterface, PortInterface, SenderReceiverInterface, TriggerInterface
|
|
@@ -331,7 +341,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
331
341
|
self.logger.debug("writeClientComSpec")
|
|
332
342
|
child_element = ET.SubElement(element, "CLIENT-COM-SPEC")
|
|
333
343
|
self.setARObjectAttributes(child_element, com_spec)
|
|
334
|
-
self.setChildElementOptionalRefType(child_element, "OPERATION-REF", com_spec.
|
|
344
|
+
self.setChildElementOptionalRefType(child_element, "OPERATION-REF", com_spec.getOperationRef())
|
|
345
|
+
|
|
346
|
+
def writeParameterRequireComSpec(self, element: ET.Element, com_spec: ParameterRequireComSpec):
|
|
347
|
+
self.logger.debug("writeParameterRequireComSpec")
|
|
348
|
+
child_element = ET.SubElement(element, "PARAMETER-REQUIRE-COM-SPEC")
|
|
349
|
+
self.setARObjectAttributes(child_element, com_spec)
|
|
350
|
+
self.setChildElementOptionalRefType(child_element, "PARAMETER-REF", com_spec.parameter_ref)
|
|
351
|
+
self.setInitValue(child_element, com_spec.init_value)
|
|
335
352
|
|
|
336
353
|
def writeModeSwitchReceiverComSpec(self, element: ET.Element, com_spec: ModeSwitchReceiverComSpec):
|
|
337
354
|
self.logger.debug("writeModeSwitchReceiverComSpec")
|
|
@@ -348,6 +365,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
348
365
|
self.writeClientComSpec(element, com_spec)
|
|
349
366
|
elif isinstance(com_spec, ModeSwitchReceiverComSpec):
|
|
350
367
|
self.writeModeSwitchReceiverComSpec(element, com_spec)
|
|
368
|
+
elif isinstance(com_spec, ParameterRequireComSpec):
|
|
369
|
+
self.writeParameterRequireComSpec(element, com_spec)
|
|
351
370
|
else:
|
|
352
371
|
raise ValueError("Unsupported RPortComSpec %s" % type(com_spec))
|
|
353
372
|
|
|
@@ -363,7 +382,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
363
382
|
for com_spec in com_specs:
|
|
364
383
|
self.writePPortComSpec(com_specs_tag, com_spec)
|
|
365
384
|
|
|
366
|
-
self.setChildElementOptionalRefType(prototype_tag, "PROVIDED-INTERFACE-TREF", prototype.
|
|
385
|
+
self.setChildElementOptionalRefType(prototype_tag, "PROVIDED-INTERFACE-TREF", prototype.getProvidedInterfaceTRef())
|
|
367
386
|
|
|
368
387
|
def writeRPortPrototype(self, ports_tag: ET.Element, prototype: RPortPrototype):
|
|
369
388
|
self.logger.debug("writeRPortPrototype %s" % prototype.short_name)
|
|
@@ -374,7 +393,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
374
393
|
com_specs_tag = ET.SubElement(prototype_tag, "REQUIRED-COM-SPECS")
|
|
375
394
|
for com_spec in com_specs:
|
|
376
395
|
self.writeRPortComSpec(com_specs_tag, com_spec)
|
|
377
|
-
self.setChildElementOptionalRefType(prototype_tag, "REQUIRED-INTERFACE-TREF", prototype.
|
|
396
|
+
self.setChildElementOptionalRefType(prototype_tag, "REQUIRED-INTERFACE-TREF", prototype.getRequiredInterfaceTRef())
|
|
378
397
|
|
|
379
398
|
def writePortPrototypes(self, ports_tag: ET.Element, port_prototypes: List[PortPrototype]):
|
|
380
399
|
for port_prototype in port_prototypes:
|
|
@@ -387,8 +406,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
387
406
|
|
|
388
407
|
def writeInnerGroupIRef(self, element: ET.Element, inner_group_iref: InnerPortGroupInCompositionInstanceRef):
|
|
389
408
|
child_element = ET.SubElement(element, "INNER-GROUP-IREF")
|
|
390
|
-
self.setChildElementOptionalRefType(child_element, "CONTEXT-REF", inner_group_iref.contextRef)
|
|
391
|
-
self.setChildElementOptionalRefType(child_element, "TARGET-REF", inner_group_iref.
|
|
409
|
+
#self.setChildElementOptionalRefType(child_element, "CONTEXT-REF", inner_group_iref.contextRef)
|
|
410
|
+
self.setChildElementOptionalRefType(child_element, "TARGET-REF", inner_group_iref.getTargetRef())
|
|
392
411
|
|
|
393
412
|
def writePortGroupInnerGroupIRefs(self, element: ET.Element, parent: PortGroup):
|
|
394
413
|
irefs = parent.getInnerGroupIRefs()
|
|
@@ -430,48 +449,53 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
430
449
|
def writeSwComponentPrototype(self, element: ET.Element, prototype: SwComponentPrototype):
|
|
431
450
|
prototype_tag = ET.SubElement(element, "SW-COMPONENT-PROTOTYPE")
|
|
432
451
|
self.setIdentifiable(prototype_tag, prototype)
|
|
433
|
-
self.setChildElementOptionalRefType(prototype_tag, "TYPE-TREF", prototype.
|
|
452
|
+
self.setChildElementOptionalRefType(prototype_tag, "TYPE-TREF", prototype.getTypeTRef())
|
|
434
453
|
|
|
435
454
|
def writeSwComponentPrototypes(self, element: ET.Element, sw_component: CompositionSwComponentType):
|
|
436
|
-
|
|
437
|
-
|
|
455
|
+
prototypes = sw_component.getSwComponentPrototypes()
|
|
456
|
+
if len(prototypes) > 0:
|
|
457
|
+
components_tag = ET.SubElement(element, "COMPONENTS")
|
|
458
|
+
for prototype in prototypes:
|
|
438
459
|
self.writeSwComponentPrototype(components_tag, prototype)
|
|
439
460
|
|
|
440
461
|
def writeAssemblySwConnector(self, element: ET.Element, sw_connector: AssemblySwConnector):
|
|
441
462
|
connector_tag = ET.SubElement(element, "ASSEMBLY-SW-CONNECTOR")
|
|
442
463
|
self.setIdentifiable(connector_tag, sw_connector)
|
|
443
464
|
|
|
444
|
-
if sw_connector.
|
|
465
|
+
if sw_connector.getProviderIRef() is not None:
|
|
445
466
|
provider_iref_tag = ET.SubElement(connector_tag, "PROVIDER-IREF")
|
|
446
|
-
|
|
447
|
-
self.
|
|
448
|
-
self.setChildElementOptionalRefType(provider_iref_tag, "
|
|
467
|
+
provider_iref = sw_connector.getProviderIRef()
|
|
468
|
+
self.setARObjectAttributes(provider_iref_tag, provider_iref)
|
|
469
|
+
self.setChildElementOptionalRefType(provider_iref_tag, "CONTEXT-COMPONENT-REF", provider_iref.getContextComponentRef())
|
|
470
|
+
self.setChildElementOptionalRefType(provider_iref_tag, "TARGET-P-PORT-REF", provider_iref.getTargetPPortRef())
|
|
449
471
|
|
|
450
|
-
if sw_connector.
|
|
472
|
+
if sw_connector.getRequesterIRef() is not None:
|
|
451
473
|
requester_iref_tag = ET.SubElement(connector_tag, "REQUESTER-IREF")
|
|
452
|
-
|
|
453
|
-
self.
|
|
454
|
-
self.setChildElementOptionalRefType(requester_iref_tag, "
|
|
474
|
+
requester_iref = sw_connector.getRequesterIRef()
|
|
475
|
+
self.setARObjectAttributes(requester_iref_tag, requester_iref)
|
|
476
|
+
self.setChildElementOptionalRefType(requester_iref_tag, "CONTEXT-COMPONENT-REF", requester_iref.getContextComponentRef())
|
|
477
|
+
self.setChildElementOptionalRefType(requester_iref_tag, "TARGET-R-PORT-REF", requester_iref.getTargetRPortRef())
|
|
455
478
|
|
|
456
479
|
def writeDelegationSwConnector(self, element: ET.Element, sw_connector: DelegationSwConnector):
|
|
457
480
|
connector_tag = ET.SubElement(element, "DELEGATION-SW-CONNECTOR")
|
|
458
481
|
self.setIdentifiable(connector_tag, sw_connector)
|
|
459
482
|
|
|
460
|
-
if sw_connector.
|
|
483
|
+
if sw_connector.getInnerPortIRref() is not None:
|
|
461
484
|
inner_port_iref_tag = ET.SubElement(connector_tag, "INNER-PORT-IREF")
|
|
462
|
-
|
|
485
|
+
inner_port_iref = sw_connector.getInnerPortIRref()
|
|
486
|
+
if isinstance(inner_port_iref, PPortInCompositionInstanceRef):
|
|
463
487
|
instance_ref_tag = ET.SubElement(inner_port_iref_tag, "P-PORT-IN-COMPOSITION-INSTANCE-REF")
|
|
464
|
-
self.setChildElementOptionalRefType(instance_ref_tag, "CONTEXT-COMPONENT-REF",
|
|
465
|
-
self.setChildElementOptionalRefType(instance_ref_tag, "TARGET-P-PORT-REF",
|
|
466
|
-
elif isinstance(
|
|
488
|
+
self.setChildElementOptionalRefType(instance_ref_tag, "CONTEXT-COMPONENT-REF", inner_port_iref.getContextComponentRef())
|
|
489
|
+
self.setChildElementOptionalRefType(instance_ref_tag, "TARGET-P-PORT-REF", inner_port_iref.getTargetPPortRef())
|
|
490
|
+
elif isinstance(inner_port_iref, RPortInCompositionInstanceRef):
|
|
467
491
|
instance_ref_tag = ET.SubElement(inner_port_iref_tag, "R-PORT-IN-COMPOSITION-INSTANCE-REF")
|
|
468
|
-
self.setChildElementOptionalRefType(instance_ref_tag, "CONTEXT-COMPONENT-REF",
|
|
469
|
-
self.setChildElementOptionalRefType(instance_ref_tag, "TARGET-R-PORT-REF",
|
|
492
|
+
self.setChildElementOptionalRefType(instance_ref_tag, "CONTEXT-COMPONENT-REF", inner_port_iref.getContextComponentRef())
|
|
493
|
+
self.setChildElementOptionalRefType(instance_ref_tag, "TARGET-R-PORT-REF", inner_port_iref.getTargetRPortRef())
|
|
470
494
|
else:
|
|
471
|
-
self._raiseError("Invalid inner port of DelegationSwConnector <%s>" % sw_connector.
|
|
495
|
+
self._raiseError("Invalid inner port of DelegationSwConnector <%s>" % sw_connector.getShortName())
|
|
472
496
|
|
|
473
|
-
if sw_connector.
|
|
474
|
-
self.setChildElementOptionalRefType(connector_tag, "OUTER-PORT-REF", sw_connector.
|
|
497
|
+
if sw_connector.getOuterPortRef() is not None:
|
|
498
|
+
self.setChildElementOptionalRefType(connector_tag, "OUTER-PORT-REF", sw_connector.getOuterPortRef())
|
|
475
499
|
#self.writeChildOptionalRefElement(requester_iref_tag, "TARGET-R-PORT-REF", sw_connector.requester_iref.target_r_port_ref)
|
|
476
500
|
|
|
477
501
|
def writeSwConnector(self, element: ET.Element, sw_connector: SwConnector):
|
|
@@ -486,8 +510,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
486
510
|
sw_connectors = sw_component.getSwConnectors()
|
|
487
511
|
if len(sw_connectors) > 0:
|
|
488
512
|
connectors_tag = ET.SubElement(element, "CONNECTORS")
|
|
513
|
+
# Change the implementation to compatible with AUTOSAR builder
|
|
489
514
|
for sw_connector in sw_connectors:
|
|
490
515
|
self.writeSwConnector(connectors_tag, sw_connector)
|
|
516
|
+
#for sw_connector in sw_component.getAssemblySwConnectors():
|
|
517
|
+
# self.writeSwConnector(connectors_tag, sw_connector)
|
|
518
|
+
#for sw_connector in sw_component.getDelegationSwConnectors():
|
|
519
|
+
# self.writeSwConnector(connectors_tag, sw_connector)
|
|
491
520
|
|
|
492
521
|
def writeCompositionSwComponentTypeDataTypeMappingSet(self, element: ET.Element, parent: CompositionSwComponentType):
|
|
493
522
|
data_type_mappings = parent.getDataTypeMappings()
|
|
@@ -691,6 +720,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
691
720
|
for compu_scale in compu_scales.getCompuScales():
|
|
692
721
|
child_element = ET.SubElement(compu_scales_tag, "COMPU-SCALE")
|
|
693
722
|
self.setARObjectAttributes(child_element, compu_scale)
|
|
723
|
+
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", compu_scale.short_label)
|
|
694
724
|
self.setChildElementOptionalLiteral(child_element, "SYMBOL", compu_scale.symbol)
|
|
695
725
|
self.writeChildLimitElement(child_element, "LOWER-LIMIT", compu_scale.lowerLimit)
|
|
696
726
|
self.writeChildLimitElement(child_element, "UPPER-LIMIT", compu_scale.upperLimit)
|
|
@@ -1416,9 +1446,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1416
1446
|
self.logger.debug("writeSenderReceiverInterface %s" % sr_interface.short_name)
|
|
1417
1447
|
child_element = ET.SubElement(element, "SENDER-RECEIVER-INTERFACE")
|
|
1418
1448
|
self.setIdentifiable(child_element, sr_interface)
|
|
1419
|
-
self.setChildElementOptionalBooleanValue(child_element, "IS-SERVICE", sr_interface.
|
|
1449
|
+
self.setChildElementOptionalBooleanValue(child_element, "IS-SERVICE", sr_interface.getIsService())
|
|
1420
1450
|
self.writeSenderReceiverInterfaceDataElements(child_element, sr_interface)
|
|
1421
|
-
self.writeSenderReceiverInterfaceInvalidationPolicies(child_element, sr_interface)
|
|
1422
1451
|
|
|
1423
1452
|
def writerBswModuleDescriptionImplementedEntry(self, element: ET.Element, desc: BswModuleDescription):
|
|
1424
1453
|
entries = desc.getImplementedEntries()
|
|
@@ -1651,7 +1680,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1651
1680
|
self.setIdentifiable(child_element, type_element)
|
|
1652
1681
|
self.setChildElementOptionalLiteral(child_element, "ARRAY-SIZE", type_element.getArraySize())
|
|
1653
1682
|
self.setChildElementOptionalLiteral(child_element, "ARRAY-SIZE-SEMANTICS", type_element.getArraySizeSemantics())
|
|
1654
|
-
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", type_element.
|
|
1683
|
+
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", type_element.getSwDataDefProps())
|
|
1655
1684
|
|
|
1656
1685
|
def writeImplementationDataType(self, element: ET.Element, data_type: ImplementationDataType):
|
|
1657
1686
|
self.logger.debug("writeImplementationDataType %s" % data_type.short_name)
|
|
@@ -1670,6 +1699,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1670
1699
|
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", prototype.swDataDefProps)
|
|
1671
1700
|
self.setChildElementOptionalRefType(child_element, "TYPE-TREF", prototype.typeTRef)
|
|
1672
1701
|
self.setChildElementOptionalLiteral(child_element, "DIRECTION", prototype.direction)
|
|
1702
|
+
self.setChildElementOptionalLiteral(child_element, "SERVER-ARGUMENT-IMPL-POLICY", prototype.server_argument_impl_policy)
|
|
1673
1703
|
|
|
1674
1704
|
def writePossibleErrorRefs(self, element: ET.Element, parent: ClientServerOperation):
|
|
1675
1705
|
error_refs = parent.getPossbileErrorRefs()
|
|
@@ -2565,26 +2595,6 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2565
2595
|
self.writeGateway(element, ar_element)
|
|
2566
2596
|
elif isinstance(ar_element, ISignal):
|
|
2567
2597
|
self.writeISignal(element, ar_element)
|
|
2568
|
-
elif isinstance(ar_element, EcucValueCollection):
|
|
2569
|
-
self.writeEcucValueCollection(element, ar_element)
|
|
2570
|
-
elif isinstance(ar_element, EcucModuleConfigurationValues):
|
|
2571
|
-
self.writeEcucModuleConfigurationValues(element, ar_element)
|
|
2572
|
-
elif isinstance(ar_element, ISignalGroup):
|
|
2573
|
-
self.writeISignalGroup(element, ar_element)
|
|
2574
|
-
elif isinstance(ar_element, ISignalIPduGroup):
|
|
2575
|
-
self.writeISignalIPduGroup(element, ar_element)
|
|
2576
|
-
elif isinstance(ar_element, SystemSignal):
|
|
2577
|
-
self.writeSystemSignal(element, ar_element)
|
|
2578
|
-
elif isinstance(ar_element, ISignalIPdu):
|
|
2579
|
-
self.writeISignalIPdu(element, ar_element)
|
|
2580
|
-
elif isinstance(ar_element, EcuInstance):
|
|
2581
|
-
self.writeEcuInstance(element, ar_element)
|
|
2582
|
-
elif isinstance(ar_element, SystemSignalGroup):
|
|
2583
|
-
self.writeSystemSignalGroup(element, ar_element)
|
|
2584
|
-
elif isinstance(ar_element, System):
|
|
2585
|
-
self.writeSystem(element, ar_element)
|
|
2586
|
-
elif isinstance(ar_element, PhysicalDimension):
|
|
2587
|
-
self.writePhysicalDimension(element, ar_element)
|
|
2588
2598
|
else:
|
|
2589
2599
|
raise NotImplementedError("Unsupported Elements of ARPackage <%s>" % type(ar_element))
|
|
2590
2600
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: armodel
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.2
|
|
4
4
|
Summary: the python arxml parser
|
|
5
5
|
Home-page: http://github.com/melodypapa/py-armodel
|
|
6
6
|
Author: melodypapa
|
|
@@ -349,4 +349,8 @@ Fix the attribute intervalType of **Limit** is empty issue.
|
|
|
349
349
|
* MODE-SWITCH-POINTS
|
|
350
350
|
4. Create the CLI (armodel-system-signal) to list all the system signals
|
|
351
351
|
|
|
352
|
+
**Version 1.6.1**
|
|
353
|
+
|
|
354
|
+
1. Organize the armodel package.
|
|
355
|
+
2. Add the Get/Set method for several class.
|
|
352
356
|
|