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.
Files changed (66) hide show
  1. armodel/cli/arxml_dump_cli.py +25 -22
  2. armodel/cli/arxml_format_cli.py +1 -4
  3. armodel/cli/connector_update_cli.py +1 -1
  4. armodel/cli/swc_list_cli.py +1 -1
  5. armodel/data_models/sw_connector.py +3 -3
  6. armodel/lib/sw_component.py +3 -1
  7. armodel/lib/system_signal.py +3 -1
  8. armodel/models/__init__.py +5 -3
  9. armodel/models/ar_object.py +1 -1
  10. armodel/models/ar_package.py +185 -151
  11. armodel/models/ar_ref.py +0 -202
  12. armodel/models/common_structure.py +3 -71
  13. armodel/models/communication.py +1 -1
  14. armodel/models/datatype.py +7 -72
  15. armodel/models/end_to_end_protection.py +1 -1
  16. armodel/models/general_structure.py +10 -4
  17. armodel/models/internal_behavior.py +1 -1
  18. armodel/models/m2/autosar_templates/autosar_top_level_structure.py +120 -0
  19. armodel/models/m2/autosar_templates/common_structure/implementation.py +21 -0
  20. armodel/models/m2/autosar_templates/common_structure/implementation_data_types.py +154 -0
  21. armodel/models/m2/autosar_templates/ecuc_description_template.py +2 -1
  22. armodel/models/m2/autosar_templates/generic_structure/__init__.py +0 -0
  23. armodel/models/m2/autosar_templates/generic_structure/abstract_structure.py +69 -0
  24. armodel/models/m2/autosar_templates/generic_structure/ar_package.py +528 -0
  25. armodel/models/m2/autosar_templates/sw_component_template/communication.py +44 -0
  26. armodel/models/m2/autosar_templates/sw_component_template/components/__init__.py +246 -0
  27. armodel/models/m2/autosar_templates/sw_component_template/components/instance_refs.py +33 -1
  28. armodel/models/m2/autosar_templates/sw_component_template/composition/__init__.py +154 -0
  29. armodel/models/m2/autosar_templates/sw_component_template/composition/instance_refs.py +157 -0
  30. armodel/models/m2/autosar_templates/sw_component_template/data_type/__init__.py +0 -0
  31. armodel/models/m2/autosar_templates/sw_component_template/data_type/data_prototypes.py +104 -0
  32. armodel/models/m2/autosar_templates/sw_component_template/port_interface/__init__.py +243 -0
  33. armodel/models/m2/autosar_templates/sw_component_template/port_interface/instance_refs.py +39 -0
  34. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py +3 -11
  35. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/instance_refs_usage.py +169 -0
  36. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py +1 -2
  37. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py +5 -4
  38. armodel/models/m2/autosar_templates/system_template/instance_refs.py +48 -0
  39. armodel/models/m2_msr.py +1 -0
  40. armodel/models/port_prototype.py +1 -90
  41. armodel/models/service_needs.py +3 -1
  42. armodel/models/sw_component.py +6 -143
  43. armodel/parser/__init__.py +2 -1
  44. armodel/parser/abstract_arxml_parser.py +1 -1
  45. armodel/parser/arxml_parser.py +157 -80
  46. armodel/parser/connector_xlsx_parser.py +3 -1
  47. armodel/parser/file_parser.py +43 -0
  48. armodel/report/connector_xls_report.py +2 -1
  49. armodel/tests/test_armodel/models/test_ar_package.py +6 -3
  50. armodel/tests/test_armodel/models/test_ar_ref.py +15 -13
  51. armodel/tests/test_armodel/models/test_common_structure.py +6 -5
  52. armodel/tests/test_armodel/models/test_data_prototype.py +1 -1
  53. armodel/tests/test_armodel/models/test_datatype.py +9 -9
  54. armodel/tests/test_armodel/models/test_general_structure.py +1 -1
  55. armodel/tests/test_armodel/models/test_implementation.py +1 -1
  56. armodel/tests/test_armodel/models/test_port_interface.py +2 -2
  57. armodel/tests/test_armodel/parser/test_parse_bswmd.py +3 -1
  58. armodel/tests/test_armodel/parser/test_sw_components.py +2 -2
  59. armodel/writer/abstract_arxml_writer.py +5 -1
  60. armodel/writer/arxml_writer.py +70 -60
  61. {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/METADATA +5 -1
  62. {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/RECORD +66 -51
  63. {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/LICENSE +0 -0
  64. {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/WHEEL +0 -0
  65. {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/entry_points.txt +0 -0
  66. {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, ARPackage, CompositionSwComponentType
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.ar_package import AUTOSAR
5
- from ....models.datatype import ApplicationPrimitiveDataType, ApplicationRecordDataType, DataTypeMappingSet, ImplementationDataType, SwBaseType
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, CompositionSwComponentType, EcuAbstractionSwComponentType, ServiceSwComponentType, SwComponentType
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.ar_ref import ArVariableInImplementationDataInstanceRef, AutosarVariableRef, PPortInCompositionInstanceRef, RPortInCompositionInstanceRef
6
- from ....models.ar_ref import OperationInAtomicSwcInstanceRef, POperationInAtomicSwcInstanceRef, ROperationInAtomicSwcInstanceRef, RefType, TRefType, AtpInstanceRef
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.context_component_ref == None)
37
- assert(ref_type.target_p_port_ref == None)
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.context_component_ref == None)
43
- assert(ref_type.target_r_port_ref == None)
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.port_prototype_ref == None)
49
- assert(ref_type.target_data_prototype_ref == None)
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
- ref_type = OperationInAtomicSwcInstanceRef()
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.context_p_port_ref == None)
64
- assert(ref_type.target_provided_operation_ref == None)
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.context_r_port_ref == None)
74
- assert(ref_type.target_required_operation_ref == None)
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 AbstractImplementationDataTypeElement, ImplementationDataTypeElement, ExecutableEntity
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.short_name == "implementation_data_type")
54
- assert(data_type.arraySize == None)
55
- assert(data_type.isOptional == None)
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.short_name == "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.data_prototype import ApplicationArrayElement, ApplicationCompositeElementDataPrototype, ApplicationRecordElement, AtpPrototype, AutosarDataPrototype, DataPrototype, VariableDataPrototype
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 AUTOSAR
4
- from ....models import datatype
5
- from ....models.common_structure import ImplementationDataTypeElement
6
- from ....models.data_prototype import ApplicationRecordElement
7
- from ....models.datatype import AbstractImplementationDataType, ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType, AtpType, AutosarDataType, BaseType, DataTypeMap, DataTypeMappingSet, ImplementationDataType, ImplementationProps, SymbolProps
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.sub_elements == [])
230
- assert(data_type.symbol_props == None)
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.ar_package import AUTOSAR
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,6 +1,6 @@
1
1
 
2
2
  from ....models.implementation import AutosarEngineeringObject, Code
3
- from ....models.ar_package import AUTOSAR
3
+ from ....models.m2.autosar_templates.autosar_top_level_structure import AUTOSAR
4
4
 
5
5
 
6
6
  class TestImplementation:
@@ -1,8 +1,8 @@
1
1
  import pytest
2
2
 
3
- from ....models.ar_package import AUTOSAR
3
+ from ....models.m2.autosar_templates.autosar_top_level_structure import AUTOSAR
4
4
  from ....models.ar_ref import RefType
5
- from ....models.data_prototype import AtpPrototype, AutosarDataPrototype, DataPrototype, VariableDataPrototype
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,6 +1,8 @@
1
1
  import filecmp
2
2
 
3
- from .... import AUTOSAR, ARPackage
3
+ from ....models.m2.autosar_templates.generic_structure.ar_package import ARPackage
4
+
5
+ from .... import AUTOSAR
4
6
  from .... import ARXMLParser, ARXMLWriter
5
7
 
6
8
  import logging
@@ -1,8 +1,8 @@
1
1
  import filecmp
2
- from ....models.sw_component import CompositionSwComponentType
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.ar_package import AUTOSAR
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
- xml = ET.tostring(root, encoding = "UTF-8", xml_declaration = True, short_empty_elements = False)
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")
@@ -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.sw_component_template.components.instance_refs import PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef, RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
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.ecuc_description_template import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
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.data_prototype import ApplicationArrayElement, ApplicationCompositeElementDataPrototype, ApplicationRecordElement, AutosarDataPrototype, DataPrototype, ParameterDataPrototype, VariableDataPrototype
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.ar_package import AUTOSAR
39
- from ..models.sw_component import ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, DataReceivedEvent, EcuAbstractionSwComponentType, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, PortAPIOption, PortGroup, RTEEvent, ServiceDependency, ServiceSwComponentType, SwcModeSwitchEvent, SwcServiceDependency
40
- from ..models.ar_package import ARPackage
41
- from ..models.ar_ref import AnyInstanceRef, ApplicationCompositeElementInPortInterfaceInstanceRef, AutosarParameterRef, AutosarVariableRef, InnerPortGroupInCompositionInstanceRef, POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef, ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef, RefType, VariableDataPrototypeInSystemInstanceRef
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, ImplementationDataType, SwBaseType
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.operationRef)
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.provided_interface_tref)
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.required_interface_tref)
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.targetRef)
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.type_tref)
452
+ self.setChildElementOptionalRefType(prototype_tag, "TYPE-TREF", prototype.getTypeTRef())
434
453
 
435
454
  def writeSwComponentPrototypes(self, element: ET.Element, sw_component: CompositionSwComponentType):
436
- components_tag = ET.SubElement(element, "COMPONENTS")
437
- for prototype in sw_component.getSwComponentPrototypes():
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.provider_iref is not None:
465
+ if sw_connector.getProviderIRef() is not None:
445
466
  provider_iref_tag = ET.SubElement(connector_tag, "PROVIDER-IREF")
446
- self.setARObjectAttributes(provider_iref_tag, sw_connector.provider_iref)
447
- self.setChildElementOptionalRefType(provider_iref_tag, "CONTEXT-COMPONENT-REF", sw_connector.provider_iref.context_component_ref)
448
- self.setChildElementOptionalRefType(provider_iref_tag, "TARGET-P-PORT-REF", sw_connector.provider_iref.target_p_port_ref)
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.requester_iref is not None:
472
+ if sw_connector.getRequesterIRef() is not None:
451
473
  requester_iref_tag = ET.SubElement(connector_tag, "REQUESTER-IREF")
452
- self.setARObjectAttributes(requester_iref_tag, sw_connector.requester_iref)
453
- self.setChildElementOptionalRefType(requester_iref_tag, "CONTEXT-COMPONENT-REF", sw_connector.requester_iref.context_component_ref)
454
- self.setChildElementOptionalRefType(requester_iref_tag, "TARGET-R-PORT-REF", sw_connector.requester_iref.target_r_port_ref)
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.inner_port_iref is not None:
483
+ if sw_connector.getInnerPortIRref() is not None:
461
484
  inner_port_iref_tag = ET.SubElement(connector_tag, "INNER-PORT-IREF")
462
- if isinstance(sw_connector.inner_port_iref, PPortInCompositionInstanceRef):
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", sw_connector.inner_port_iref.context_component_ref)
465
- self.setChildElementOptionalRefType(instance_ref_tag, "TARGET-P-PORT-REF", sw_connector.inner_port_iref.target_p_port_ref)
466
- elif isinstance(sw_connector.inner_port_iref, RPortInCompositionInstanceRef):
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", sw_connector.inner_port_iref.context_component_ref)
469
- self.setChildElementOptionalRefType(instance_ref_tag, "TARGET-R-PORT-REF", sw_connector.inner_port_iref.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.short_name)
495
+ self._raiseError("Invalid inner port of DelegationSwConnector <%s>" % sw_connector.getShortName())
472
496
 
473
- if sw_connector.outer_port_ref is not None:
474
- self.setChildElementOptionalRefType(connector_tag, "OUTER-PORT-REF", sw_connector.outer_port_ref)
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.isService)
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.swDataDefProps)
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.0
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