armodel 1.6.3__py3-none-any.whl → 1.7.0__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 +7 -7
- armodel/cli/arxml_format_cli.py +14 -12
- armodel/cli/connector2xlsx_cli.py +2 -3
- armodel/cli/connector_update_cli.py +1 -4
- 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 +2 -2
- armodel/lib/system_signal.py +1 -3
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +5 -10
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +9 -11
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +51 -12
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +3 -3
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +5 -6
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__init__.py +4 -1
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +86 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +186 -29
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +7 -10
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +21 -11
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +3 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +3 -6
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +3 -5
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +10 -6
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +3 -4
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +2 -5
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +0 -1
- 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 +2 -2
- armodel/models/M2/AUTOSARTemplates/CommonStructure/__init__.py +4 -6
- armodel/models/M2/AUTOSARTemplates/{ecuc_description_template.py → ECUCDescriptionTemplate.py} +6 -11
- armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +3 -6
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +42 -36
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +2 -5
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +11 -16
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +87 -4
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__init__.py +0 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +21 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py +2 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +114 -12
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py +2 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +4 -62
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +6 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +7 -7
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__init__.py +0 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/{port_interface/instance_refs.py → PortInterface/InstanceRefs.py} +2 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/{port_interface → PortInterface}/__init__.py +10 -10
- armodel/models/{rpt_scenario.py → M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py} +4 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +29 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +6 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +2 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +3 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +28 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py +3 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +86 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +174 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py +3 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +37 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +2 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +166 -10
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/{data_mapping.py → DataMapping.py} +2 -3
- armodel/models/{fibex/can_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py} +3 -4
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +173 -0
- 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} +4 -5
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__init__.py +0 -0
- armodel/models/{fibex/fibex_4_multiplatform.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py} +5 -6
- armodel/models/{fibex/fibex_core/core_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py} +6 -14
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +388 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +223 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +177 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +39 -2
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/{network_management.py → NetworkManagement.py} +5 -10
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +6 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +86 -17
- armodel/models/M2/MSR/AsamHdo/AdminData.py +2 -5
- armodel/models/M2/MSR/AsamHdo/BaseTypes.py +3 -3
- armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +5 -6
- armodel/models/M2/MSR/AsamHdo/Constraints/GlobalConstraints.py +3 -4
- armodel/models/M2/MSR/AsamHdo/Constraints/__init__.py +0 -1
- armodel/models/M2/MSR/AsamHdo/SpecialData.py +1 -4
- armodel/models/M2/MSR/AsamHdo/Units.py +3 -6
- armodel/models/M2/MSR/AsamHdo/__init__.py +0 -1
- armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +3 -7
- armodel/models/M2/MSR/CalibrationData/__init__.py +0 -1
- armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +3 -6
- armodel/models/M2/MSR/DataDictionary/Axis.py +3 -3
- armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +3 -3
- armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +5 -6
- armodel/models/M2/MSR/DataDictionary/RecordLayout.py +4 -4
- armodel/models/M2/MSR/DataDictionary/__init__.py +0 -1
- armodel/models/M2/MSR/Documentation/Annotation.py +4 -6
- armodel/models/M2/MSR/Documentation/BlockElements.py +2 -2
- armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +1 -2
- armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +3 -6
- armodel/models/M2/MSR/Documentation/TextModel/__init__.py +0 -2
- armodel/models/M2/MSR/Documentation/__init__.py +1 -1
- armodel/models/M2/MSR/__init__.py +1 -1
- armodel/models/M2/__init__.py +0 -1
- armodel/models/__init__.py +57 -3
- armodel/parser/abstract_arxml_parser.py +50 -16
- armodel/parser/arxml_parser.py +285 -112
- armodel/parser/file_parser.py +2 -1
- armodel/report/connector_xls_report.py +2 -1
- armodel/tests/test_armodel/models/test_ar_object.py +0 -2
- armodel/tests/test_armodel/models/test_ar_package.py +4 -4
- armodel/tests/test_armodel/models/test_data_prototype.py +1 -1
- armodel/tests/test_armodel/models/test_datatype.py +7 -7
- armodel/tests/test_armodel/models/test_port_interface.py +6 -6
- armodel/tests/test_armodel/parser/test_parse_bswmd.py +12 -12
- armodel/tests/test_armodel/parser/test_sw_components.py +1 -23
- armodel/tests/test_armodel/parser/test_system.py +3 -3
- armodel/writer/abstract_arxml_writer.py +10 -1
- armodel/writer/arxml_writer.py +249 -80
- {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/METADATA +385 -366
- armodel-1.7.0.dist-info/RECORD +160 -0
- {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/WHEEL +1 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/transport_protocols.py +0 -7
- armodel/models/fibex/fibex_core/core_topology.py +0 -184
- armodel/models/sw_component.py +0 -390
- armodel/models/timing.py +0 -91
- armodel-1.6.3.dist-info/RECORD +0 -148
- /armodel/models/{fibex → M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint}/__init__.py +0 -0
- /armodel/models/{fibex/fibex_4_can → M2/AUTOSARTemplates/CommonStructure/Timing}/__init__.py +0 -0
- /armodel/models/{fibex/fibex_4_lin → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can}/__init__.py +0 -0
- /armodel/models/{fibex/fibex_core → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet}/__init__.py +0 -0
- {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/LICENSE +0 -0
- {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/entry_points.txt +0 -0
- {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/top_level.txt +0 -0
armodel/parser/arxml_parser.py
CHANGED
|
@@ -2,96 +2,84 @@ from typing import List
|
|
|
2
2
|
import xml.etree.ElementTree as ET
|
|
3
3
|
import os
|
|
4
4
|
|
|
5
|
-
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroupContent, SwRecordLayoutV
|
|
6
5
|
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
from ..models.M2.MSR.AsamHdo.AdminData import AdminData
|
|
10
|
+
from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition
|
|
11
|
+
from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstrRule, InternalConstrs, PhysConstrs, DataConstr
|
|
12
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuMethod, Compu, CompuConst, CompuConstTextContent, CompuNominatorDenominator, CompuRationalCoeffs, CompuScale, CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
|
|
13
|
+
from ..models.M2.MSR.AsamHdo.SpecialData import Sdg, Sd
|
|
14
|
+
from ..models.M2.MSR.CalibrationData.CalibrationValue import SwValueCont, SwValues
|
|
15
|
+
from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, SwPointerTargetProps
|
|
9
16
|
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxis
|
|
10
17
|
from ..models.M2.MSR.DataDictionary.Axis import SwAxisGrouped, SwAxisIndividual
|
|
11
|
-
from ..models.M2.MSR.
|
|
12
|
-
from ..models.M2.MSR.
|
|
13
|
-
from ..models.M2.MSR.
|
|
14
|
-
from ..models.M2.MSR.
|
|
15
|
-
from ..models.M2.MSR.
|
|
16
|
-
from ..models.M2.MSR.Documentation.
|
|
18
|
+
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroupContent, SwRecordLayoutV
|
|
19
|
+
from ..models.M2.MSR.DataDictionary.DataDefProperties import ValueList
|
|
20
|
+
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroup
|
|
21
|
+
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxisSet
|
|
22
|
+
from ..models.M2.MSR.Documentation.Annotation import Annotation, GeneralAnnotation
|
|
23
|
+
from ..models.M2.MSR.Documentation.BlockElements import DocumentationBlock
|
|
24
|
+
from ..models.M2.MSR.Documentation.TextModel.LanguageDataModel import LLongName, LOverviewParagraph
|
|
17
25
|
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph, MultiLanguageParagraph, MultilanguageLongName
|
|
18
|
-
from ..models.M2.MSR.Documentation.Annotation import GeneralAnnotation
|
|
19
26
|
|
|
20
|
-
from ..models.M2.AUTOSARTemplates.
|
|
21
|
-
from ..models.M2.AUTOSARTemplates.
|
|
22
|
-
from ..models.M2.AUTOSARTemplates.
|
|
23
|
-
from ..models.M2.AUTOSARTemplates.
|
|
24
|
-
from ..models.M2.AUTOSARTemplates.
|
|
27
|
+
from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
28
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalBehavior, BswModuleEntity, BswScheduleEvent, BswModeSenderPolicy
|
|
29
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
|
|
30
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
31
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference, NumericalValueSpecification, RecordValueSpecification, TextValueSpecification, ValueSpecification
|
|
32
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Filter import DataFilter
|
|
33
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import ImplementationProps, Code
|
|
34
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup, ModeRequestTypeMap, ModeDeclarationGroupPrototype
|
|
25
35
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import ResourceConsumption
|
|
26
36
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.MemorySectionUsage import MemorySection
|
|
27
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
|
|
28
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
|
|
37
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity, InternalBehavior
|
|
29
38
|
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping, SwcBswRunnableMapping
|
|
30
|
-
from ..models.M2.AUTOSARTemplates.
|
|
31
|
-
from ..models.M2.AUTOSARTemplates.
|
|
32
|
-
from ..models.M2.AUTOSARTemplates.
|
|
33
|
-
from ..models.M2.AUTOSARTemplates.
|
|
34
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.
|
|
35
|
-
from ..models.M2.AUTOSARTemplates.
|
|
39
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import RoleBasedDataAssignment, ServiceDependency
|
|
40
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import Implementation
|
|
41
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
|
|
42
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import ExecutionOrderConstraint
|
|
43
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import TimingExtension
|
|
44
|
+
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
|
|
36
45
|
from ..models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
|
|
37
|
-
from ..models.M2.AUTOSARTemplates.
|
|
46
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable, MultilanguageReferrable
|
|
47
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
|
|
48
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
|
|
49
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARLiteral
|
|
50
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption, PortDefinedArgumentValue
|
|
51
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import DataReceivedEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent
|
|
52
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationRecordDataType, ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, AutosarDataType, DataTypeMap, DataTypeMappingSet
|
|
53
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet, EndToEndDescription, EndToEndProtection, EndToEndProtectionVariablePrototype
|
|
38
54
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef, ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef
|
|
39
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
55
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
|
|
40
56
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef, AutosarVariableRef, VariableInAtomicSWCTypeInstanceRef
|
|
41
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import VariableDataPrototypeInSystemInstanceRef
|
|
42
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import InnerPortGroupInCompositionInstanceRef, PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef
|
|
43
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import RunnableEntityArgument
|
|
44
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import PortGroup, SwComponentType, SymbolProps, PPortPrototype, RPortPrototype
|
|
45
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import AssemblySwConnector, CompositionSwComponentType, DelegationSwConnector
|
|
46
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import ModeAccessPoint
|
|
47
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
|
|
48
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
|
|
49
|
-
|
|
50
|
-
from ..models.fibex.lin_communication import LinFrameTriggering
|
|
51
|
-
from ..models.fibex.fibex_core.core_topology import AbstractCanCluster, CanPhysicalChannel, CommunicationCluster, LinPhysicalChannel, PhysicalChannel
|
|
52
|
-
from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, SwPointerTargetProps
|
|
53
|
-
from ..models.M2.MSR.Documentation.BlockElements import DocumentationBlock
|
|
54
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate import System, SystemMapping
|
|
55
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.data_mapping import SenderReceiverToSignalGroupMapping, SenderReceiverToSignalMapping
|
|
56
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.network_management import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode
|
|
57
|
-
from ..models.fibex.can_communication import CanFrameTriggering, RxIdentifierRange
|
|
58
|
-
from ..models.M2.AUTOSARTemplates.ecuc_description_template import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
|
|
59
57
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import CompositeNetworkRepresentation, TransmissionAcknowledgementRequest
|
|
60
|
-
from ..models.fibex.fibex_4_multiplatform import ISignalMapping
|
|
61
|
-
from ..models.fibex.fibex_core.core_communication import Frame, FrameTriggering, IPdu, ISignalIPdu, ISignalTriggering, PduTriggering
|
|
62
58
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
63
|
-
from ..models.
|
|
64
|
-
from ..models.M2.AUTOSARTemplates.
|
|
65
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
66
|
-
from ..models.M2.AUTOSARTemplates.
|
|
67
|
-
from ..models.M2.AUTOSARTemplates.
|
|
68
|
-
from ..models.M2.AUTOSARTemplates.
|
|
69
|
-
from ..models.M2.
|
|
70
|
-
from ..models.M2.
|
|
71
|
-
from ..models.M2.
|
|
72
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
73
|
-
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxisSet
|
|
74
|
-
|
|
75
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
|
|
76
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import RoleBasedPortAssignment
|
|
77
|
-
from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
78
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
|
|
79
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import RoleBasedDataAssignment
|
|
80
|
-
from ..models.sw_component import AtomicSwComponentType, PortAPIOption, PortDefinedArgumentValue, ServiceDependency, SwcServiceDependency
|
|
59
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import InnerPortGroupInCompositionInstanceRef, PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef, RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
|
|
60
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import RunnableEntity, RunnableEntityArgument, SwcInternalBehavior
|
|
61
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType, PortGroup, SwComponentType, SymbolProps, PPortPrototype, RPortPrototype
|
|
62
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import AssemblySwConnector, DelegationSwConnector
|
|
63
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet, ModeAccessPoint
|
|
64
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
|
|
65
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import RoleBasedPortAssignment, SwcServiceDependency
|
|
66
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
|
|
67
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ArgumentDataPrototype, ClientServerInterface, ClientServerOperation, InvalidationPolicy, ModeSwitchInterface, ParameterInterface, PortInterface, SenderReceiverInterface
|
|
68
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AtomicSwComponentType
|
|
81
69
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationCompositeElementDataPrototype, AutosarDataPrototype, DataPrototype, ParameterDataPrototype, VariableDataPrototype
|
|
82
|
-
|
|
83
|
-
from ..models.M2.
|
|
84
|
-
from ..models.M2.
|
|
85
|
-
from ..models.M2.
|
|
86
|
-
from ..models.M2.
|
|
87
|
-
from ..models.M2.
|
|
88
|
-
|
|
89
|
-
from ..models import
|
|
90
|
-
from ..models import
|
|
91
|
-
from ..models import
|
|
92
|
-
from ..models.M2.AUTOSARTemplates.
|
|
93
|
-
from ..models.M2.AUTOSARTemplates.
|
|
94
|
-
from ..models.M2.AUTOSARTemplates.
|
|
70
|
+
|
|
71
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate import SwcToEcuMapping , System, SystemMapping
|
|
72
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderReceiverToSignalGroupMapping, SenderReceiverToSignalMapping
|
|
73
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode
|
|
74
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef, VariableDataPrototypeInSystemInstanceRef
|
|
75
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering
|
|
76
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanPhysicalChannel, CommConnectorPort, CommunicationCluster, CommunicationConnector, FramePort, IPduPort, ISignalPort, LinPhysicalChannel, PhysicalChannel
|
|
77
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import Frame, FrameTriggering, IPdu, IPduTiming, ISignalIPdu, ISignalTriggering, PduTriggering
|
|
78
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import CyclicTiming, EventControlledTiming, TimeRangeType, TransmissionModeCondition, TransmissionModeDeclaration, TransmissionModeTiming
|
|
79
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
80
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering, RxIdentifierRange
|
|
81
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
|
|
82
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import ISignalMapping
|
|
95
83
|
|
|
96
84
|
from .abstract_arxml_parser import AbstractARXMLParser
|
|
97
85
|
|
|
@@ -189,29 +177,39 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
189
177
|
return paragraph
|
|
190
178
|
|
|
191
179
|
def getVariableInAtomicSWCTypeInstanceRef(self, element: ET.Element) -> VariableInAtomicSWCTypeInstanceRef:
|
|
192
|
-
|
|
180
|
+
iref = None
|
|
193
181
|
if element is not None:
|
|
194
|
-
|
|
195
|
-
self.readElementAttributes(element,
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
return
|
|
182
|
+
iref = VariableInAtomicSWCTypeInstanceRef()
|
|
183
|
+
self.readElementAttributes(element, iref)
|
|
184
|
+
iref.setPortPrototypeRef(self.getChildElementOptionalRefType(element, "PORT-PROTOTYPE-REF"))
|
|
185
|
+
iref.setTargetDataPrototypeRef(self.getChildElementOptionalRefType(element, "TARGET-DATA-PROTOTYPE-REF"))
|
|
186
|
+
return iref
|
|
187
|
+
|
|
188
|
+
def getComponentInSystemInstanceRef(self, element: ET.Element) -> ComponentInSystemInstanceRef:
|
|
189
|
+
iref = None
|
|
190
|
+
if element is not None:
|
|
191
|
+
iref = ComponentInSystemInstanceRef()
|
|
192
|
+
self.readElementAttributes(element, iref)
|
|
193
|
+
iref.setBaseRef(self.getChildElementOptionalRefType(element, "BASE-REF"))
|
|
194
|
+
iref.setContextCompositionRef(self.getChildElementOptionalRefType(element, "CONTEXT-COMPOSITION-REF"))
|
|
195
|
+
iref.setTargetComponentRef(self.getChildElementOptionalRefType(element, "TARGET-COMPONENT-REF"))
|
|
196
|
+
return iref
|
|
199
197
|
|
|
200
198
|
def getAutosarVariableInImplDatatype(self, element: ET.Element) -> AutosarVariableRef:
|
|
201
199
|
child_element = self.find(element, "ACCESSED-VARIABLE")
|
|
202
|
-
|
|
200
|
+
ref = None
|
|
203
201
|
if (child_element is not None):
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
return
|
|
202
|
+
ref = AutosarVariableRef()
|
|
203
|
+
ref.setAutosarVariableIRef(self.getVariableInAtomicSWCTypeInstanceRef(self.find(child_element, "AUTOSAR-VARIABLE-IREF")))
|
|
204
|
+
return ref
|
|
207
205
|
|
|
208
206
|
def getLocalVariableRef(self, element: ET.Element) -> AutosarVariableRef:
|
|
209
207
|
child_element = self.find(element, "ACCESSED-VARIABLE")
|
|
210
|
-
|
|
208
|
+
ref = None
|
|
211
209
|
if (child_element is not None):
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
return
|
|
210
|
+
ref = AutosarVariableRef()
|
|
211
|
+
ref.setLocalVariableRef(self.getChildElementOptionalRefType(child_element, "LOCAL-VARIABLE-REF"))
|
|
212
|
+
return ref
|
|
215
213
|
|
|
216
214
|
def _readVariableAccesses(self, element: ET.Element, parent: RunnableEntity, key: str):
|
|
217
215
|
for child_element in element.findall("./xmlns:%s/xmlns:VARIABLE-ACCESS" % key, self.nsmap):
|
|
@@ -598,12 +596,12 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
598
596
|
def readImplementation(self, element: ET.Element, impl: Implementation):
|
|
599
597
|
self.readIdentifiable(element, impl)
|
|
600
598
|
self.readCodeDescriptor(element, impl)
|
|
601
|
-
impl.
|
|
599
|
+
impl.programmingLanguage = self.getChildElementOptionalLiteral(element, "PROGRAMMING-LANGUAGE")
|
|
602
600
|
self.readResourceConsumption(element, impl)
|
|
603
|
-
impl.
|
|
604
|
-
impl.
|
|
605
|
-
impl.
|
|
606
|
-
impl.
|
|
601
|
+
impl.swVersion = self.getChildElementOptionalLiteral(element, "SW-VERSION")
|
|
602
|
+
impl.swcBswMappingRef = self.getChildElementOptionalRefType(element, "SWC-BSW-MAPPING-REF")
|
|
603
|
+
impl.usedCodeGenerator = self.getChildElementOptionalLiteral(element, "USED-CODE-GENERATOR")
|
|
604
|
+
impl.vendorId = self.getChildElementOptionalNumericalValue(element, "VENDOR-ID")
|
|
607
605
|
|
|
608
606
|
def readBswImplementationVendorSpecificModuleDefRefs(self, element: ET.Element, parent: BswImplementation):
|
|
609
607
|
child_element = element.find("./xmlns:VENDOR-SPECIFIC-MODULE-DEF-REFS", self.nsmap)
|
|
@@ -616,8 +614,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
616
614
|
impl = parent.createBswImplementation(short_name)
|
|
617
615
|
self.logger.debug("readBswImplementation %s" % impl.getShortName())
|
|
618
616
|
self.readImplementation(element, impl)
|
|
619
|
-
impl.
|
|
620
|
-
|
|
617
|
+
impl.setArReleaseVersion(self.getChildElementOptionalLiteral(element, "AR-RELEASE-VERSION")) \
|
|
618
|
+
.setBehaviorRef(self.getChildElementOptionalRefType(element, "BEHAVIOR-REF"))
|
|
621
619
|
self.readBswImplementationVendorSpecificModuleDefRefs(element, impl)
|
|
622
620
|
|
|
623
621
|
def readSwcImplementation(self, element: ET.Element, parent: ARPackage):
|
|
@@ -625,7 +623,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
625
623
|
impl = parent.createSwcImplementation(short_name)
|
|
626
624
|
self.logger.debug("readSwcImplementation %s" % impl.getShortName())
|
|
627
625
|
self.readImplementation(element, impl)
|
|
628
|
-
impl.
|
|
626
|
+
impl.behaviorRef = self.getChildElementOptionalRefType(element, "BEHAVIOR-REF")
|
|
629
627
|
|
|
630
628
|
def readDataReceivePointByArguments(self, element, parent: RunnableEntity):
|
|
631
629
|
self._readVariableAccesses(element, parent, "DATA-RECEIVE-POINT-BY-ARGUMENTS")
|
|
@@ -807,7 +805,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
807
805
|
|
|
808
806
|
def readRTEEvent(self, element: ET.Element, event: RTEEvent):
|
|
809
807
|
self.readIdentifiable(element, event)
|
|
810
|
-
event.
|
|
808
|
+
event.startOnEventRef = self.getChildElementOptionalRefType(element, "START-ON-EVENT-REF")
|
|
811
809
|
for child_element in element.findall("./xmlns:DISABLED-MODE-IREFS/xmlns:DISABLED-MODE-IREF", self.nsmap):
|
|
812
810
|
iref = self.getRModeInAtomicSwcInstanceRef(child_element)
|
|
813
811
|
event.addDisabledModeIRef(iref)
|
|
@@ -815,9 +813,9 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
815
813
|
def readOperationIRef(self, element: ET.Element, parent: OperationInvokedEvent):
|
|
816
814
|
child_element = element.find("./xmlns:OPERATION-IREF", self.nsmap)
|
|
817
815
|
if (child_element is not None):
|
|
818
|
-
parent.
|
|
819
|
-
parent.
|
|
820
|
-
parent.
|
|
816
|
+
parent.operationIRef = POperationInAtomicSwcInstanceRef()
|
|
817
|
+
parent.operationIRef.context_p_port_ref = self.getChildElementRefType(parent.getShortName(), child_element, "CONTEXT-P-PORT-REF")
|
|
818
|
+
parent.operationIRef.target_provided_operation_ref = self.getChildElementRefType(parent.getShortName(), child_element, "TARGET-PROVIDED-OPERATION-REF")
|
|
821
819
|
|
|
822
820
|
def readOperationInvokedEvent(self, element: ET.Element, parent: SwcInternalBehavior):
|
|
823
821
|
short_name = self.getShortName(element)
|
|
@@ -865,15 +863,15 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
865
863
|
child_element = element.find("./xmlns:VALUE/*", self.nsmap)
|
|
866
864
|
if child_element is not None:
|
|
867
865
|
argument_value.value = self.getValueSpecification(child_element)
|
|
868
|
-
argument_value.
|
|
866
|
+
argument_value.valueTypeTRef = self.getChildElementOptionalRefType(element, "VALUE-TYPE-TREF")
|
|
869
867
|
return argument_value
|
|
870
868
|
|
|
871
869
|
def readPortAPIOptions(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
872
870
|
for child_element in element.findall("./xmlns:PORT-API-OPTIONS/xmlns:PORT-API-OPTION", self.nsmap):
|
|
873
871
|
option = PortAPIOption()
|
|
874
|
-
option.
|
|
875
|
-
option.
|
|
876
|
-
option.
|
|
872
|
+
option.enableTakeAddress = self.getChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS")
|
|
873
|
+
option.indirectAPI = self.getChildElementOptionalBooleanValue(child_element, "INDIRECT-API")
|
|
874
|
+
option.portRef = self.getChildElementOptionalRefType(child_element, "PORT-REF")
|
|
877
875
|
for argument_value_tag in child_element.findall("./xmlns:PORT-ARG-VALUES/xmlns:PORT-DEFINED-ARGUMENT-VALUE", self.nsmap):
|
|
878
876
|
option.addPortArgValue(self.readPortDefinedArgumentValue(argument_value_tag))
|
|
879
877
|
behavior.addPortAPIOption(option)
|
|
@@ -2151,7 +2149,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2151
2149
|
.setProtocolVersion(self.getChildElementOptionalLiteral(element, "PROTOCOL-VERSION"))
|
|
2152
2150
|
|
|
2153
2151
|
def readAbstractCanCluster(self, element: ET.Element, cluster: AbstractCanCluster):
|
|
2154
|
-
cluster.setCanFdBaudrate(self.getChildElementOptionalNumericalValue(element, "CAN-FD-BAUDRATE"))
|
|
2152
|
+
cluster.setCanFdBaudrate(self.getChildElementOptionalNumericalValue(element, "CAN-FD-BAUDRATE")) \
|
|
2153
|
+
.setSpeed(self.getChildElementOptionalNumericalValue(element, "SPEED"))
|
|
2155
2154
|
|
|
2156
2155
|
def readLinCluster(self, element: ET.Element, parent: ARPackage):
|
|
2157
2156
|
short_name = self.getShortName(element)
|
|
@@ -2321,21 +2320,90 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2321
2320
|
|
|
2322
2321
|
def readCanTpConfig(self, element: ET.Element, parent: ARPackage):
|
|
2323
2322
|
short_name = self.getShortName(element)
|
|
2324
|
-
self.logger.debug("CanTpConfig %s" % short_name)
|
|
2323
|
+
self.logger.debug("read CanTpConfig %s" % short_name)
|
|
2325
2324
|
pdu = parent.createCanTpConfig(short_name)
|
|
2326
2325
|
self.readIdentifiable(element, pdu)
|
|
2327
2326
|
|
|
2328
2327
|
def readCanFrame(self, element: ET.Element, parent: ARPackage):
|
|
2329
2328
|
short_name = self.getShortName(element)
|
|
2330
|
-
self.logger.debug("CanFrame %s" % short_name)
|
|
2329
|
+
self.logger.debug("read CanFrame %s" % short_name)
|
|
2331
2330
|
frame = parent.createCanFrame(short_name)
|
|
2332
2331
|
self.readFrame(element, frame)
|
|
2333
2332
|
|
|
2333
|
+
def readCanCommunicationController(self, element: ET.Element, controller: CanCommunicationController):
|
|
2334
|
+
self.logger.debug("read CanCommunicationController %s" % controller.getShortName())
|
|
2335
|
+
self.readIdentifiable(element, controller)
|
|
2336
|
+
|
|
2337
|
+
def readEcuInstanceCommControllers(self, element: ET.Element, instance: EcuInstance):
|
|
2338
|
+
self.logger.debug("readEcuInstanceCommControllers %s" % instance.getShortName())
|
|
2339
|
+
for child_element in self.findall(element, "COMM-CONTROLLERS/*"):
|
|
2340
|
+
tag_name = self.getTagName(child_element)
|
|
2341
|
+
if tag_name == "CAN-COMMUNICATION-CONTROLLER":
|
|
2342
|
+
controller = instance.createCanCommunicationController(self.getShortName(child_element))
|
|
2343
|
+
self.readCanCommunicationController(child_element, controller)
|
|
2344
|
+
else:
|
|
2345
|
+
self._raiseError("Unsupported Communication Controller <%s>" % tag_name)
|
|
2346
|
+
|
|
2347
|
+
def readCommConnectorPort(self, element: ET.Element, port: CommConnectorPort):
|
|
2348
|
+
self.readIdentifiable(element, port)
|
|
2349
|
+
port.setCommunicationDirection(self.getChildElementOptionalLiteral(element, "COMMUNICATION-DIRECTION"))
|
|
2350
|
+
|
|
2351
|
+
def readFramePort(self, element: ET.Element, port: FramePort):
|
|
2352
|
+
self.readCommConnectorPort(element, port)
|
|
2353
|
+
|
|
2354
|
+
def readIPduPort(self, element: ET.Element, port: IPduPort):
|
|
2355
|
+
self.readCommConnectorPort(element, port)
|
|
2356
|
+
|
|
2357
|
+
def readISignalPort(self, element: ET.Element, port: ISignalPort):
|
|
2358
|
+
self.readCommConnectorPort(element, port)
|
|
2359
|
+
|
|
2360
|
+
def readCommunicationConnectorEcuCommPortInstances(self, element: ET.Element, connector: CommunicationConnector):
|
|
2361
|
+
self.logger.debug("read EcuCommPortInstances of CommunicationConnector %s" % connector.getShortName())
|
|
2362
|
+
for child_element in self.findall(element, "ECU-COMM-PORT-INSTANCES/*"):
|
|
2363
|
+
tag_name = self.getTagName(child_element)
|
|
2364
|
+
if tag_name == "FRAME-PORT":
|
|
2365
|
+
port = connector.createFramePort(self.getShortName(child_element))
|
|
2366
|
+
self.readFramePort(child_element, port)
|
|
2367
|
+
elif tag_name == "I-PDU-PORT":
|
|
2368
|
+
port = connector.createIPduPort(self.getShortName(child_element))
|
|
2369
|
+
self.readIPduPort(child_element, port)
|
|
2370
|
+
elif tag_name == "I-SIGNAL-PORT":
|
|
2371
|
+
port = connector.createISignalPort(self.getShortName(child_element))
|
|
2372
|
+
self.readISignalPort(child_element, port)
|
|
2373
|
+
else:
|
|
2374
|
+
self._raiseError("Unsupported EcuCommPortInstances <%s>" % tag_name)
|
|
2375
|
+
|
|
2376
|
+
def readCommunicationConnector(self, element: ET.Element, connector: CommunicationConnector):
|
|
2377
|
+
self.readIdentifiable(element, connector)
|
|
2378
|
+
connector.setCommControllerRef(self.getChildElementOptionalRefType(element, "COMM-CONTROLLER-REF"))
|
|
2379
|
+
self.readCommunicationConnectorEcuCommPortInstances(element, connector)
|
|
2380
|
+
|
|
2381
|
+
def readCanCommunicationConnector(self, element: ET.Element, connector: CanCommunicationConnector):
|
|
2382
|
+
self.readCommunicationConnector(element, connector)
|
|
2383
|
+
|
|
2384
|
+
def readEcuInstanceConnectors(self, element: ET.Element, instance: EcuInstance):
|
|
2385
|
+
self.logger.debug("readEcuInstanceCommControllers %s" % instance.getShortName())
|
|
2386
|
+
for child_element in self.findall(element, "CONNECTORS/*"):
|
|
2387
|
+
tag_name = self.getTagName(child_element)
|
|
2388
|
+
if tag_name == "CAN-COMMUNICATION-CONNECTOR":
|
|
2389
|
+
connector = instance.createCanCommunicationConnector(self.getShortName(child_element))
|
|
2390
|
+
self.readCanCommunicationConnector(child_element, connector)
|
|
2391
|
+
else:
|
|
2392
|
+
self._raiseError("Unsupported Communication Controller <%s>" % tag_name)
|
|
2393
|
+
|
|
2334
2394
|
def readEcuInstance(self, element: ET.Element, parent: ARPackage):
|
|
2335
2395
|
short_name = self.getShortName(element)
|
|
2336
2396
|
self.logger.debug("EcuInstance %s" % short_name)
|
|
2337
2397
|
instance = parent.createEcuInstance(short_name)
|
|
2338
2398
|
self.readIdentifiable(element, instance)
|
|
2399
|
+
instance.setComConfigurationGwTimeBase(self.getChildElementOptionalTimeValue(element, "COM-CONFIGURATION-GW-TIME-BASE")) \
|
|
2400
|
+
.setComConfigurationRxTimeBase(self.getChildElementOptionalTimeValue(element, "COM-CONFIGURATION-RX-TIME-BASE")) \
|
|
2401
|
+
.setComConfigurationTxTimeBase(self.getChildElementOptionalTimeValue(element, "COM-CONFIGURATION-TX-TIME-BASE")) \
|
|
2402
|
+
.setComEnableMDTForCyclicTransmission(self.getChildElementOptionalBooleanValue(element, "COM-ENABLE-MDT-FOR-CYCLIC-TRANSMISSION"))
|
|
2403
|
+
self.readEcuInstanceCommControllers(element, instance)
|
|
2404
|
+
self.readEcuInstanceConnectors(element, instance)
|
|
2405
|
+
instance.setSleepModeSupported(self.getChildElementOptionalBooleanValue(element, "SLEEP-MODE-SUPPORTED")) \
|
|
2406
|
+
.setWakeUpOverBusSupported(self.getChildElementOptionalBooleanValue(element, "WAKE-UP-OVER-BUS-SUPPORTED"))
|
|
2339
2407
|
|
|
2340
2408
|
'''
|
|
2341
2409
|
def getFrameMappings(self, element: ET.Element) -> List[FrameMapping]:
|
|
@@ -2566,13 +2634,84 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2566
2634
|
.setStartPosition(self.getChildElementOptionalNumericalValue(child_element, "START-POSITION")) \
|
|
2567
2635
|
.setTransferProperty(self.getChildElementOptionalLiteral(child_element, "TRANSFER-PROPERTY")) \
|
|
2568
2636
|
.setUpdateIndicationBitPosition(self.getChildElementOptionalNumericalValue(child_element, "UPDATE-INDICATION-BIT-POSITION"))
|
|
2637
|
+
|
|
2638
|
+
def getDataFilter(self, element: ET.Element, key: str) -> DataFilter:
|
|
2639
|
+
filter = None
|
|
2640
|
+
child_element = self.find(element, key)
|
|
2641
|
+
if child_element is not None:
|
|
2642
|
+
filter = DataFilter()
|
|
2643
|
+
filter.setDataFilterType(self.getChildElementOptionalLiteral(child_element, "DATA-FILTER-TYPE"))
|
|
2644
|
+
return filter
|
|
2645
|
+
|
|
2646
|
+
def getTransmissionModeConditions(self, element: ET.Element, key: str) -> List[TransmissionModeCondition]:
|
|
2647
|
+
result = []
|
|
2648
|
+
child_elements = self.findall(element, key)
|
|
2649
|
+
for child_element in child_elements:
|
|
2650
|
+
condition = TransmissionModeCondition()
|
|
2651
|
+
condition.setDataFilter(self.getDataFilter(child_element, "DATA-FILTER")) \
|
|
2652
|
+
.setISignalInIPduRef(self.getChildElementOptionalRefType(child_element, "I-SIGNAL-IN-I-PDU-REF"))
|
|
2653
|
+
result.append(condition)
|
|
2654
|
+
return result
|
|
2655
|
+
|
|
2656
|
+
def getTimeRangeType(self, element: ET.Element, key: str) -> TimeRangeType:
|
|
2657
|
+
time_range = None
|
|
2658
|
+
child_element = self.find(element, key)
|
|
2659
|
+
if child_element is not None:
|
|
2660
|
+
time_range = TimeRangeType()
|
|
2661
|
+
time_range.setValue(self.getChildElementOptionalTimeValue(child_element, "VALUE"))
|
|
2662
|
+
return time_range
|
|
2663
|
+
|
|
2664
|
+
def getCyclicTiming(self, element: ET.Element, key: str) -> CyclicTiming:
|
|
2665
|
+
timing = None
|
|
2666
|
+
child_element = self.find(element, key)
|
|
2667
|
+
if child_element is not None:
|
|
2668
|
+
timing = CyclicTiming()
|
|
2669
|
+
return timing
|
|
2670
|
+
|
|
2671
|
+
def getEventControlledTiming(self, element: ET.Element, key: str) -> EventControlledTiming:
|
|
2672
|
+
timing = None
|
|
2673
|
+
child_element = self.find(element, key)
|
|
2674
|
+
if child_element is not None:
|
|
2675
|
+
timing = EventControlledTiming()
|
|
2676
|
+
timing.setNumberOfRepetitions(self.getChildElementOptionalIntegerValue(child_element, "NUMBER-OF-REPETITIONS"))
|
|
2677
|
+
timing.setRepetitionPeriod(self.getTimeRangeType(child_element, "REPETITION-PERIOD"))
|
|
2678
|
+
return timing
|
|
2679
|
+
|
|
2680
|
+
def getTransmissionModeTiming(self, element: ET.Element, key: str) -> TransmissionModeTiming:
|
|
2681
|
+
timing = None
|
|
2682
|
+
child_element = self.find(element, key)
|
|
2683
|
+
if child_element is not None:
|
|
2684
|
+
self.logger.debug("Get TransmissionModeTiming of <%s>" % key)
|
|
2685
|
+
timing = TransmissionModeTiming()
|
|
2686
|
+
#timing.getCyclicTiming(child_element, "")
|
|
2687
|
+
timing.setEventControlledTiming(self.getEventControlledTiming(child_element, "EVENT-CONTROLLED-TIMING"))
|
|
2688
|
+
return timing
|
|
2689
|
+
|
|
2690
|
+
def getTransmissionModeDeclaration(self, element: ET.Element, key: str) -> TransmissionModeDeclaration:
|
|
2691
|
+
decl = None
|
|
2692
|
+
child_element = self.find(element, key)
|
|
2693
|
+
if child_element != None:
|
|
2694
|
+
decl = TransmissionModeDeclaration()
|
|
2695
|
+
for condition in self.getTransmissionModeConditions(child_element, "TRANSMISSION-MODE-CONDITIONS/TRANSMISSION-MODE-CONDITION"):
|
|
2696
|
+
decl.addTransmissionModeCondition(condition)
|
|
2697
|
+
decl.setTransmissionModeTrueTiming(self.getTransmissionModeTiming(child_element, "TRANSMISSION-MODE-TRUE-TIMING"))
|
|
2698
|
+
return decl
|
|
2699
|
+
|
|
2700
|
+
def getISignalIPduIPduTimingSpecification(self, element: ET.Element) -> IPduTiming:
|
|
2701
|
+
timing = None
|
|
2702
|
+
child_element = self.find(element, "I-PDU-TIMING-SPECIFICATIONS/I-PDU-TIMING")
|
|
2703
|
+
if child_element is not None:
|
|
2704
|
+
timing = IPduTiming()
|
|
2705
|
+
timing.setTransmissionModeDeclaration(self.getTransmissionModeDeclaration(child_element, "TRANSMISSION-MODE-DECLARATION"))
|
|
2706
|
+
return timing
|
|
2569
2707
|
|
|
2570
2708
|
def readISignalIPdu(self, element: ET.Element, parent: ARPackage):
|
|
2571
2709
|
short_name = self.getShortName(element)
|
|
2572
2710
|
self.logger.debug("ISignalIPdu %s" % short_name)
|
|
2573
2711
|
i_pdu = parent.createISignalIPdu(short_name)
|
|
2574
2712
|
self.readIdentifiable(element, i_pdu)
|
|
2575
|
-
i_pdu.setLength(self.getChildElementOptionalNumericalValue(element, "LENGTH"))
|
|
2713
|
+
i_pdu.setLength(self.getChildElementOptionalNumericalValue(element, "LENGTH")) \
|
|
2714
|
+
.setIPduTimingSpecification(self.getISignalIPduIPduTimingSpecification(element))
|
|
2576
2715
|
self.readISignalToPduMappings(element, i_pdu)
|
|
2577
2716
|
i_pdu.setUnusedBitPattern(self.getChildElementOptionalLiteral(element, "UNUSED-BIT-PATTERN"))
|
|
2578
2717
|
|
|
@@ -2616,12 +2755,28 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2616
2755
|
else:
|
|
2617
2756
|
raise NotImplementedError("Unsupported Data Mapping %s" % tag_name)
|
|
2618
2757
|
|
|
2758
|
+
def readSwcToEcuMapping(self, element: ET.Element, mapping: SwcToEcuMapping):
|
|
2759
|
+
self.logger.debug("SwcToEcuMapping %s" % mapping.getShortName())
|
|
2760
|
+
self.readIdentifiable(element, mapping)
|
|
2761
|
+
for child_element in self.findall(element, "COMPONENT-IREFS/COMPONENT-IREF"):
|
|
2762
|
+
mapping.addComponentIRef(self.getComponentInSystemInstanceRef(child_element))
|
|
2763
|
+
mapping.setEcuInstanceRef(self.getChildElementOptionalRefType(element, "ECU-INSTANCE-REF"))
|
|
2764
|
+
|
|
2765
|
+
def readSystemMappingSwMappings(self, element: ET.Element, mapping: SystemMapping):
|
|
2766
|
+
for child_element in self.findall(element, "SW-MAPPINGS/*"):
|
|
2767
|
+
tag_name = self.getTagName(child_element)
|
|
2768
|
+
if tag_name == "SWC-TO-ECU-MAPPING":
|
|
2769
|
+
self.readSwcToEcuMapping(child_element, mapping.createSwcToEcuMapping(self.getShortName(child_element)))
|
|
2770
|
+
else:
|
|
2771
|
+
raise NotImplementedError("Unsupported Sw Mapping %s" % tag_name)
|
|
2772
|
+
|
|
2619
2773
|
def readSystemMapping(self, element: ET.Element, parent: System):
|
|
2620
2774
|
short_name = self.getShortName(element)
|
|
2621
2775
|
self.logger.debug("SystemMapping %s" % short_name)
|
|
2622
2776
|
mapping = parent.createSystemMapping(short_name)
|
|
2623
2777
|
self.readIdentifiable(element, mapping)
|
|
2624
2778
|
self.readSystemMappingDataMappings(element, mapping)
|
|
2779
|
+
self.readSystemMappingSwMappings(element, mapping)
|
|
2625
2780
|
|
|
2626
2781
|
def readSystemMappings(self, element: ET.Element, system: System):
|
|
2627
2782
|
for child_element in self.findall(element, "MAPPINGS/*"):
|
|
@@ -2630,10 +2785,19 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2630
2785
|
self.readSystemMapping(child_element, system)
|
|
2631
2786
|
else:
|
|
2632
2787
|
raise NotImplementedError("Unsupported Mapping %s" % tag_name)
|
|
2788
|
+
|
|
2789
|
+
def readRootSwCompositionPrototype(self, element: ET.Element, system: System):
|
|
2790
|
+
child_element = self.find(element, "ROOT-SOFTWARE-COMPOSITIONS/ROOT-SW-COMPOSITION-PROTOTYPE")
|
|
2791
|
+
if child_element is not None:
|
|
2792
|
+
short_name = self.getShortName(child_element)
|
|
2793
|
+
self.logger.debug("Read RootSwCompositionPrototype %s" % short_name)
|
|
2794
|
+
prototype = system.createRootSoftwareComposition(short_name)
|
|
2795
|
+
self.readIdentifiable(child_element, prototype)
|
|
2796
|
+
prototype.setSoftwareCompositionTRef(self.getChildElementOptionalRefType(child_element, "SOFTWARE-COMPOSITION-TREF"))
|
|
2633
2797
|
|
|
2634
2798
|
def readSystem(self, element: ET.Element, parent: ARPackage):
|
|
2635
2799
|
short_name = self.getShortName(element)
|
|
2636
|
-
self.logger.debug("System %s" % short_name)
|
|
2800
|
+
self.logger.debug("Read System %s" % short_name)
|
|
2637
2801
|
system = parent.createSystem(short_name)
|
|
2638
2802
|
self.readIdentifiable(element, system)
|
|
2639
2803
|
|
|
@@ -2641,20 +2805,27 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2641
2805
|
for child_element in self.findall(element, "FIBEX-ELEMENTS/FIBEX-ELEMENT-REF-CONDITIONAL"):
|
|
2642
2806
|
system.addFibexElementRef(self.getChildElementOptionalRefType(child_element, "FIBEX-ELEMENT-REF"))
|
|
2643
2807
|
self.readSystemMappings(element, system)
|
|
2808
|
+
self.readRootSwCompositionPrototype(element, system)
|
|
2809
|
+
system.setSystemVersion(self.getChildElementOptionalRevisionLabelString(element, "SYSTEM-VERSION"))
|
|
2644
2810
|
|
|
2645
2811
|
def readParameterInterfaceParameters(self, element: ET.Element, parent: ParameterInterface):
|
|
2646
|
-
for child_element in
|
|
2812
|
+
for child_element in self.findall(element, "PARAMETERS/PARAMETER-DATA-PROTOTYPE"):
|
|
2647
2813
|
short_name = self.getShortName(child_element)
|
|
2648
2814
|
prototype = parent.createParameter(short_name)
|
|
2649
2815
|
self.readParameterDataPrototype(child_element, prototype)
|
|
2650
2816
|
|
|
2651
2817
|
def readParameterInterface(self, element: ET.Element, parent: ARPackage):
|
|
2652
2818
|
short_name = self.getShortName(element)
|
|
2653
|
-
self.logger.debug("ParameterInterface %s" % short_name)
|
|
2819
|
+
self.logger.debug("Read ParameterInterface %s" % short_name)
|
|
2654
2820
|
pi_interface = parent.createParameterInterface(short_name)
|
|
2655
2821
|
self.readIdentifiable(element, pi_interface)
|
|
2656
2822
|
self.readParameterInterfaceParameters(element, pi_interface)
|
|
2657
2823
|
|
|
2824
|
+
def readGenericEthernetFrame(self, element: ET.Element, parent: ARPackage):
|
|
2825
|
+
short_name = self.getShortName(element)
|
|
2826
|
+
self.logger.debug("Read EthernetFrame %s" % short_name)
|
|
2827
|
+
frame = parent.createGenericEthernetFrame(short_name)
|
|
2828
|
+
self.readFrame(element, frame)
|
|
2658
2829
|
|
|
2659
2830
|
def readARPackageElements(self, element: ET.Element, parent: ARPackage):
|
|
2660
2831
|
for child_element in self.findall(element, "./ELEMENTS/*"):
|
|
@@ -2767,6 +2938,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2767
2938
|
self.readPhysicalDimensions(child_element, parent)
|
|
2768
2939
|
elif tag_name == "PARAMETER-INTERFACE":
|
|
2769
2940
|
self.readParameterInterface(child_element, parent)
|
|
2941
|
+
elif tag_name == "ETHERNET-FRAME":
|
|
2942
|
+
self.readGenericEthernetFrame(child_element, parent)
|
|
2770
2943
|
else:
|
|
2771
2944
|
self._raiseError("Unsupported element type of ARPackage <%s>" % tag_name)
|
|
2772
2945
|
|
armodel/parser/file_parser.py
CHANGED
|
@@ -20,7 +20,8 @@ class FileListParser:
|
|
|
20
20
|
try:
|
|
21
21
|
with open(file) as f_in:
|
|
22
22
|
for line in f_in:
|
|
23
|
-
|
|
23
|
+
if not line.startswith('#'):
|
|
24
|
+
self.file_list.append(line.strip())
|
|
24
25
|
except:
|
|
25
26
|
self.logger.error("No such file or directory: %s" % os.path.realpath(file))
|
|
26
27
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType
|
|
1
2
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
|
|
2
3
|
from .excel_report import ExcelReporter
|
|
3
|
-
from ..models import AUTOSAR
|
|
4
|
+
from ..models import AUTOSAR
|
|
4
5
|
from ..models import PPortInCompositionInstanceRef, RPortInCompositionInstanceRef
|
|
5
6
|
from typing import List
|
|
6
7
|
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
2
1
|
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical
|
|
3
2
|
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
|
|
4
3
|
|
|
5
|
-
|
|
6
4
|
class TestARObject:
|
|
7
5
|
|
|
8
6
|
def test_ARNumerical(self):
|
|
@@ -14,14 +14,14 @@ from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Iden
|
|
|
14
14
|
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
15
15
|
|
|
16
16
|
from ....models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
|
|
17
|
-
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components import SwComponentType
|
|
17
|
+
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, AtomicSwComponentType, EcuAbstractionSwComponentType, SwComponentType
|
|
18
18
|
from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
19
19
|
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
|
|
20
20
|
from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
21
21
|
from ....models.M2.MSR.AsamHdo.ComputationMethod import CompuMethod
|
|
22
|
-
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
23
|
-
from ....models.
|
|
24
|
-
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
22
|
+
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerInterface, DataInterface, PortInterface, SenderReceiverInterface
|
|
23
|
+
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ServiceSwComponentType
|
|
24
|
+
from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType
|
|
25
25
|
|
|
26
26
|
class TestAUTOSAR:
|
|
27
27
|
|