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/writer/arxml_writer.py
CHANGED
|
@@ -2,95 +2,91 @@ import xml.etree.cElementTree as ET
|
|
|
2
2
|
|
|
3
3
|
from typing import List
|
|
4
4
|
|
|
5
|
-
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroup, SwRecordLayoutV
|
|
6
5
|
|
|
7
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
8
6
|
|
|
9
|
-
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
10
7
|
|
|
11
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType, AutosarDataType
|
|
12
8
|
|
|
13
|
-
from ..models.M2.MSR.AsamHdo.
|
|
14
|
-
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxis
|
|
15
|
-
from ..models.M2.MSR.DataDictionary.Axis import SwAxisGrouped, SwAxisIndividual
|
|
16
|
-
from ..models.M2.MSR.CalibrationData.CalibrationValue import SwValueCont, SwValues
|
|
9
|
+
from ..models.M2.MSR.AsamHdo.AdminData import AdminData
|
|
17
10
|
from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition, SwBaseType
|
|
11
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuConstTextContent, CompuMethod, CompuNominatorDenominator, CompuScale, CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
|
|
12
|
+
from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr, InternalConstrs, PhysConstrs
|
|
18
13
|
from ..models.M2.MSR.AsamHdo.SpecialData import Sdg
|
|
19
|
-
from ..models.M2.MSR.AsamHdo.
|
|
20
|
-
from ..models.M2.MSR.
|
|
21
|
-
from ..models.M2.MSR.
|
|
14
|
+
from ..models.M2.MSR.AsamHdo.Units import PhysicalDimension, Unit
|
|
15
|
+
from ..models.M2.MSR.CalibrationData.CalibrationValue import SwValueCont, SwValues
|
|
16
|
+
from ..models.M2.MSR.DataDictionary.Axis import SwAxisGrouped, SwAxisIndividual
|
|
22
17
|
from ..models.M2.MSR.DataDictionary.AuxillaryObjects import SwAddrMethod
|
|
23
|
-
from ..models.M2.MSR.DataDictionary.
|
|
24
|
-
from ..models.M2.MSR.
|
|
18
|
+
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxis, SwCalprmAxisSet
|
|
19
|
+
from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, ValueList
|
|
20
|
+
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayout, SwRecordLayoutGroup, SwRecordLayoutV
|
|
21
|
+
from ..models.M2.MSR.Documentation.Annotation import Annotation
|
|
25
22
|
from ..models.M2.MSR.Documentation.BlockElements import DocumentationBlock
|
|
26
|
-
from ..models.M2.MSR.
|
|
27
|
-
from ..models.M2.MSR.DataDictionary.DataDefProperties import ValueList
|
|
28
|
-
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
|
|
23
|
+
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph, MultiLanguageParagraph, MultilanguageLongName
|
|
29
24
|
|
|
30
|
-
from ..models.M2.AUTOSARTemplates.
|
|
25
|
+
from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
26
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
31
27
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
|
|
28
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
|
|
29
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswCalledEntity, BswEvent, BswInternalBehavior, BswModeSenderPolicy, BswModuleEntity, BswSchedulableEntity, BswScheduleEvent, BswTimingEvent
|
|
30
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference, ConstantSpecification, NumericalValueSpecification, RecordValueSpecification, TextValueSpecification, ValueSpecification
|
|
31
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Filter import DataFilter
|
|
32
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping, SwcBswRunnableMapping
|
|
32
33
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import Code, Implementation
|
|
33
|
-
from ..models.M2.AUTOSARTemplates.
|
|
34
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.
|
|
35
|
-
from ..models.M2.AUTOSARTemplates.
|
|
34
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming, TimingExtension
|
|
35
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import EOCExecutableEntityRef, ExecutionOrderConstraint
|
|
36
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import NvBlockNeeds, RoleBasedDataAssignment, ServiceDependency
|
|
36
37
|
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
|
|
37
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclaration, ModeDeclarationGroup
|
|
38
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
|
|
39
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import CompositeNetworkRepresentation, TransmissionAcknowledgementRequest
|
|
40
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, MultilanguageReferrable, Referrable
|
|
41
|
-
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswCalledEntity, BswEvent, BswInternalBehavior, BswModeSenderPolicy, BswModuleEntity, BswSchedulableEntity, BswScheduleEvent, BswTimingEvent
|
|
42
38
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
|
|
43
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure import
|
|
44
|
-
from ..models.M2.AUTOSARTemplates.
|
|
39
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
|
|
40
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclaration, ModeDeclarationGroup, ModeDeclarationGroupPrototype
|
|
41
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import ResourceConsumption
|
|
42
|
+
|
|
43
|
+
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
|
|
44
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
|
|
45
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, MultilanguageReferrable, Referrable
|
|
45
46
|
from ..models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
|
|
46
|
-
from ..models.M2.AUTOSARTemplates.
|
|
47
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
|
|
48
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARLiteral, Limit
|
|
49
|
+
|
|
50
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption
|
|
51
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent, TimingEvent
|
|
52
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
53
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType, AutosarDataType
|
|
54
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndDescription, EndToEndProtection, EndToEndProtectionVariablePrototype
|
|
55
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
|
|
56
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import CompositeNetworkRepresentation, TransmissionAcknowledgementRequest
|
|
57
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, CompositionSwComponentType, EcuAbstractionSwComponentType, PortGroup, SwComponentType, PPortPrototype, PortPrototype, RPortPrototype
|
|
47
58
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import InnerPortGroupInCompositionInstanceRef, PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef, RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
|
|
48
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import RunnableEntityArgument, SynchronousServerCallPoint
|
|
59
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import RunnableEntity, RunnableEntityArgument, SwcInternalBehavior, SynchronousServerCallPoint
|
|
49
60
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
|
|
50
61
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
|
|
51
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import AssemblySwConnector,
|
|
62
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import AssemblySwConnector, DelegationSwConnector, SwComponentPrototype, SwConnector
|
|
52
63
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef, ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef
|
|
53
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
64
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
|
|
54
65
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef, AutosarVariableRef, VariableInAtomicSWCTypeInstanceRef
|
|
55
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import VariableDataPrototypeInSystemInstanceRef
|
|
56
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef
|
|
57
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.data_mapping import SenderReceiverToSignalGroupMapping, SenderReceiverToSignalMapping
|
|
58
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate import System, SystemMapping
|
|
59
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.network_management import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode
|
|
60
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.transport_protocols import CanTpConfig
|
|
61
66
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, RPortComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
|
|
62
|
-
|
|
63
|
-
from ..models.
|
|
64
|
-
from ..models.fibex.can_communication import CanFrame, CanFrameTriggering, RxIdentifierRange
|
|
65
|
-
from ..models.fibex.fibex_core.core_communication import FrameTriggering, IPdu, ISignalGroup, ISignalIPdu, ISignalIPduGroup, ISignalTriggering, PduTriggering, SecuredIPdu, SystemSignal, DcmIPdu, Frame, ISignal, NPdu, NmPdu, SystemSignalGroup
|
|
66
|
-
from ..models.fibex.lin_communication import LinFrameTriggering, LinUnconditionalFrame
|
|
67
|
-
from ..models.fibex.fibex_core.core_topology import AbstractCanCluster, CanCluster, EcuInstance, CanPhysicalChannel, CommunicationCluster, LinCluster, LinPhysicalChannel, PhysicalChannel
|
|
68
|
-
|
|
69
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
|
|
70
|
-
from ..models.timing import EOCExecutableEntityRef, ExecutionOrderConstraint, SwcTiming, TimingExtension
|
|
71
|
-
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayout
|
|
72
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import RoleBasedPortAssignment
|
|
73
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import NvBlockNeeds
|
|
67
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef
|
|
68
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import RoleBasedPortAssignment, SwcServiceDependency
|
|
74
69
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationArrayElement, ApplicationCompositeElementDataPrototype, ApplicationRecordElement, AutosarDataPrototype, DataPrototype, ParameterDataPrototype, VariableDataPrototype
|
|
75
|
-
from ..models.M2.AUTOSARTemplates.
|
|
76
|
-
from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
77
|
-
from ..models.sw_component import ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, DataReceivedEvent, EcuAbstractionSwComponentType, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, PortAPIOption, RTEEvent, ServiceDependency, ServiceSwComponentType, SwcModeSwitchEvent, SwcServiceDependency
|
|
78
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
|
|
79
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
|
|
80
|
-
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxisSet
|
|
81
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroupPrototype
|
|
70
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ServiceSwComponentType
|
|
82
71
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
|
|
83
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Limit
|
|
84
|
-
|
|
85
|
-
from ..models.M2.MSR.Documentation.Annotation import Annotation
|
|
86
72
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
|
|
87
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
88
|
-
from ..models.M2.MSR.AsamHdo.Units import Unit
|
|
73
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ClientServerInterface, ClientServerOperation, ModeSwitchInterface, ParameterInterface, PortInterface, SenderReceiverInterface, TriggerInterface
|
|
89
74
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
|
|
90
|
-
|
|
91
|
-
from ..models.
|
|
92
|
-
from ..models.M2.AUTOSARTemplates.
|
|
93
|
-
from ..models.M2.
|
|
75
|
+
|
|
76
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate import SwcToEcuMapping, System, SystemMapping
|
|
77
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderReceiverToSignalGroupMapping, SenderReceiverToSignalMapping
|
|
78
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FrameTriggering, IPdu, IPduTiming, ISignalGroup, ISignalIPdu, ISignalIPduGroup, ISignalTriggering, PduTriggering, SecuredIPdu, SystemSignal, DcmIPdu, Frame, ISignal, NPdu, NmPdu, SystemSignalGroup
|
|
79
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
80
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import EventControlledTiming, TimeRangeType, TransmissionModeCondition, TransmissionModeDeclaration, TransmissionModeTiming
|
|
81
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
|
|
82
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway, ISignalMapping
|
|
83
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame, CanFrameTriggering, RxIdentifierRange
|
|
84
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
|
|
85
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering, LinUnconditionalFrame
|
|
86
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanCluster, CanPhysicalChannel, CommConnectorPort, CommunicationCluster, CommunicationConnector, FramePort, IPduPort, ISignalPort, LinCluster, LinPhysicalChannel, PhysicalChannel
|
|
87
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef, VariableDataPrototypeInSystemInstanceRef
|
|
88
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode
|
|
89
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig
|
|
94
90
|
|
|
95
91
|
from .abstract_arxml_writer import AbstractARXMLWriter
|
|
96
92
|
class ARXMLWriter(AbstractARXMLWriter):
|
|
@@ -861,7 +857,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
861
857
|
child_element = ET.SubElement(element, "DISABLED-MODE-IREFS")
|
|
862
858
|
for iref in irefs:
|
|
863
859
|
self.setRModeInAtomicSwcInstanceRef(child_element, "DISABLED-MODE-IREF", iref)
|
|
864
|
-
self.setChildElementOptionalRefType(element, "START-ON-EVENT-REF", event.
|
|
860
|
+
self.setChildElementOptionalRefType(element, "START-ON-EVENT-REF", event.startOnEventRef)
|
|
865
861
|
|
|
866
862
|
def setTimingEvent(self, element: ET.Element, event: TimingEvent):
|
|
867
863
|
if event is not None:
|
|
@@ -873,7 +869,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
873
869
|
if event is not None:
|
|
874
870
|
child_element = ET.SubElement(element, "OPERATION-INVOKED-EVENT")
|
|
875
871
|
self.setRTEEvent(child_element, event)
|
|
876
|
-
self.setPOperationInAtomicSwcInstanceRef(child_element, "OPERATION-IREF", event.
|
|
872
|
+
self.setPOperationInAtomicSwcInstanceRef(child_element, "OPERATION-IREF", event.operationIRef)
|
|
877
873
|
|
|
878
874
|
def setSwcModeSwitchEvent(self, element: ET.Element, event: SwcModeSwitchEvent):
|
|
879
875
|
if event is not None:
|
|
@@ -965,6 +961,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
965
961
|
self.setChildElementOptionalRefType(child_element, "TARGET-DATA-PROTOTYPE-REF", ref.getAutosarVariableIRef().getTargetDataPrototypeRef())
|
|
966
962
|
self.setChildElementOptionalRefType(child_element, "LOCAL-VARIABLE-REF", ref.getLocalVariableRef())
|
|
967
963
|
|
|
964
|
+
def setComponentInSystemInstanceRef(self, element: ET.Element, tag_name: str, ref: ComponentInSystemInstanceRef):
|
|
965
|
+
if ref is not None:
|
|
966
|
+
child_element = ET.SubElement(element, tag_name)
|
|
967
|
+
self.setARObjectAttributes(child_element, ref)
|
|
968
|
+
self.setChildElementOptionalRefType(child_element, "BASE-REF", ref.getBaseRef())
|
|
969
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-COMPOSITION-REF", ref.getContextCompositionRef())
|
|
970
|
+
self.setChildElementOptionalRefType(child_element, "TARGET-COMPONENT-REF", ref.getTargetComponentRef())
|
|
971
|
+
|
|
968
972
|
def setVariableAccess(self, element: ET.Element, access: VariableAccess):
|
|
969
973
|
child_element = ET.SubElement(element, "VARIABLE-ACCESS")
|
|
970
974
|
self.setIdentifiable(child_element, access)
|
|
@@ -1166,7 +1170,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1166
1170
|
if argument_value.value is not None:
|
|
1167
1171
|
value_tag = ET.SubElement(child_element, "VALUE")
|
|
1168
1172
|
self.setValueSpecification(value_tag, argument_value.value)
|
|
1169
|
-
self.setChildElementOptionalRefType(child_element, "VALUE-TYPE-TREF", argument_value.
|
|
1173
|
+
self.setChildElementOptionalRefType(child_element, "VALUE-TYPE-TREF", argument_value.valueTypeTRef)
|
|
1170
1174
|
|
|
1171
1175
|
def writePortAPIOptions(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1172
1176
|
options = behavior.getPortAPIOptions()
|
|
@@ -1174,10 +1178,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1174
1178
|
port_api_options_tag = ET.SubElement(element, "PORT-API-OPTIONS")
|
|
1175
1179
|
for option in options:
|
|
1176
1180
|
child_element = ET.SubElement(port_api_options_tag, "PORT-API-OPTION")
|
|
1177
|
-
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS", option.
|
|
1178
|
-
self.setChildElementOptionalBooleanValue(child_element, "INDIRECT-API", option.
|
|
1181
|
+
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS", option.enableTakeAddress)
|
|
1182
|
+
self.setChildElementOptionalBooleanValue(child_element, "INDIRECT-API", option.indirectAPI)
|
|
1179
1183
|
self.writePortDefinedArgumentValues(child_element, option)
|
|
1180
|
-
self.setChildElementOptionalRefType(child_element, "PORT-REF", option.
|
|
1184
|
+
self.setChildElementOptionalRefType(child_element, "PORT-REF", option.portRef)
|
|
1181
1185
|
|
|
1182
1186
|
def writeServiceDependency(self, element: ET.Element, dependency: ServiceDependency):
|
|
1183
1187
|
self.setIdentifiable(element, dependency)
|
|
@@ -1358,18 +1362,18 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1358
1362
|
def writeImplementation(self, element: ET.Element, impl: Implementation):
|
|
1359
1363
|
self.setIdentifiable(element, impl)
|
|
1360
1364
|
self.writeCodeDescriptors(element, impl)
|
|
1361
|
-
self.setChildElementOptionalLiteral(element, "PROGRAMMING-LANGUAGE", impl.
|
|
1365
|
+
self.setChildElementOptionalLiteral(element, "PROGRAMMING-LANGUAGE", impl.getProgrammingLanguage())
|
|
1362
1366
|
self.setResourceConsumption(element, impl.getResourceConsumption())
|
|
1363
|
-
self.setChildElementOptionalLiteral(element, "SW-VERSION", impl.
|
|
1364
|
-
self.setChildElementOptionalRefType(element, "SWC-BSW-MAPPING-REF", impl.
|
|
1365
|
-
self.setChildElementOptionalLiteral(element, "USED-CODE-GENERATOR", impl.
|
|
1366
|
-
self.setChildElementOptionalNumericalValue(element, "VENDOR-ID", impl.
|
|
1367
|
+
self.setChildElementOptionalLiteral(element, "SW-VERSION", impl.getSwVersion())
|
|
1368
|
+
self.setChildElementOptionalRefType(element, "SWC-BSW-MAPPING-REF", impl.getSwcBswMappingRef())
|
|
1369
|
+
self.setChildElementOptionalLiteral(element, "USED-CODE-GENERATOR", impl.getUsedCodeGenerator())
|
|
1370
|
+
self.setChildElementOptionalNumericalValue(element, "VENDOR-ID", impl.getVendorId())
|
|
1367
1371
|
|
|
1368
1372
|
def writeSwcImplementation(self, element: ET.Element, impl: SwcImplementation):
|
|
1369
1373
|
self.logger.debug("writeSwcImplementation %s" % impl.short_name)
|
|
1370
1374
|
child_element = ET.SubElement(element, "SWC-IMPLEMENTATION")
|
|
1371
1375
|
self.writeImplementation(child_element, impl)
|
|
1372
|
-
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.
|
|
1376
|
+
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.getBehaviorRef())
|
|
1373
1377
|
|
|
1374
1378
|
def writeEndToEndDescriptionDataId(self, element: ET.Element, parent: EndToEndDescription):
|
|
1375
1379
|
data_ids = parent.getDataIds()
|
|
@@ -1692,8 +1696,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1692
1696
|
self.logger.debug("writeBswModuleDescription %s" % impl.short_name)
|
|
1693
1697
|
child_element = ET.SubElement(element, "BSW-IMPLEMENTATION")
|
|
1694
1698
|
self.writeImplementation(child_element, impl)
|
|
1695
|
-
self.setChildElementOptionalLiteral(child_element, "AR-RELEASE-VERSION", impl.
|
|
1696
|
-
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.
|
|
1699
|
+
self.setChildElementOptionalLiteral(child_element, "AR-RELEASE-VERSION", impl.getArReleaseVersion())
|
|
1700
|
+
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.getBehaviorRef())
|
|
1697
1701
|
self.writeBswImplementationVendorSpecificModuleDefRefs(child_element, impl)
|
|
1698
1702
|
|
|
1699
1703
|
def writeImplementationDataTypeElements(self, element: ET.Element, parent: ImplementationDataType):
|
|
@@ -2241,6 +2245,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2241
2245
|
|
|
2242
2246
|
def readAbstractCanCluster(self, element: ET.Element, cluster: AbstractCanCluster):
|
|
2243
2247
|
self.setChildElementOptionalNumericalValue(element, "CAN-FD-BAUDRATE", cluster.getCanFdBaudrate())
|
|
2248
|
+
self.setChildElementOptionalNumericalValue(element, "SPEED", cluster.getSpeed())
|
|
2244
2249
|
|
|
2245
2250
|
def writeLinCluster(self, element: ET.Element, cluster: LinCluster):
|
|
2246
2251
|
self.logger.debug("LinCluster %s" % cluster.short_name)
|
|
@@ -2261,14 +2266,89 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2261
2266
|
self.readAbstractCanCluster(child_element, cluster)
|
|
2262
2267
|
|
|
2263
2268
|
def writeCanFrame(self, element: ET.Element, frame: CanFrame):
|
|
2264
|
-
self.logger.debug("CanFrame %s" % frame.short_name)
|
|
2269
|
+
self.logger.debug("Write CanFrame %s" % frame.short_name)
|
|
2265
2270
|
child_element = ET.SubElement(element, "CAN-FRAME")
|
|
2266
2271
|
self.writeFrame(child_element, frame)
|
|
2267
2272
|
|
|
2273
|
+
def writeCommConnectorPort(self, element: ET.Element, port: CommConnectorPort):
|
|
2274
|
+
self.setIdentifiable(element, port)
|
|
2275
|
+
self.setChildElementOptionalLiteral(element, "COMMUNICATION-DIRECTION", port.getCommunicationDirection())
|
|
2276
|
+
|
|
2277
|
+
def writeFramePort(self, element: ET.Element, port: FramePort):
|
|
2278
|
+
child_element = ET.SubElement(element, "FRAME-PORT")
|
|
2279
|
+
self.writeCommConnectorPort(child_element, port)
|
|
2280
|
+
|
|
2281
|
+
def writeIPduPort(self, element: ET.Element, port: IPduPort):
|
|
2282
|
+
child_element = ET.SubElement(element, "I-PDU-PORT")
|
|
2283
|
+
self.writeCommConnectorPort(child_element, port)
|
|
2284
|
+
|
|
2285
|
+
def writeISignalPort(self, element: ET.Element, port: ISignalPort):
|
|
2286
|
+
child_element = ET.SubElement(element, "I-SIGNAL-PORT")
|
|
2287
|
+
self.writeCommConnectorPort(child_element, port)
|
|
2288
|
+
|
|
2289
|
+
def writeCommunicationConnectorEcuCommPortInstances(self, element: ET.Element, connector: CommunicationConnector):
|
|
2290
|
+
self.logger.debug("write EcuCommPortInstances of CommunicationConnector %s" % connector.getShortName())
|
|
2291
|
+
ports = connector.getEcuCommPortInstances()
|
|
2292
|
+
if len(ports) > 0:
|
|
2293
|
+
instances_tag = ET.SubElement(element, "ECU-COMM-PORT-INSTANCES")
|
|
2294
|
+
for port in ports:
|
|
2295
|
+
if isinstance(port, FramePort):
|
|
2296
|
+
self.writeFramePort(instances_tag, port)
|
|
2297
|
+
elif isinstance(port, IPduPort):
|
|
2298
|
+
self.writeIPduPort(instances_tag, port)
|
|
2299
|
+
elif isinstance(port, ISignalPort):
|
|
2300
|
+
self.writeISignalPort(instances_tag, port)
|
|
2301
|
+
else:
|
|
2302
|
+
self._raiseError("Unsupported CommConnectorPort <%s>" % type(port))
|
|
2303
|
+
|
|
2304
|
+
def writeCanCommunicationController(self, element: ET.Element, controller: CanCommunicationController):
|
|
2305
|
+
self.logger.debug("Write CanCommunicationController %s" % controller.getShortName())
|
|
2306
|
+
self.setIdentifiable(element, controller)
|
|
2307
|
+
|
|
2308
|
+
def writeEcuInstanceCommControllers(self, element: ET.Element, instance: EcuInstance):
|
|
2309
|
+
controllers = instance.getCommControllers()
|
|
2310
|
+
if len(controllers) > 0:
|
|
2311
|
+
controllers_tag = ET.SubElement(element, "COMM-CONTROLLERS")
|
|
2312
|
+
for controller in controllers:
|
|
2313
|
+
if isinstance(controller, CanCommunicationController):
|
|
2314
|
+
child_element = ET.SubElement(controllers_tag, "CAN-COMMUNICATION-CONTROLLER")
|
|
2315
|
+
self.writeCanCommunicationController(child_element, controller)
|
|
2316
|
+
else:
|
|
2317
|
+
self._raiseError("Unsupported Communication Controller <%s>" % type(controller))
|
|
2318
|
+
|
|
2319
|
+
def writeCommunicationConnector(self, element: ET.Element, connector: CommunicationConnector):
|
|
2320
|
+
self.setIdentifiable(element, connector)
|
|
2321
|
+
self.setChildElementOptionalRefType(element, "COMM-CONTROLLER-REF", connector.getCommControllerRef())
|
|
2322
|
+
self.writeCommunicationConnectorEcuCommPortInstances(element, connector)
|
|
2323
|
+
|
|
2324
|
+
|
|
2325
|
+
def writeCanCommunicationConnector(self, element: ET.Element, connector: CanCommunicationConnector):
|
|
2326
|
+
self.logger.debug("Write CanCommunicationConnector %s" % connector.getShortName())
|
|
2327
|
+
self.writeCommunicationConnector(element, connector)
|
|
2328
|
+
|
|
2329
|
+
def writeEcuInstanceConnectors(self, element: ET.Element, instance: EcuInstance):
|
|
2330
|
+
connectors = instance.getConnectors()
|
|
2331
|
+
if len(connectors) > 0:
|
|
2332
|
+
connectors_tag = ET.SubElement(element, "CONNECTORS")
|
|
2333
|
+
for connector in connectors:
|
|
2334
|
+
if isinstance(connector, CanCommunicationConnector):
|
|
2335
|
+
child_element = ET.SubElement(connectors_tag, "CAN-COMMUNICATION-CONNECTOR")
|
|
2336
|
+
self.writeCanCommunicationConnector(child_element, connector)
|
|
2337
|
+
else:
|
|
2338
|
+
self._raiseError("Unsupported Communication connector <%s>" % type(connector))
|
|
2339
|
+
|
|
2268
2340
|
def writeEcuInstance(self, element: ET.Element, instance: EcuInstance):
|
|
2269
2341
|
self.logger.debug("EcuInstance %s" % instance.short_name)
|
|
2270
2342
|
child_element = ET.SubElement(element, "ECU-INSTANCE")
|
|
2271
2343
|
self.setIdentifiable(child_element, instance)
|
|
2344
|
+
self.setChildElementOptionalTimeValue(child_element, "COM-CONFIGURATION-GW-TIME-BASE", instance.getComConfigurationGwTimeBase())
|
|
2345
|
+
self.setChildElementOptionalTimeValue(child_element, "COM-CONFIGURATION-RX-TIME-BASE", instance.getComConfigurationRxTimeBase())
|
|
2346
|
+
self.setChildElementOptionalTimeValue(child_element, "COM-CONFIGURATION-TX-TIME-BASE", instance.getComConfigurationTxTimeBase())
|
|
2347
|
+
self.setChildElementOptionalBooleanValue(child_element, "COM-ENABLE-MDT-FOR-CYCLIC-TRANSMISSION", instance.getComEnableMDTForCyclicTransmission())
|
|
2348
|
+
self.writeEcuInstanceCommControllers(child_element, instance)
|
|
2349
|
+
self.writeEcuInstanceConnectors(child_element, instance)
|
|
2350
|
+
self.setChildElementOptionalBooleanValue(child_element, "SLEEP-MODE-SUPPORTED", instance.getSleepModeSupported())
|
|
2351
|
+
self.setChildElementOptionalBooleanValue(child_element, "WAKE-UP-OVER-BUS-SUPPORTED", instance.getWakeUpOverBusSupported())
|
|
2272
2352
|
|
|
2273
2353
|
def writeSystemSignalGroup(self, element: ET.Element, group: SystemSignalGroup):
|
|
2274
2354
|
self.logger.debug("Write SystemSignalGroup %s" % group.short_name)
|
|
@@ -2301,12 +2381,33 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2301
2381
|
self.setSenderReceiverToSignalGroupMapping(child_element, data_mapping)
|
|
2302
2382
|
else:
|
|
2303
2383
|
raise NotImplementedError("Unsupported Data Mapping %s" % type(data_mapping))
|
|
2384
|
+
|
|
2385
|
+
def setSwcToEcuMapping(self, element: ET.Element, mapping: SwcToEcuMapping):
|
|
2386
|
+
child_element = ET.SubElement(element, "SWC-TO-ECU-MAPPING")
|
|
2387
|
+
self.setIdentifiable(child_element, mapping)
|
|
2388
|
+
irefs = mapping.getComponentIRefs()
|
|
2389
|
+
if len(irefs) > 0:
|
|
2390
|
+
irefs_tag = ET.SubElement(child_element, "COMPONENT-IREFS")
|
|
2391
|
+
for iref in irefs:
|
|
2392
|
+
self.setComponentInSystemInstanceRef(irefs_tag, "COMPONENT-IREF", iref)
|
|
2393
|
+
self.setChildElementOptionalRefType(child_element, "ECU-INSTANCE-REF", mapping.getEcuInstanceRef())
|
|
2394
|
+
|
|
2395
|
+
def writeSystemMappingSwMappings(self, element: ET.Element, system_mapping: SystemMapping):
|
|
2396
|
+
sw_mappings = system_mapping.getSwMappings()
|
|
2397
|
+
if len(sw_mappings) > 0:
|
|
2398
|
+
child_element = ET.SubElement(element, "SW-MAPPINGS")
|
|
2399
|
+
for sw_mapping in sw_mappings:
|
|
2400
|
+
if isinstance(sw_mapping, SwcToEcuMapping):
|
|
2401
|
+
self.setSwcToEcuMapping(child_element, sw_mapping)
|
|
2402
|
+
else:
|
|
2403
|
+
raise NotImplementedError("Unsupported Sw Mapping %s" % type(sw_mapping))
|
|
2304
2404
|
|
|
2305
2405
|
def writeSystemMapping(self, element: ET.Element, mapping: SystemMapping):
|
|
2306
2406
|
self.logger.debug("Write SystemMapping %s" % mapping.short_name)
|
|
2307
2407
|
child_element = ET.SubElement(element, "SYSTEM-MAPPING")
|
|
2308
2408
|
self.setIdentifiable(child_element, mapping)
|
|
2309
2409
|
self.writeSystemMappingDataMappings(child_element, mapping)
|
|
2410
|
+
self.writeSystemMappingSwMappings(child_element, mapping)
|
|
2310
2411
|
|
|
2311
2412
|
def writeSystemMappings(self, element: ET.Element, system: System):
|
|
2312
2413
|
mappings = system.getMappings()
|
|
@@ -2318,6 +2419,15 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2318
2419
|
else:
|
|
2319
2420
|
raise NotImplementedError("Unsupported Mapping %s" % type(mapping))
|
|
2320
2421
|
|
|
2422
|
+
def writeRootSwCompositionPrototype(self, element: ET.Element, system: System):
|
|
2423
|
+
prototype = system.getRootSoftwareComposition()
|
|
2424
|
+
if prototype is not None:
|
|
2425
|
+
self.logger.debug("Write RootSwCompositionPrototype <%s>" % prototype.getShortName())
|
|
2426
|
+
child_element = ET.SubElement(element, "ROOT-SOFTWARE-COMPOSITIONS")
|
|
2427
|
+
child_element = ET.SubElement(child_element, "ROOT-SW-COMPOSITION-PROTOTYPE")
|
|
2428
|
+
self.setIdentifiable(child_element, prototype)
|
|
2429
|
+
self.setChildElementOptionalRefType(child_element, "SOFTWARE-COMPOSITION-TREF", prototype.getSoftwareCompositionTRef())
|
|
2430
|
+
|
|
2321
2431
|
def writeSystem(self, element: ET.Element, system: System):
|
|
2322
2432
|
self.logger.debug("Write System %s" % system.short_name)
|
|
2323
2433
|
child_element = ET.SubElement(element, "SYSTEM")
|
|
@@ -2332,6 +2442,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2332
2442
|
self.setChildElementOptionalRefType(fibex_element_ref_conditional_tag, "FIBEX-ELEMENT-REF", ref)
|
|
2333
2443
|
|
|
2334
2444
|
self.writeSystemMappings(child_element, system)
|
|
2445
|
+
self.writeRootSwCompositionPrototype(child_element, system)
|
|
2446
|
+
self.setChildElementOptionalRevisionLabelString(child_element, "SYSTEM-VERSION", system.getSystemVersion())
|
|
2335
2447
|
|
|
2336
2448
|
def writePhysicalDimension(self, element: ET.Element, dimension: PhysicalDimension):
|
|
2337
2449
|
self.logger.debug("Write PhysicalDimension %s" % dimension.short_name)
|
|
@@ -2515,6 +2627,16 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2515
2627
|
self.setIdentifiable(child_element, signal)
|
|
2516
2628
|
self.setChildElementOptionalBooleanValue(child_element, "DYNAMIC-LENGTH", signal.getDynamicLength())
|
|
2517
2629
|
|
|
2630
|
+
def writeParameterInterface(self, element: ET.Element, signal: SystemSignal):
|
|
2631
|
+
self.logger.debug("Write ParameterInterface %s" % signal.short_name)
|
|
2632
|
+
child_element = ET.SubElement(element, "PARAMETER-INTERFACE")
|
|
2633
|
+
self.setIdentifiable(child_element, signal)
|
|
2634
|
+
|
|
2635
|
+
def writeGenericEthernetFrame(self, element: ET.Element, signal: SystemSignal):
|
|
2636
|
+
self.logger.debug("Write GenericEthernetFrame %s" % signal.short_name)
|
|
2637
|
+
child_element = ET.SubElement(element, "ETHERNET-FRAME")
|
|
2638
|
+
self.writeFrame(child_element, signal)
|
|
2639
|
+
|
|
2518
2640
|
def writeISignalToPduMappings(self, element: ET.Element, parent: ISignalIPdu):
|
|
2519
2641
|
mappings = parent.getISignalToPduMappings()
|
|
2520
2642
|
if len(mappings) > 0:
|
|
@@ -2528,12 +2650,55 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2528
2650
|
self.setChildElementOptionalNumericalValue(child_element, "START-POSITION", mapping.getStartPosition())
|
|
2529
2651
|
self.setChildElementOptionalLiteral(child_element, "TRANSFER-PROPERTY", mapping.getTransferProperty())
|
|
2530
2652
|
self.setChildElementOptionalNumericalValue(child_element, "UPDATE-INDICATION-BIT-POSITION", mapping.getUpdateIndicationBitPosition())
|
|
2653
|
+
|
|
2654
|
+
def setDataFilter(self, element: ET.Element, key: str, filter: DataFilter):
|
|
2655
|
+
child_element = ET.SubElement(element, key)
|
|
2656
|
+
self.setChildElementOptionalLiteral(child_element, "DATA-FILTER-TYPE", filter.getDataFilterType())
|
|
2657
|
+
|
|
2658
|
+
def setTransmissionModeConditions(self, element: ET.Element, conditions: List[TransmissionModeCondition]):
|
|
2659
|
+
if len(conditions) > 0:
|
|
2660
|
+
conditions_tag = ET.SubElement(element, "TRANSMISSION-MODE-CONDITIONS")
|
|
2661
|
+
for condition in conditions:
|
|
2662
|
+
child_element = ET.SubElement(conditions_tag, "TRANSMISSION-MODE-CONDITION")
|
|
2663
|
+
self.setDataFilter(child_element, "DATA-FILTER", condition.getDataFilter())
|
|
2664
|
+
self.setChildElementOptionalRefType(child_element, "I-SIGNAL-IN-I-PDU-REF", condition.getISignalInIPduRef())
|
|
2665
|
+
|
|
2666
|
+
def setTimeRangeType(self, element: ET.Element, key: str, time_range: TimeRangeType):
|
|
2667
|
+
if time_range is not None:
|
|
2668
|
+
child_element = ET.SubElement(element, key)
|
|
2669
|
+
self.setChildElementOptionalTimeValue(child_element, "VALUE", time_range.getValue())
|
|
2670
|
+
|
|
2671
|
+
def setEventControlledTiming(self, element: ET.Element, key: str, timing: EventControlledTiming):
|
|
2672
|
+
if timing is not None:
|
|
2673
|
+
child_element = ET.SubElement(element, key)
|
|
2674
|
+
self.setChildElementOptionalIntegerValue(child_element, "NUMBER-OF-REPETITIONS", timing.getNumberOfRepetitions())
|
|
2675
|
+
self.setTimeRangeType(child_element, "REPETITION-PERIOD", timing.getRepetitionPeriod())
|
|
2676
|
+
|
|
2677
|
+
def setTransmissionModeTiming(self, element: ET.Element, key: str, timing: TransmissionModeTiming):
|
|
2678
|
+
if timing is not None:
|
|
2679
|
+
self.logger.debug("Set TransmissionModeTiming of <%s>" % key)
|
|
2680
|
+
child_element = ET.SubElement(element, key)
|
|
2681
|
+
#timing.getCyclicTiming(child_element, "")
|
|
2682
|
+
self.setEventControlledTiming(child_element, "EVENT-CONTROLLED-TIMING", timing.getEventControlledTiming())
|
|
2683
|
+
|
|
2684
|
+
def setTransmissionModeDeclaration(self, element: ET.Element, key: str, decl : TransmissionModeDeclaration):
|
|
2685
|
+
if decl is not None:
|
|
2686
|
+
child_element = ET.SubElement(element, key)
|
|
2687
|
+
self.setTransmissionModeConditions(child_element, decl.getTransmissionModeConditions())
|
|
2688
|
+
self.setTransmissionModeTiming(child_element, "TRANSMISSION-MODE-TRUE-TIMING", decl.getTransmissionModeTrueTiming())
|
|
2689
|
+
|
|
2690
|
+
def setISignalIPduIPduTimingSpecification(self, element: ET.Element, timing: IPduTiming):
|
|
2691
|
+
if timing is not None:
|
|
2692
|
+
spec_tag = ET.SubElement(element, "I-PDU-TIMING-SPECIFICATIONS")
|
|
2693
|
+
child_element = ET.SubElement(spec_tag, "I-PDU-TIMING")
|
|
2694
|
+
self.setTransmissionModeDeclaration(child_element, "TRANSMISSION-MODE-DECLARATION", timing.getTransmissionModeDeclaration())
|
|
2531
2695
|
|
|
2532
2696
|
def writeISignalIPdu(self, element: ET.Element, i_pdu: ISignalIPdu):
|
|
2533
2697
|
self.logger.debug("ISignalIPdu %s" % i_pdu.short_name)
|
|
2534
2698
|
child_element = ET.SubElement(element, "I-SIGNAL-I-PDU")
|
|
2535
2699
|
self.setIdentifiable(child_element, i_pdu)
|
|
2536
2700
|
self.setChildElementOptionalNumericalValue(child_element, "LENGTH", i_pdu.getLength())
|
|
2701
|
+
self.setISignalIPduIPduTimingSpecification(child_element, i_pdu.getIPduTimingSpecification())
|
|
2537
2702
|
self.writeISignalToPduMappings(child_element, i_pdu)
|
|
2538
2703
|
self.setChildElementOptionalLiteral(child_element, "UNUSED-BIT-PATTERN", i_pdu.getUnusedBitPattern())
|
|
2539
2704
|
|
|
@@ -2628,6 +2793,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2628
2793
|
self.writeISignalIPdu(element, ar_element)
|
|
2629
2794
|
elif isinstance(ar_element, SystemSignal):
|
|
2630
2795
|
self.writeSystemSignal(element, ar_element)
|
|
2796
|
+
elif isinstance(ar_element, ParameterInterface):
|
|
2797
|
+
self.writeParameterInterface(element, ar_element)
|
|
2798
|
+
elif isinstance(ar_element, GenericEthernetFrame):
|
|
2799
|
+
self.writeGenericEthernetFrame(element, ar_element)
|
|
2631
2800
|
else:
|
|
2632
2801
|
raise NotImplementedError("Unsupported Elements of ARPackage <%s>" % type(ar_element))
|
|
2633
2802
|
|