armodel 1.6.2__py3-none-any.whl → 1.6.4__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 +13 -10
- armodel/cli/arxml_format_cli.py +1 -2
- armodel/cli/connector2xlsx_cli.py +2 -3
- armodel/cli/connector_update_cli.py +2 -5
- armodel/cli/memory_section_cli.py +2 -2
- armodel/cli/swc_list_cli.py +2 -3
- armodel/cli/system_signal_cli.py +2 -2
- armodel/lib/sw_component.py +3 -3
- armodel/lib/system_signal.py +3 -5
- armodel/models/{m2/autosar_templates/autosar_top_level_structure.py → M2/AUTOSARTemplates/AutosarTopLevelStructure.py} +5 -7
- armodel/models/{bsw_module_template.py → M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py} +113 -140
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +60 -0
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +52 -0
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +77 -0
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__init__.py +4 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +238 -0
- armodel/models/{m2/autosar_templates/common_structure/implementation_data_types.py → M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py} +7 -6
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +119 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +96 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +69 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +20 -0
- armodel/models/{service_needs.py → M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py} +13 -9
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +35 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +24 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +45 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +24 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +33 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +9 -0
- armodel/models/{m2/autosar_templates/common_structure → M2/AUTOSARTemplates/CommonStructure}/__init__.py +4 -3
- armodel/models/{m2/autosar_templates/ecuc_description_template.py → M2/AUTOSARTemplates/ECUCDescriptionTemplate.py} +6 -7
- armodel/models/{m2/autosar_templates/generic_structure/abstract_structure.py → M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py} +25 -5
- armodel/models/{m2/autosar_templates/generic_structure/ar_package.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py} +41 -29
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +16 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +1 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +52 -0
- armodel/models/{general_structure.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py} +42 -159
- armodel/models/{ar_object.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py} +179 -71
- armodel/models/M2/AUTOSARTemplates/GenericStructure/__init__.py +1 -0
- armodel/models/{m2/autosar_templates/sw_component_template/communication.py → M2/AUTOSARTemplates/SWComponentTemplate/Communication.py} +22 -5
- armodel/models/{m2/autosar_templates/sw_component_template/components/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py} +2 -4
- armodel/models/{m2/autosar_templates/sw_component_template/components → M2/AUTOSARTemplates/SWComponentTemplate/Components}/__init__.py +114 -10
- armodel/models/{m2/autosar_templates/sw_component_template/composition/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py} +2 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +96 -0
- armodel/models/{m2/autosar_templates/sw_component_template/data_type/data_prototypes.py → M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py} +24 -8
- armodel/models/{datatype.py → M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py} +16 -73
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +177 -0
- armodel/models/{m2/autosar_templates/sw_component_template/port_interface/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/InstanceRefs.py} +2 -2
- armodel/models/{m2/autosar_templates/sw_component_template/port_interface → M2/AUTOSARTemplates/SWComponentTemplate/PortInterface}/__init__.py +10 -6
- armodel/models/{rpt_scenario.py → M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py} +4 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +34 -0
- armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/access_count.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py} +2 -2
- armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py} +7 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +24 -0
- armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/instance_refs_usage.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py} +3 -3
- armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py} +4 -4
- armodel/models/{per_instance_memory.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py} +5 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +86 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +174 -0
- armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py} +3 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +57 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +8 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +358 -0
- armodel/models/{m2/autosar_templates/system_template/data_mapping.py → M2/AUTOSARTemplates/SystemTemplate/DataMapping.py} +2 -3
- armodel/models/{fibex/can_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py} +3 -3
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +14 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +116 -0
- armodel/models/{fibex/lin_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py} +5 -2
- armodel/models/{fibex/fibex_4_multiplatform.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py} +5 -4
- armodel/models/{fibex/fibex_core/core_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py} +4 -6
- armodel/models/{fibex/fibex_core/core_topology.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py} +6 -7
- armodel/models/{m2/autosar_templates/system_template/instance_refs.py → M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py} +2 -2
- armodel/models/{m2/autosar_templates/system_template/network_management.py → M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py} +5 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +6 -0
- armodel/models/{m2/autosar_templates/system_template → M2/AUTOSARTemplates/SystemTemplate}/__init__.py +3 -4
- armodel/models/M2/MSR/AsamHdo/AdminData.py +18 -0
- armodel/models/M2/MSR/AsamHdo/BaseTypes.py +77 -0
- armodel/models/{m2_msr.py → M2/MSR/AsamHdo/ComputationMethod.py} +43 -28
- armodel/models/{global_constraints.py → M2/MSR/AsamHdo/Constraints/GlobalConstraints.py} +6 -4
- armodel/models/M2/MSR/AsamHdo/SpecialData.py +60 -0
- armodel/models/{m2/msr/asam_hdo/units.py → M2/MSR/AsamHdo/Units.py} +3 -3
- armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +26 -0
- armodel/models/{m2/msr/data_dictionary/auxillary_objects.py → M2/MSR/DataDictionary/AuxillaryObjects.py} +3 -4
- armodel/models/M2/MSR/DataDictionary/Axis.py +145 -0
- armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +37 -0
- armodel/models/{m2/msr/data_dictionary/data_def_properties.py → M2/MSR/DataDictionary/DataDefProperties.py} +19 -10
- armodel/models/{record_layout.py → M2/MSR/DataDictionary/RecordLayout.py} +26 -25
- armodel/models/{annotation.py → M2/MSR/Documentation/Annotation.py} +8 -10
- armodel/models/{m2/msr/documentation/block_elements.py → M2/MSR/Documentation/BlockElements.py} +2 -2
- armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +16 -0
- armodel/models/{multilanguage_data.py → M2/MSR/Documentation/TextModel/MultilanguageData.py} +20 -32
- armodel/models/M2/MSR/Documentation/TextModel/__init__.py +0 -0
- armodel/models/M2/MSR/Documentation/__init__.py +3 -0
- armodel/models/M2/MSR/__init__.py +1 -0
- armodel/models/M2/__init__.py +0 -0
- armodel/models/__init__.py +50 -24
- armodel/parser/abstract_arxml_parser.py +8 -4
- armodel/parser/arxml_parser.py +117 -90
- armodel/parser/connector_xlsx_parser.py +5 -3
- armodel/parser/file_parser.py +2 -1
- armodel/report/connector_xls_report.py +3 -2
- armodel/tests/test_armodel/models/test_ar_object.py +2 -3
- armodel/tests/test_armodel/models/test_ar_package.py +21 -9
- armodel/tests/test_armodel/models/test_ar_ref.py +7 -5
- armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -1
- armodel/tests/test_armodel/models/test_common_structure.py +11 -5
- armodel/tests/test_armodel/models/test_data_dictionary.py +2 -2
- armodel/tests/test_armodel/models/test_data_prototype.py +8 -4
- armodel/tests/test_armodel/models/test_datatype.py +28 -14
- armodel/tests/test_armodel/models/test_general_structure.py +12 -2
- armodel/tests/test_armodel/models/test_implementation.py +3 -2
- armodel/tests/test_armodel/models/test_m2_msr.py +4 -2
- armodel/tests/test_armodel/models/test_port_interface.py +21 -11
- armodel/tests/test_armodel/models/test_port_prototype.py +1 -1
- armodel/tests/test_armodel/parser/test_parse_bswmd.py +13 -13
- armodel/tests/test_armodel/parser/test_sw_components.py +2 -2
- armodel/tests/test_armodel/parser/test_system.py +30 -0
- armodel/writer/abstract_arxml_writer.py +5 -2
- armodel/writer/arxml_writer.py +136 -91
- {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/METADATA +16 -1
- armodel-1.6.4.dist-info/RECORD +156 -0
- armodel/lib/data_analyzer.py +0 -34
- armodel/models/ar_package.py +0 -641
- armodel/models/ar_ref.py +0 -25
- armodel/models/calibration.py +0 -119
- armodel/models/common_structure.py +0 -272
- armodel/models/communication.py +0 -17
- armodel/models/data_def_properties.py +0 -16
- armodel/models/data_dictionary.py +0 -59
- armodel/models/data_prototype.py +0 -103
- armodel/models/end_to_end_protection.py +0 -67
- armodel/models/fibex/fibex_core.py +0 -341
- armodel/models/fibex/lin_topology.py +0 -7
- armodel/models/implementation.py +0 -135
- armodel/models/internal_behavior.py +0 -63
- armodel/models/m2/autosar_templates/common_structure/implementation.py +0 -21
- armodel/models/m2/autosar_templates/sw_component_template/composition/__init__.py +0 -154
- armodel/models/m2/autosar_templates/sw_component_template/port_interface.py +0 -236
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/__init__.py +0 -203
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/trigger.py +0 -10
- armodel/models/m2/autosar_templates/system_template/transport_protocols.py +0 -7
- armodel/models/mode_declaration.py +0 -8
- armodel/models/port_interface.py +0 -165
- armodel/models/port_prototype.py +0 -6
- armodel/models/service_mapping.py +0 -11
- armodel/models/sw_component.py +0 -385
- armodel/models/system_template/network_management.py +0 -7
- armodel/models/system_template/transport_protocols.py +0 -7
- armodel/models/timing.py +0 -91
- armodel/models/unit.py +0 -14
- armodel-1.6.2.dist-info/RECORD +0 -142
- /armodel/models/{fibex → M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior}/__init__.py +0 -0
- /armodel/models/{fibex/fibex_4_can → M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint}/__init__.py +0 -0
- /armodel/models/{fibex/fibex_4_lin → M2/AUTOSARTemplates/CommonStructure/Timing}/__init__.py +0 -0
- /armodel/models/{fibex/fibex_core → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses}/__init__.py +0 -0
- /armodel/models/{m2 → M2/AUTOSARTemplates/SWComponentTemplate/Datatype}/__init__.py +0 -0
- /armodel/models/{m2/autosar_templates → M2/AUTOSARTemplates/SWComponentTemplate}/__init__.py +0 -0
- /armodel/models/{m2/autosar_templates/generic_structure → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can}/__init__.py +0 -0
- /armodel/models/{m2/autosar_templates/sw_component_template → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet}/__init__.py +0 -0
- /armodel/models/{m2/autosar_templates/sw_component_template/data_type → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin}/__init__.py +0 -0
- /armodel/models/{m2/msr → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore}/__init__.py +0 -0
- /armodel/models/{m2/msr/asam_hdo → M2/AUTOSARTemplates/SystemTemplate/Fibex}/__init__.py +0 -0
- /armodel/models/{m2/msr/data_dictionary → M2/AUTOSARTemplates}/__init__.py +0 -0
- /armodel/models/{m2/msr/documentation → M2/MSR/AsamHdo/Constraints}/__init__.py +0 -0
- /armodel/models/{system_template → M2/MSR/AsamHdo}/__init__.py +0 -0
- /armodel/models/{ecuc_parameter_def_template.py → M2/MSR/CalibrationData/__init__.py} +0 -0
- /armodel/models/{m2/autosar_templates/common_structure/constants.py → M2/MSR/DataDictionary/__init__.py} +0 -0
- {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/LICENSE +0 -0
- {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/WHEEL +0 -0
- {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/entry_points.txt +0 -0
- {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
|
-
from ....models.
|
|
4
|
-
|
|
3
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, PackageableElement
|
|
4
|
+
|
|
5
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AtpFeature
|
|
6
|
+
|
|
7
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement
|
|
8
|
+
|
|
9
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable, MultilanguageReferrable, Referrable
|
|
10
|
+
|
|
11
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
12
|
+
|
|
13
|
+
from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
14
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Limit
|
|
5
15
|
|
|
6
16
|
class TestGeneralStructure:
|
|
7
17
|
def test_ar_object(self):
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
|
|
2
|
-
from ....models.
|
|
3
|
-
from ....models.
|
|
2
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject
|
|
3
|
+
from ....models.M2.AUTOSARTemplates.CommonStructure.Implementation import Code
|
|
4
|
+
from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
class TestImplementation:
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
|
+
from ....models.M2.MSR.AsamHdo.ComputationMethod import Compu, CompuConst, CompuConstContent, CompuConstNumericContent, CompuConstTextContent, CompuContent, CompuScale
|
|
4
|
+
|
|
3
5
|
from .... import AUTOSAR
|
|
4
|
-
from ....models.
|
|
5
|
-
from ....models.
|
|
6
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
7
|
+
from ....models.M2.MSR.AsamHdo.ComputationMethod import CompuScales
|
|
6
8
|
|
|
7
9
|
class Test_M2_MSR_AsamHdo_ComputationMethod:
|
|
8
10
|
def test_CompuContent(self):
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
|
-
from ....models.
|
|
4
|
-
|
|
5
|
-
from ....models.
|
|
6
|
-
|
|
7
|
-
from ....models.
|
|
8
|
-
|
|
3
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import PackageableElement
|
|
4
|
+
|
|
5
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AtpFeature
|
|
6
|
+
|
|
7
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement
|
|
8
|
+
|
|
9
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable, MultilanguageReferrable, Referrable
|
|
10
|
+
|
|
11
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
12
|
+
|
|
13
|
+
from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
14
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
|
|
15
|
+
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import AtpPrototype, AutosarDataPrototype, DataPrototype, VariableDataPrototype
|
|
16
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AtpType
|
|
17
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
18
|
+
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ArgumentDataPrototype, ClientServerInterface, ClientServerOperation, DataInterface, NvDataInterface, ParameterInterface, PortInterface, SenderReceiverInterface
|
|
9
19
|
|
|
10
20
|
|
|
11
21
|
class Test_M2_AUTOSARTemplates_SWComponentTemplate_PortInterface:
|
|
@@ -40,7 +50,7 @@ class Test_M2_AUTOSARTemplates_SWComponentTemplate_PortInterface:
|
|
|
40
50
|
assert(isinstance(data_if, Referrable))
|
|
41
51
|
assert(isinstance(data_if, NvDataInterface))
|
|
42
52
|
|
|
43
|
-
assert(data_if.
|
|
53
|
+
assert(data_if.parent == ar_root)
|
|
44
54
|
assert(data_if.short_name == "NvDataInterface")
|
|
45
55
|
|
|
46
56
|
def test_ParameterInterface(self):
|
|
@@ -63,7 +73,7 @@ class Test_M2_AUTOSARTemplates_SWComponentTemplate_PortInterface:
|
|
|
63
73
|
assert(isinstance(data_if, Referrable))
|
|
64
74
|
assert(isinstance(data_if, ParameterInterface))
|
|
65
75
|
|
|
66
|
-
assert(data_if.
|
|
76
|
+
assert(data_if.parent == ar_root)
|
|
67
77
|
assert(data_if.short_name == "ParameterInterface")
|
|
68
78
|
|
|
69
79
|
def test_SenderReceiverInterface(self):
|
|
@@ -87,7 +97,7 @@ class Test_M2_AUTOSARTemplates_SWComponentTemplate_PortInterface:
|
|
|
87
97
|
assert(isinstance(sr_if, SenderReceiverInterface))
|
|
88
98
|
|
|
89
99
|
assert(sr_if.short_name == "sr_if")
|
|
90
|
-
assert(sr_if.
|
|
100
|
+
assert(sr_if.parent == ar_root)
|
|
91
101
|
assert(len(sr_if.getDataElements()) == 0)
|
|
92
102
|
|
|
93
103
|
element = sr_if.createDataElement("element")
|
|
@@ -117,7 +127,7 @@ class Test_M2_AUTOSARTemplates_SWComponentTemplate_PortInterface:
|
|
|
117
127
|
assert(isinstance(prototype, Referrable))
|
|
118
128
|
assert(isinstance(prototype, ArgumentDataPrototype))
|
|
119
129
|
|
|
120
|
-
assert(prototype.
|
|
130
|
+
assert(prototype.parent == ar_root)
|
|
121
131
|
assert(prototype.short_name == "ArgumentDataPrototype")
|
|
122
132
|
assert(prototype.direction == "")
|
|
123
133
|
assert(prototype.server_argument_impl_policy == "")
|
|
@@ -133,7 +143,7 @@ class Test_M2_AUTOSARTemplates_SWComponentTemplate_PortInterface:
|
|
|
133
143
|
assert(isinstance(app_error, Referrable))
|
|
134
144
|
assert(isinstance(app_error, ApplicationError))
|
|
135
145
|
|
|
136
|
-
assert(app_error.
|
|
146
|
+
assert(app_error.parent == ar_root)
|
|
137
147
|
assert(app_error.short_name == "ApplicationError")
|
|
138
148
|
|
|
139
149
|
def test_ClientServerOperation(self):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import filecmp
|
|
2
2
|
|
|
3
|
-
from ....models.
|
|
3
|
+
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
|
|
4
4
|
|
|
5
5
|
from .... import AUTOSAR
|
|
6
6
|
from .... import ARXMLParser, ARXMLWriter
|
|
@@ -153,30 +153,30 @@ class TestBswMD:
|
|
|
153
153
|
assert(artifact_descs[1].getShortLabel().getValue() == "make::BswM_rules.mak")
|
|
154
154
|
assert(artifact_descs[1].getCategory().getValue() == "SWMAKE")
|
|
155
155
|
|
|
156
|
-
assert(impl.
|
|
156
|
+
assert(impl.programmingLanguage.getValue() == "C")
|
|
157
157
|
|
|
158
|
-
assert(impl.
|
|
159
|
-
assert(len(impl.
|
|
158
|
+
assert(impl.resourceConsumption.short_name == "ResourceConsumption")
|
|
159
|
+
assert(len(impl.resourceConsumption.getMemorySections()) == 8)
|
|
160
160
|
|
|
161
|
-
section = impl.
|
|
161
|
+
section = impl.resourceConsumption.getMemorySection("CODE")
|
|
162
162
|
assert(section.short_name == "CODE")
|
|
163
163
|
assert(section.alignment == None)
|
|
164
164
|
assert(section.swAddrMethodRef.dest == "SW-ADDR-METHOD")
|
|
165
165
|
assert(section.swAddrMethodRef.value == "/AUTOSAR_MemMap/SwAddrMethods/CODE")
|
|
166
166
|
|
|
167
|
-
section = impl.
|
|
167
|
+
section = impl.resourceConsumption.getMemorySection("VAR_NO_INIT_UNSPECIFIED")
|
|
168
168
|
assert(section.short_name == "VAR_NO_INIT_UNSPECIFIED")
|
|
169
169
|
assert(section.alignment.getText() == "UNSPECIFIED")
|
|
170
170
|
assert(section.swAddrMethodRef.dest == "SW-ADDR-METHOD")
|
|
171
171
|
assert(section.swAddrMethodRef.value == "/AUTOSAR_MemMap/SwAddrMethods/VAR_NOINIT")
|
|
172
172
|
|
|
173
|
-
assert(impl.
|
|
174
|
-
assert(impl.
|
|
175
|
-
assert(impl.
|
|
176
|
-
assert(impl.
|
|
177
|
-
assert(impl.
|
|
178
|
-
assert(impl.
|
|
179
|
-
assert(impl.
|
|
173
|
+
assert(impl.vendorId.getValue() == 1)
|
|
174
|
+
assert(impl.swVersion.getValue() == "1.14.1")
|
|
175
|
+
assert(impl.swcBswMappingRef.dest == "SWC-BSW-MAPPING")
|
|
176
|
+
assert(impl.swcBswMappingRef.value == "/AUTOSAR_BswM/SwcBswMappings/SwcBswMapping_0")
|
|
177
|
+
assert(impl.arReleaseVersion.getValue() == "4.0.3")
|
|
178
|
+
assert(impl.behaviorRef.dest == "BSW-INTERNAL-BEHAVIOR")
|
|
179
|
+
assert(impl.behaviorRef.value == "/AUTOSAR_BswM/BswModuleDescriptions/BswM/InternalBehavior_0")
|
|
180
180
|
|
|
181
181
|
|
|
182
182
|
def test_load_save(self):
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import filecmp
|
|
2
|
-
from ....models.
|
|
2
|
+
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components 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.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
6
6
|
|
|
7
7
|
class TestSWComponents:
|
|
8
8
|
def setup_method(self):
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import filecmp
|
|
2
|
+
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType
|
|
3
|
+
from ....writer.arxml_writer import ARXMLWriter
|
|
4
|
+
from ....parser.arxml_parser import ARXMLParser
|
|
5
|
+
from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
6
|
+
|
|
7
|
+
class TestSystemTemplate:
|
|
8
|
+
def setup_method(self):
|
|
9
|
+
document = AUTOSAR.getInstance()
|
|
10
|
+
document.clear()
|
|
11
|
+
parser = ARXMLParser()
|
|
12
|
+
parser.load("src/armodel/tests/test_files/CanSystem.arxml", document)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def test_bswm_mode_arxml_loading_and_saving(self):
|
|
16
|
+
document = AUTOSAR.getInstance()
|
|
17
|
+
document.clear()
|
|
18
|
+
parser = ARXMLParser()
|
|
19
|
+
parser.load("src/armodel/tests/test_files/CanSystem.arxml", document)
|
|
20
|
+
|
|
21
|
+
writer = ARXMLWriter()
|
|
22
|
+
writer.save("data/generated_CanSystem.arxml", document)
|
|
23
|
+
|
|
24
|
+
#assert(filecmp.cmp("src/armodel/tests/test_files/CanSystem.arxml", "data/generated_CanSystem.arxml", shallow = False) == True)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
@@ -7,9 +7,12 @@ from colorama import Fore
|
|
|
7
7
|
import logging
|
|
8
8
|
import xml.etree.cElementTree as ET
|
|
9
9
|
|
|
10
|
-
from
|
|
10
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
11
11
|
|
|
12
|
-
from ..models.
|
|
12
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical
|
|
13
|
+
from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import TRefType
|
|
14
|
+
|
|
15
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
|
|
13
16
|
|
|
14
17
|
class AbstractARXMLWriter:
|
|
15
18
|
__metaclass__ = ABCMeta
|
armodel/writer/arxml_writer.py
CHANGED
|
@@ -2,70 +2,93 @@ import xml.etree.cElementTree as ET
|
|
|
2
2
|
|
|
3
3
|
from typing import List
|
|
4
4
|
|
|
5
|
-
from
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
from ..models.
|
|
10
|
-
from ..models.
|
|
11
|
-
from ..models.
|
|
12
|
-
from ..models.
|
|
13
|
-
from ..models.
|
|
14
|
-
|
|
15
|
-
from ..models.
|
|
16
|
-
from ..models.
|
|
17
|
-
from ..models.
|
|
18
|
-
from ..models.
|
|
19
|
-
from ..models.
|
|
20
|
-
from ..models.
|
|
21
|
-
from ..models.
|
|
22
|
-
from ..models.
|
|
23
|
-
from ..models.
|
|
24
|
-
from ..models.
|
|
25
|
-
from ..models.
|
|
26
|
-
|
|
27
|
-
from ..models.
|
|
28
|
-
from ..models.
|
|
29
|
-
from ..models.
|
|
30
|
-
from ..models.
|
|
31
|
-
from ..models.
|
|
32
|
-
from ..models.
|
|
33
|
-
from ..models.
|
|
34
|
-
|
|
35
|
-
from ..models.
|
|
36
|
-
from ..models.
|
|
37
|
-
from ..models.
|
|
38
|
-
from ..models.
|
|
39
|
-
from ..models.
|
|
40
|
-
|
|
41
|
-
from ..models.
|
|
42
|
-
from ..models.
|
|
43
|
-
from ..models.
|
|
44
|
-
from ..models.
|
|
45
|
-
from ..models.
|
|
46
|
-
from ..models.
|
|
47
|
-
from ..models.
|
|
48
|
-
from ..models.
|
|
49
|
-
from ..models.
|
|
50
|
-
from ..models.
|
|
51
|
-
from ..models.
|
|
52
|
-
from ..models.
|
|
53
|
-
from ..models.
|
|
54
|
-
from ..models.
|
|
55
|
-
from ..models.
|
|
56
|
-
from ..models.
|
|
57
|
-
from ..models.
|
|
58
|
-
from ..models.
|
|
59
|
-
|
|
60
|
-
from ..models.
|
|
61
|
-
from ..models.
|
|
62
|
-
from ..models.
|
|
63
|
-
from ..models.
|
|
64
|
-
from ..models.
|
|
65
|
-
from ..models.
|
|
66
|
-
from ..models.
|
|
67
|
-
from ..models.
|
|
68
|
-
from ..models.
|
|
5
|
+
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroup, SwRecordLayoutV
|
|
6
|
+
from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import InternalConstrs, PhysConstrs
|
|
7
|
+
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxis
|
|
8
|
+
from ..models.M2.MSR.DataDictionary.Axis import SwAxisGrouped, SwAxisIndividual
|
|
9
|
+
from ..models.M2.MSR.CalibrationData.CalibrationValue import SwValueCont, SwValues
|
|
10
|
+
from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition, SwBaseType
|
|
11
|
+
from ..models.M2.MSR.AsamHdo.SpecialData import Sdg
|
|
12
|
+
from ..models.M2.MSR.AsamHdo.AdminData import AdminData
|
|
13
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuConstTextContent, CompuNominatorDenominator, CompuScale, CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
|
|
14
|
+
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph, MultiLanguageParagraph
|
|
15
|
+
from ..models.M2.MSR.DataDictionary.AuxillaryObjects import SwAddrMethod
|
|
16
|
+
from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps
|
|
17
|
+
from ..models.M2.MSR.AsamHdo.Units import PhysicalDimension
|
|
18
|
+
from ..models.M2.MSR.Documentation.BlockElements import DocumentationBlock
|
|
19
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuMethod
|
|
20
|
+
from ..models.M2.MSR.DataDictionary.DataDefProperties import ValueList
|
|
21
|
+
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
|
|
22
|
+
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayout
|
|
23
|
+
from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr
|
|
24
|
+
from ..models.M2.MSR.AsamHdo.Units import Unit
|
|
25
|
+
from ..models.M2.MSR.Documentation.Annotation import Annotation
|
|
26
|
+
|
|
27
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption
|
|
28
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent, TimingEvent
|
|
29
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import TimingExtension
|
|
30
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import EOCExecutableEntityRef, ExecutionOrderConstraint
|
|
31
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
|
|
32
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
33
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
34
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType, AutosarDataType
|
|
35
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping, SwcBswRunnableMapping
|
|
36
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
|
|
37
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import Code, Implementation
|
|
38
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndDescription, EndToEndProtection, EndToEndProtectionVariablePrototype
|
|
39
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import RoleBasedDataAssignment, ServiceDependency
|
|
40
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
|
|
41
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
|
|
42
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclaration, ModeDeclarationGroup
|
|
43
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
|
|
44
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import CompositeNetworkRepresentation, TransmissionAcknowledgementRequest
|
|
45
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, MultilanguageReferrable, Referrable
|
|
46
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswCalledEntity, BswEvent, BswInternalBehavior, BswModeSenderPolicy, BswModuleEntity, BswSchedulableEntity, BswScheduleEvent, BswTimingEvent
|
|
47
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
|
|
48
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference, ConstantSpecification, NumericalValueSpecification, RecordValueSpecification, TextValueSpecification, ValueSpecification
|
|
49
|
+
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
|
|
50
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
|
|
51
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, CompositionSwComponentType, EcuAbstractionSwComponentType, PortGroup, SwComponentType, PPortPrototype, PortPrototype, RPortPrototype
|
|
52
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import InnerPortGroupInCompositionInstanceRef, PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef, RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
|
|
53
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import RunnableEntity, RunnableEntityArgument, SwcInternalBehavior, SynchronousServerCallPoint
|
|
54
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
|
|
55
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
|
|
56
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import AssemblySwConnector, DelegationSwConnector, SwComponentPrototype, SwConnector
|
|
57
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef, ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef
|
|
58
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
|
|
59
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef, AutosarVariableRef, VariableInAtomicSWCTypeInstanceRef
|
|
60
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, RPortComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
|
|
61
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef
|
|
62
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderReceiverToSignalGroupMapping, SenderReceiverToSignalMapping
|
|
63
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate import System, SystemMapping
|
|
64
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode
|
|
65
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig
|
|
66
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import VariableDataPrototypeInSystemInstanceRef
|
|
67
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway, ISignalMapping
|
|
68
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame, CanFrameTriggering, RxIdentifierRange
|
|
69
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FrameTriggering, IPdu, ISignalGroup, ISignalIPdu, ISignalIPduGroup, ISignalTriggering, PduTriggering, SecuredIPdu, SystemSignal, DcmIPdu, Frame, ISignal, NPdu, NmPdu, SystemSignalGroup
|
|
70
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering, LinUnconditionalFrame
|
|
71
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanCluster, EcuInstance, CanPhysicalChannel, CommunicationCluster, LinCluster, LinPhysicalChannel, PhysicalChannel
|
|
72
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
|
|
73
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming
|
|
74
|
+
|
|
75
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import RoleBasedPortAssignment, SwcServiceDependency
|
|
76
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import NvBlockNeeds
|
|
77
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationArrayElement, ApplicationCompositeElementDataPrototype, ApplicationRecordElement, AutosarDataPrototype, DataPrototype, ParameterDataPrototype, VariableDataPrototype
|
|
78
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
|
|
79
|
+
from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
80
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ServiceSwComponentType
|
|
81
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
|
|
82
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
|
|
83
|
+
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxisSet
|
|
84
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroupPrototype
|
|
85
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
|
|
86
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Limit
|
|
87
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
|
|
88
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ClientServerInterface, ClientServerOperation, ModeSwitchInterface, ParameterInterface, PortInterface, SenderReceiverInterface, TriggerInterface
|
|
89
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
|
|
90
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import ResourceConsumption
|
|
91
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
|
|
69
92
|
|
|
70
93
|
from .abstract_arxml_writer import AbstractARXMLWriter
|
|
71
94
|
class ARXMLWriter(AbstractARXMLWriter):
|
|
@@ -678,10 +701,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
678
701
|
raise NotImplementedError("Unsupported ApplicationDataType <%s>" % type(data_type))
|
|
679
702
|
|
|
680
703
|
def writeBaseTypeDirectDefinition(self, element: ET.Element, base_type_definition: BaseTypeDirectDefinition):
|
|
681
|
-
self.setChildElementOptionalNumericalValue(element, "BASE-TYPE-SIZE", base_type_definition.
|
|
682
|
-
self.setChildElementOptionalLiteral(element, "BASE-TYPE-ENCODING", base_type_definition.
|
|
683
|
-
self.setChildElementOptionalNumericalValue(element, "MEM-ALIGNMENT", base_type_definition.
|
|
684
|
-
self.setChildElementOptionalLiteral(element, "NATIVE-DECLARATION", base_type_definition.
|
|
704
|
+
self.setChildElementOptionalNumericalValue(element, "BASE-TYPE-SIZE", base_type_definition.baseTypeSize)
|
|
705
|
+
self.setChildElementOptionalLiteral(element, "BASE-TYPE-ENCODING", base_type_definition.baseTypeEncoding)
|
|
706
|
+
self.setChildElementOptionalNumericalValue(element, "MEM-ALIGNMENT", base_type_definition.memAlignment)
|
|
707
|
+
self.setChildElementOptionalLiteral(element, "NATIVE-DECLARATION", base_type_definition.nativeDeclaration)
|
|
685
708
|
|
|
686
709
|
def writeSwBaseType(self, element: ET.Element, base_type: SwBaseType):
|
|
687
710
|
data_type_tag = ET.SubElement(element, "SW-BASE-TYPE")
|
|
@@ -836,7 +859,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
836
859
|
child_element = ET.SubElement(element, "DISABLED-MODE-IREFS")
|
|
837
860
|
for iref in irefs:
|
|
838
861
|
self.setRModeInAtomicSwcInstanceRef(child_element, "DISABLED-MODE-IREF", iref)
|
|
839
|
-
self.setChildElementOptionalRefType(element, "START-ON-EVENT-REF", event.
|
|
862
|
+
self.setChildElementOptionalRefType(element, "START-ON-EVENT-REF", event.startOnEventRef)
|
|
840
863
|
|
|
841
864
|
def setTimingEvent(self, element: ET.Element, event: TimingEvent):
|
|
842
865
|
if event is not None:
|
|
@@ -848,7 +871,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
848
871
|
if event is not None:
|
|
849
872
|
child_element = ET.SubElement(element, "OPERATION-INVOKED-EVENT")
|
|
850
873
|
self.setRTEEvent(child_element, event)
|
|
851
|
-
self.setPOperationInAtomicSwcInstanceRef(child_element, "OPERATION-IREF", event.
|
|
874
|
+
self.setPOperationInAtomicSwcInstanceRef(child_element, "OPERATION-IREF", event.operationIRef)
|
|
852
875
|
|
|
853
876
|
def setSwcModeSwitchEvent(self, element: ET.Element, event: SwcModeSwitchEvent):
|
|
854
877
|
if event is not None:
|
|
@@ -1141,7 +1164,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1141
1164
|
if argument_value.value is not None:
|
|
1142
1165
|
value_tag = ET.SubElement(child_element, "VALUE")
|
|
1143
1166
|
self.setValueSpecification(value_tag, argument_value.value)
|
|
1144
|
-
self.setChildElementOptionalRefType(child_element, "VALUE-TYPE-TREF", argument_value.
|
|
1167
|
+
self.setChildElementOptionalRefType(child_element, "VALUE-TYPE-TREF", argument_value.valueTypeTRef)
|
|
1145
1168
|
|
|
1146
1169
|
def writePortAPIOptions(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1147
1170
|
options = behavior.getPortAPIOptions()
|
|
@@ -1149,10 +1172,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1149
1172
|
port_api_options_tag = ET.SubElement(element, "PORT-API-OPTIONS")
|
|
1150
1173
|
for option in options:
|
|
1151
1174
|
child_element = ET.SubElement(port_api_options_tag, "PORT-API-OPTION")
|
|
1152
|
-
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS", option.
|
|
1153
|
-
self.setChildElementOptionalBooleanValue(child_element, "INDIRECT-API", option.
|
|
1175
|
+
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS", option.enableTakeAddress)
|
|
1176
|
+
self.setChildElementOptionalBooleanValue(child_element, "INDIRECT-API", option.indirectAPI)
|
|
1154
1177
|
self.writePortDefinedArgumentValues(child_element, option)
|
|
1155
|
-
self.setChildElementOptionalRefType(child_element, "PORT-REF", option.
|
|
1178
|
+
self.setChildElementOptionalRefType(child_element, "PORT-REF", option.portRef)
|
|
1156
1179
|
|
|
1157
1180
|
def writeServiceDependency(self, element: ET.Element, dependency: ServiceDependency):
|
|
1158
1181
|
self.setIdentifiable(element, dependency)
|
|
@@ -1165,7 +1188,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1165
1188
|
|
|
1166
1189
|
def writeRoleBasedPortAssignment(self, element: ET.Element, assignment: RoleBasedPortAssignment):
|
|
1167
1190
|
child_element = ET.SubElement(element, "ROLE-BASED-PORT-ASSIGNMENT")
|
|
1168
|
-
self.setChildElementOptionalRefType(child_element, "PORT-PROTOTYPE-REF", assignment.
|
|
1191
|
+
self.setChildElementOptionalRefType(child_element, "PORT-PROTOTYPE-REF", assignment.portPrototypeRef)
|
|
1169
1192
|
self.setChildElementOptionalLiteral(child_element, "ROLE", assignment.role)
|
|
1170
1193
|
|
|
1171
1194
|
def writeSwcServiceDependencyAssignedData(self, element: ET.Element, dependency: SwcServiceDependency):
|
|
@@ -1333,18 +1356,18 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1333
1356
|
def writeImplementation(self, element: ET.Element, impl: Implementation):
|
|
1334
1357
|
self.setIdentifiable(element, impl)
|
|
1335
1358
|
self.writeCodeDescriptors(element, impl)
|
|
1336
|
-
self.setChildElementOptionalLiteral(element, "PROGRAMMING-LANGUAGE", impl.
|
|
1359
|
+
self.setChildElementOptionalLiteral(element, "PROGRAMMING-LANGUAGE", impl.getProgrammingLanguage())
|
|
1337
1360
|
self.setResourceConsumption(element, impl.getResourceConsumption())
|
|
1338
|
-
self.setChildElementOptionalLiteral(element, "SW-VERSION", impl.
|
|
1339
|
-
self.setChildElementOptionalRefType(element, "SWC-BSW-MAPPING-REF", impl.
|
|
1340
|
-
self.setChildElementOptionalLiteral(element, "USED-CODE-GENERATOR", impl.
|
|
1341
|
-
self.setChildElementOptionalNumericalValue(element, "VENDOR-ID", impl.
|
|
1361
|
+
self.setChildElementOptionalLiteral(element, "SW-VERSION", impl.getSwVersion())
|
|
1362
|
+
self.setChildElementOptionalRefType(element, "SWC-BSW-MAPPING-REF", impl.getSwcBswMappingRef())
|
|
1363
|
+
self.setChildElementOptionalLiteral(element, "USED-CODE-GENERATOR", impl.getUsedCodeGenerator())
|
|
1364
|
+
self.setChildElementOptionalNumericalValue(element, "VENDOR-ID", impl.getVendorId())
|
|
1342
1365
|
|
|
1343
1366
|
def writeSwcImplementation(self, element: ET.Element, impl: SwcImplementation):
|
|
1344
1367
|
self.logger.debug("writeSwcImplementation %s" % impl.short_name)
|
|
1345
1368
|
child_element = ET.SubElement(element, "SWC-IMPLEMENTATION")
|
|
1346
1369
|
self.writeImplementation(child_element, impl)
|
|
1347
|
-
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.
|
|
1370
|
+
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.getBehaviorRef())
|
|
1348
1371
|
|
|
1349
1372
|
def writeEndToEndDescriptionDataId(self, element: ET.Element, parent: EndToEndDescription):
|
|
1350
1373
|
data_ids = parent.getDataIds()
|
|
@@ -1358,18 +1381,18 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1358
1381
|
child_element = ET.SubElement(element, key)
|
|
1359
1382
|
self.setChildElementOptionalLiteral(child_element, "CATEGORY", desc.category)
|
|
1360
1383
|
self.writeEndToEndDescriptionDataId(child_element, desc)
|
|
1361
|
-
self.setChildElementOptionalNumericalValue(child_element, "DATA-ID-MODE", desc.
|
|
1362
|
-
self.setChildElementOptionalNumericalValue(child_element, "MAX-DELTA-COUNTER-INIT", desc.
|
|
1363
|
-
self.setChildElementOptionalNumericalValue(child_element, "CRC-OFFSET", desc.
|
|
1364
|
-
self.setChildElementOptionalNumericalValue(child_element, "COUNTER-OFFSET", desc.
|
|
1384
|
+
self.setChildElementOptionalNumericalValue(child_element, "DATA-ID-MODE", desc.getDataIdMode())
|
|
1385
|
+
self.setChildElementOptionalNumericalValue(child_element, "MAX-DELTA-COUNTER-INIT", desc.getMaxDeltaCounterInit())
|
|
1386
|
+
self.setChildElementOptionalNumericalValue(child_element, "CRC-OFFSET", desc.getCrcOffset())
|
|
1387
|
+
self.setChildElementOptionalNumericalValue(child_element, "COUNTER-OFFSET", desc.getCounterOffset())
|
|
1365
1388
|
|
|
1366
1389
|
def setVariableDataPrototypeInSystemInstanceRef(self, element: ET.Element, key: str, iref: VariableDataPrototypeInSystemInstanceRef):
|
|
1367
1390
|
if iref is not None:
|
|
1368
1391
|
child_element = ET.SubElement(element, key)
|
|
1369
|
-
self.setChildElementOptionalRefType(child_element, "CONTEXT-COMPONENT-REF", iref.
|
|
1370
|
-
self.setChildElementOptionalRefType(child_element, "CONTEXT-COMPOSITION-REF", iref.
|
|
1371
|
-
self.setChildElementOptionalRefType(child_element, "CONTEXT-PORT-REF", iref.
|
|
1372
|
-
self.setChildElementOptionalRefType(child_element, "TARGET-DATA-PROTOTYPE-REF", iref.
|
|
1392
|
+
#self.setChildElementOptionalRefType(child_element, "CONTEXT-COMPONENT-REF", iref.getContextComponentRefs()) # TODO
|
|
1393
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-COMPOSITION-REF", iref.getContextCompositionRef())
|
|
1394
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-PORT-REF", iref.getContextPortRef())
|
|
1395
|
+
self.setChildElementOptionalRefType(child_element, "TARGET-DATA-PROTOTYPE-REF", iref.getTargetDataPrototypeRef())
|
|
1373
1396
|
|
|
1374
1397
|
def setEndToEndProtectionVariablePrototype(self, element: ET.Element, key: str, prototype: EndToEndProtectionVariablePrototype):
|
|
1375
1398
|
if prototype is not None:
|
|
@@ -1667,8 +1690,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1667
1690
|
self.logger.debug("writeBswModuleDescription %s" % impl.short_name)
|
|
1668
1691
|
child_element = ET.SubElement(element, "BSW-IMPLEMENTATION")
|
|
1669
1692
|
self.writeImplementation(child_element, impl)
|
|
1670
|
-
self.setChildElementOptionalLiteral(child_element, "AR-RELEASE-VERSION", impl.
|
|
1671
|
-
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.
|
|
1693
|
+
self.setChildElementOptionalLiteral(child_element, "AR-RELEASE-VERSION", impl.getArReleaseVersion())
|
|
1694
|
+
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.getBehaviorRef())
|
|
1672
1695
|
self.writeBswImplementationVendorSpecificModuleDefRefs(child_element, impl)
|
|
1673
1696
|
|
|
1674
1697
|
def writeImplementationDataTypeElements(self, element: ET.Element, parent: ImplementationDataType):
|
|
@@ -2490,6 +2513,16 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2490
2513
|
self.setIdentifiable(child_element, signal)
|
|
2491
2514
|
self.setChildElementOptionalBooleanValue(child_element, "DYNAMIC-LENGTH", signal.getDynamicLength())
|
|
2492
2515
|
|
|
2516
|
+
def writeParameterInterface(self, element: ET.Element, signal: SystemSignal):
|
|
2517
|
+
self.logger.debug("Write ParameterInterface %s" % signal.short_name)
|
|
2518
|
+
child_element = ET.SubElement(element, "PARAMETER-INTERFACE")
|
|
2519
|
+
self.setIdentifiable(child_element, signal)
|
|
2520
|
+
|
|
2521
|
+
def writeGenericEthernetFrame(self, element: ET.Element, signal: SystemSignal):
|
|
2522
|
+
self.logger.debug("Write GenericEthernetFrame %s" % signal.short_name)
|
|
2523
|
+
child_element = ET.SubElement(element, "ETHERNET-FRAME")
|
|
2524
|
+
self.writeFrame(child_element, signal)
|
|
2525
|
+
|
|
2493
2526
|
def writeISignalToPduMappings(self, element: ET.Element, parent: ISignalIPdu):
|
|
2494
2527
|
mappings = parent.getISignalToPduMappings()
|
|
2495
2528
|
if len(mappings) > 0:
|
|
@@ -2595,6 +2628,18 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2595
2628
|
self.writeGateway(element, ar_element)
|
|
2596
2629
|
elif isinstance(ar_element, ISignal):
|
|
2597
2630
|
self.writeISignal(element, ar_element)
|
|
2631
|
+
elif isinstance(ar_element, System):
|
|
2632
|
+
self.writeSystem(element, ar_element)
|
|
2633
|
+
elif isinstance(ar_element, EcuInstance):
|
|
2634
|
+
self.writeEcuInstance(element, ar_element)
|
|
2635
|
+
elif isinstance(ar_element, ISignalIPdu):
|
|
2636
|
+
self.writeISignalIPdu(element, ar_element)
|
|
2637
|
+
elif isinstance(ar_element, SystemSignal):
|
|
2638
|
+
self.writeSystemSignal(element, ar_element)
|
|
2639
|
+
elif isinstance(ar_element, ParameterInterface):
|
|
2640
|
+
self.writeParameterInterface(element, ar_element)
|
|
2641
|
+
elif isinstance(ar_element, GenericEthernetFrame):
|
|
2642
|
+
self.writeGenericEthernetFrame(element, ar_element)
|
|
2598
2643
|
else:
|
|
2599
2644
|
raise NotImplementedError("Unsupported Elements of ARPackage <%s>" % type(ar_element))
|
|
2600
2645
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: armodel
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.4
|
|
4
4
|
Summary: the python arxml parser
|
|
5
5
|
Home-page: http://github.com/melodypapa/py-armodel
|
|
6
6
|
Author: melodypapa
|
|
@@ -354,3 +354,18 @@ Fix the attribute intervalType of **Limit** is empty issue.
|
|
|
354
354
|
1. Organize the armodel package.
|
|
355
355
|
2. Add the Get/Set method for several class.
|
|
356
356
|
|
|
357
|
+
**Version 1.6.2**
|
|
358
|
+
|
|
359
|
+
1. Change the AUTOSAR.clear() to AUTOSAR.new().
|
|
360
|
+
2. Fix the several refactor methods issue.
|
|
361
|
+
|
|
362
|
+
**Version 1.6.3**
|
|
363
|
+
|
|
364
|
+
1. Change the Package structure according to AUTOSAR standard.
|
|
365
|
+
|
|
366
|
+
**Version 1.6.4**
|
|
367
|
+
|
|
368
|
+
1. Refactor the Implementation.
|
|
369
|
+
2. Fix the Binary value
|
|
370
|
+
3. Refactor the SwComponentType.
|
|
371
|
+
|