armodel 1.7.7__py3-none-any.whl → 1.7.9__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 +33 -22
- armodel/cli/arxml_format_cli.py +25 -13
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +84 -28
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +410 -61
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +80 -9
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +141 -35
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +10 -8
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +17 -6
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +38 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +91 -18
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +73 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +45 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +45 -2
- armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +20 -19
- armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +59 -0
- armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +145 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +243 -156
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +73 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +60 -32
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +35 -14
- armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +151 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +66 -42
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +1 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +13 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +166 -50
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +80 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +9 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +5 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +11 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +16 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +9 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +167 -5
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/{ECUResourceMapping.py → EcuResourceMapping.py} +4 -3
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +31 -21
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +5 -3
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +18 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +76 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +654 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +64 -31
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +158 -40
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +19 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +2 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +524 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +15 -13
- armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +10 -1
- armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +163 -0
- armodel/models/M2/MSR/Documentation/BlockElements/__init__.py +0 -0
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +5 -3
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +22 -1
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +94 -9
- armodel/models/__init__.py +7 -1
- armodel/parser/abstract_arxml_parser.py +39 -32
- armodel/parser/arxml_parser.py +1439 -551
- armodel/parser/file_parser.py +5 -3
- armodel/tests/test_armodel/models/test_ar_package.py +6 -11
- armodel/tests/test_armodel/models/test_port_interface.py +116 -117
- armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +109 -109
- armodel/tests/test_armodel/parser/test_sw_components.py +301 -28
- armodel/tests/test_armodel/parser/test_system.py +2 -8
- armodel/transformer/__init__.py +0 -0
- armodel/transformer/abstract.py +6 -0
- armodel/transformer/admin_data.py +31 -0
- armodel/writer/abstract_arxml_writer.py +22 -29
- armodel/writer/arxml_writer.py +1500 -526
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/METADATA +61 -1
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/RECORD +73 -57
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/LICENSE +0 -0
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/WHEEL +0 -0
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/top_level.txt +0 -0
armodel/writer/arxml_writer.py
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import xml.etree.cElementTree as ET
|
|
2
2
|
from typing import List
|
|
3
3
|
|
|
4
|
-
from armodel.models.M2.AUTOSARTemplates.SystemTemplate.ECUResourceMapping import ECUMapping
|
|
5
|
-
from armodel.models.M2.AUTOSARTemplates.SystemTemplate.SWmapping import SwcToImplMapping
|
|
6
|
-
|
|
7
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
|
|
8
4
|
from ..models.M2.MSR.AsamHdo.AdminData import AdminData
|
|
9
5
|
from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition, SwBaseType
|
|
10
|
-
from ..models.M2.MSR.AsamHdo.ComputationMethod import Compu, CompuConst, CompuConstContent, CompuConstFormulaContent, CompuConstNumericContent
|
|
6
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import Compu, CompuConst, CompuConstContent, CompuConstFormulaContent, CompuConstNumericContent
|
|
7
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuConstTextContent, CompuMethod, CompuNominatorDenominator, CompuScale
|
|
8
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
|
|
11
9
|
from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr, InternalConstrs, PhysConstrs
|
|
12
10
|
from ..models.M2.MSR.AsamHdo.SpecialData import Sdg
|
|
13
11
|
from ..models.M2.MSR.AsamHdo.Units import PhysicalDimension, Unit
|
|
@@ -19,87 +17,193 @@ from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, SwP
|
|
|
19
17
|
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayout, SwRecordLayoutGroup, SwRecordLayoutV
|
|
20
18
|
from ..models.M2.MSR.DataDictionary.ServiceProcessTask import SwServiceArg
|
|
21
19
|
from ..models.M2.MSR.Documentation.Annotation import Annotation
|
|
20
|
+
from ..models.M2.MSR.Documentation.BlockElements.Figure import Graphic, MlFigure
|
|
21
|
+
from ..models.M2.MSR.Documentation.TextModel.BlockElements.PaginationAndView import DocumentViewSelectable, Paginateable
|
|
22
22
|
from ..models.M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
|
|
23
|
-
from ..models.M2.MSR.Documentation.TextModel.BlockElements.ListElements import
|
|
23
|
+
from ..models.M2.MSR.Documentation.TextModel.BlockElements.ListElements import ARList
|
|
24
24
|
from ..models.M2.MSR.Documentation.TextModel.LanguageDataModel import LLongName, LPlainText, LanguageSpecific
|
|
25
|
-
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph, MultiLanguageParagraph, MultiLanguagePlainText
|
|
25
|
+
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph, MultiLanguageParagraph, MultiLanguagePlainText
|
|
26
|
+
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
|
|
26
27
|
|
|
27
28
|
from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
29
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswApiOptions, BswAsynchronousServerCallPoint, BswBackgroundEvent
|
|
30
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswCalledEntity, BswDataReceivedEvent, BswModuleCallPoint
|
|
31
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalTriggerOccurredEvent, BswOperationInvokedEvent
|
|
32
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswDataReceptionPolicy, BswEvent, BswExternalTriggerOccurredEvent
|
|
33
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalBehavior, BswInterruptEntity, BswModeSenderPolicy, BswModuleEntity
|
|
34
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswQueuedDataReceptionPolicy, BswSchedulableEntity, BswScheduleEvent
|
|
35
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswTimingEvent, BswVariableAccess, BswInternalTriggeringPoint
|
|
28
36
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
29
37
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
|
|
30
|
-
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
|
|
31
|
-
from ..models.M2.AUTOSARTemplates.
|
|
32
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure import
|
|
38
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleClientServerEntry, BswModuleEntry
|
|
39
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference
|
|
40
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure import ConstantSpecification, NumericalValueSpecification, RecordValueSpecification
|
|
41
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure import TextValueSpecification, ValueSpecification
|
|
33
42
|
from ..models.M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatInstanceDescriptor, FlatMap
|
|
34
43
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Filter import DataFilter
|
|
35
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping, SwcBswRunnableMapping
|
|
36
44
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import Code, Implementation, ImplementationProps
|
|
37
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming, TimingExtension
|
|
38
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import EOCExecutableEntityRef, ExecutionOrderConstraint
|
|
39
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagEventDebounceMonitorInternal, DiagnosticCommunicationManagerNeeds, DiagnosticEventInfoNeeds, DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds, EcuStateMgrUserNeeds, NvBlockNeeds, RoleBasedDataAssignment, RoleBasedDataTypeAssignment, ServiceDependency
|
|
40
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
|
|
41
45
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
|
|
46
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
|
|
42
47
|
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
|
|
43
48
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclaration, ModeDeclarationGroup, ModeDeclarationGroupPrototype
|
|
44
49
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import ResourceConsumption
|
|
45
50
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.StackUsage import RoughEstimateStackUsage, StackUsage
|
|
51
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping, SwcBswRunnableMapping
|
|
52
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagEventDebounceMonitorInternal
|
|
53
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticCapabilityElement, DtcStatusChangeNotificationNeeds
|
|
54
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticCommunicationManagerNeeds, DiagnosticEventInfoNeeds
|
|
55
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds
|
|
56
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import EcuStateMgrUserNeeds, NvBlockNeeds, RoleBasedDataAssignment
|
|
57
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import RoleBasedDataTypeAssignment, ServiceDependency
|
|
58
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.Keyword import KeywordSet, Keyword
|
|
59
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.BlueprintDedicated.PortPrototypeBlueprint import PortPrototypeBlueprint
|
|
60
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming, TimingExtension
|
|
61
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import EOCExecutableEntityRef
|
|
62
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import ExecutionOrderConstraint
|
|
63
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.TriggerDeclaration import Trigger
|
|
46
64
|
from ..models.M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import DiagnosticServiceTable
|
|
47
|
-
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue
|
|
48
|
-
from ..models.M2.AUTOSARTemplates.
|
|
49
|
-
from ..models.M2.AUTOSARTemplates.
|
|
65
|
+
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue
|
|
66
|
+
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue
|
|
67
|
+
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
|
|
68
|
+
from ..models.M2.AUTOSARTemplates.EcuResourceTemplate import HwDescriptionEntity, HwElement, HwPinGroup
|
|
69
|
+
from ..models.M2.AUTOSARTemplates.EcuResourceTemplate.HwElementCategory import HwAttributeDef, HwCategory, HwType
|
|
50
70
|
from ..models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
|
|
71
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ElementCollection import Collection
|
|
51
72
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage, ReferenceBase
|
|
73
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
|
|
74
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Describable, Identifiable
|
|
75
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Referrable, MultilanguageReferrable
|
|
52
76
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARLiteral, Limit
|
|
53
|
-
|
|
54
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
55
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
77
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfo, LifeCycleInfoSet, LifeCyclePeriod
|
|
78
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import CompositeNetworkRepresentation, ModeSwitchedAckRequest
|
|
79
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import TransmissionAcknowledgementRequest
|
|
80
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec
|
|
81
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec
|
|
82
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec
|
|
83
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import RPortComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
|
|
84
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AbstractProvidedPortPrototype, AbstractRequiredPortPrototype
|
|
85
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, AtomicSwComponentType
|
|
86
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ComplexDeviceDriverSwComponentType, CompositionSwComponentType
|
|
87
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import EcuAbstractionSwComponentType, PRPortPrototype, PortGroup, SwComponentType
|
|
88
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import PPortPrototype, PortPrototype, RPortPrototype, SymbolProps
|
|
89
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ServiceSwComponentType
|
|
90
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import InnerPortGroupInCompositionInstanceRef
|
|
91
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import ModeGroupInAtomicSwcInstanceRef
|
|
92
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import PModeGroupInAtomicSwcInstanceRef
|
|
93
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import RModeGroupInAtomicSWCInstanceRef
|
|
94
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
|
|
95
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import AssemblySwConnector, DelegationSwConnector, SwComponentPrototype, SwConnector
|
|
96
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef
|
|
97
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef
|
|
98
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationArrayElement
|
|
99
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationCompositeElementDataPrototype
|
|
100
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationRecordElement, AutosarDataPrototype, DataPrototype
|
|
101
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ParameterDataPrototype, VariableDataPrototype
|
|
102
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationCompositeDataType
|
|
103
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationDataType, ApplicationPrimitiveDataType
|
|
104
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationRecordDataType, AutosarDataType
|
|
105
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
|
|
106
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndDescription, EndToEndProtection, EndToEndProtectionISignalIPdu
|
|
107
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionVariablePrototype
|
|
108
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
|
|
109
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ArgumentDataPrototype, ClientServerInterface
|
|
110
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerInterfaceMapping, ClientServerOperationMapping
|
|
111
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerOperation, DataInterface
|
|
112
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import DataPrototypeMapping, ModeSwitchInterface, ParameterInterface
|
|
113
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import PortInterface, PortInterfaceMappingSet, SenderReceiverInterface
|
|
114
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import TriggerInterface, VariableAndParameterInterfaceMapping
|
|
115
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
|
|
116
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import AsynchronousServerCallPoint, RunnableEntity, RunnableEntityArgument
|
|
117
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import SwcInternalBehavior, SynchronousServerCallPoint
|
|
118
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AutosarVariableRef import AutosarVariableRef
|
|
119
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
|
|
120
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef
|
|
121
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortDefinedArgumentValue
|
|
122
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import AsynchronousServerCallReturnsEvent, BackgroundEvent
|
|
123
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent
|
|
124
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import ModeSwitchedAckEvent, OperationInvokedEvent, RTEEvent
|
|
125
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import SwcModeSwitchEvent, TimingEvent
|
|
56
126
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
57
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType, AutosarDataType
|
|
58
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndDescription, EndToEndProtection, EndToEndProtectionVariablePrototype
|
|
59
127
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
|
|
60
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
61
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AbstractProvidedPortPrototype, AbstractRequiredPortPrototype, ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, CompositionSwComponentType, EcuAbstractionSwComponentType, PRPortPrototype, PortGroup, SwComponentType, PPortPrototype, PortPrototype, RPortPrototype, SymbolProps
|
|
62
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import InnerPortGroupInCompositionInstanceRef, PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef, RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
|
|
63
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import AsynchronousServerCallPoint, RunnableEntity, RunnableEntityArgument, SwcInternalBehavior, SynchronousServerCallPoint
|
|
64
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AutosarVariableRef import AutosarVariableRef
|
|
128
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import ModeAccessPoint, ModeSwitchPoint
|
|
65
129
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
|
|
66
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
|
|
67
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import AssemblySwConnector, DelegationSwConnector, SwComponentPrototype, SwConnector
|
|
68
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef, ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef
|
|
69
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
|
|
70
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef, VariableInAtomicSWCTypeInstanceRef
|
|
71
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, RPortComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
|
|
72
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef
|
|
73
130
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import RoleBasedPortAssignment, SwcServiceDependency
|
|
74
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationArrayElement, ApplicationCompositeElementDataPrototype, ApplicationRecordElement, AutosarDataPrototype, DataPrototype, ParameterDataPrototype, VariableDataPrototype
|
|
75
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ServiceSwComponentType
|
|
76
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
|
|
77
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
|
|
78
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ClientServerInterface, ClientServerOperation, DataPrototypeMapping, ModeSwitchInterface, ParameterInterface, PortInterface, PortInterfaceMappingSet, SenderReceiverInterface, TriggerInterface, VariableAndParameterInterfaceMapping
|
|
79
131
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
|
|
80
132
|
|
|
81
133
|
from ..models.M2.AUTOSARTemplates.SystemTemplate import SwcToEcuMapping, System, SystemMapping
|
|
82
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import
|
|
134
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderRecCompositeTypeMapping, SenderRecRecordElementMapping
|
|
135
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderRecRecordTypeMapping, SenderReceiverToSignalGroupMapping
|
|
136
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderReceiverToSignalMapping
|
|
83
137
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.DiagnosticConnection import DiagnosticConnection
|
|
84
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.
|
|
85
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
86
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import CyclicTiming, EventControlledTiming, TimeRangeType, TransmissionModeCondition, TransmissionModeDeclaration, TransmissionModeTiming
|
|
87
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SoAdRoutingGroup, SocketConnection, SocketConnectionBundle, SocketConnectionIpduIdentifier
|
|
88
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
|
|
89
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import CouplingPort, CouplingPortDetails, CouplingPortFifo, CouplingPortScheduler, CouplingPortStructuralElement, EthernetCluster, EthernetCommunicationConnector, EthernetCommunicationController, EthernetPriorityRegeneration, InitialSdDelayConfig, MacMulticastGroup, RequestResponseDelay, SdClientConfig, VlanMembership
|
|
90
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import DoIpEntity, InfrastructureServices, Ipv6Configuration, NetworkEndpoint, NetworkEndpointAddress
|
|
91
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import ApplicationEndpoint, ConsumedEventGroup, ConsumedServiceInstance, EventHandler, GenericTp, ProvidedServiceInstance, SdServerConfig, SoAdConfig, SocketAddress, TcpTp, TpPort, TransportProtocolConfiguration, UdpTp
|
|
92
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway, IPduMapping, ISignalMapping, TargetIPduRef
|
|
138
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.EcuResourceMapping import ECUMapping
|
|
93
139
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame, CanFrameTriggering, RxIdentifierRange
|
|
94
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import AbstractCanCommunicationController
|
|
95
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.
|
|
96
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.
|
|
140
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import AbstractCanCommunicationController
|
|
141
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import AbstractCanCommunicationControllerAttributes
|
|
142
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
|
|
143
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanControllerConfigurationRequirements
|
|
144
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanControllerFdConfiguration
|
|
145
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanControllerFdConfigurationRequirements
|
|
146
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SoAdRoutingGroup, SocketConnection
|
|
147
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SocketConnectionBundle
|
|
148
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SocketConnectionIpduIdentifier
|
|
149
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
|
|
150
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import CouplingPort, CouplingPortDetails, CouplingPortFifo
|
|
151
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import CouplingPortScheduler, CouplingPortStructuralElement
|
|
152
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCluster, EthernetCommunicationConnector
|
|
153
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCommunicationController
|
|
154
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetPriorityRegeneration, InitialSdDelayConfig
|
|
155
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import MacMulticastGroup, RequestResponseDelay, SdClientConfig
|
|
156
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import VlanMembership
|
|
157
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import DoIpEntity, InfrastructureServices, Ipv6Configuration
|
|
158
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import NetworkEndpoint, NetworkEndpointAddress
|
|
159
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import ApplicationEndpoint, ConsumedEventGroup
|
|
160
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import ConsumedServiceInstance, EventHandler, GenericTp
|
|
161
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import ProvidedServiceInstance, SdServerConfig, SoAdConfig
|
|
162
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import SocketAddress, TcpTp, TpPort
|
|
163
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import TransportProtocolConfiguration, UdpTp
|
|
164
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayCommunication import FlexrayAbsolutelyScheduledTiming, FlexrayFrame
|
|
165
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayCommunication import FlexrayFrameTriggering
|
|
166
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayTopology import FlexrayCluster, FlexrayCommunicationConnector
|
|
167
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayTopology import FlexrayCommunicationController
|
|
168
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import ApplicationEntry, LinFrameTriggering, LinScheduleTable
|
|
169
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinUnconditionalFrame, ScheduleTableEntry
|
|
97
170
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinTopology import LinCommunicationConnector, LinCommunicationController, LinMaster
|
|
171
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway, IPduMapping, ISignalMapping, TargetIPduRef
|
|
172
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DynamicPart, DynamicPartAlternative, FrameTriggering
|
|
173
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import GeneralPurposeIPdu, GeneralPurposePdu, IPdu, IPduTiming
|
|
174
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import ISignalGroup, ISignalIPdu, ISignalIPduGroup
|
|
175
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import ISignalToIPduMapping, ISignalTriggering, MultiplexedIPdu
|
|
176
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import MultiplexedPart, Pdu, PduTriggering
|
|
177
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import SecureCommunicationAuthenticationProps
|
|
178
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import SecureCommunicationFreshnessProps, SecureCommunicationProps
|
|
179
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import SecureCommunicationPropsSet, SecuredIPdu, SegmentPosition
|
|
180
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import StaticPart, SystemSignal, DcmIPdu, Frame, ISignal, NPdu
|
|
181
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import NmPdu, SystemSignalGroup, UserDefinedIPdu, UserDefinedPdu
|
|
182
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanCluster, CanClusterBusOffRecovery
|
|
183
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import FlexrayPhysicalChannel, CommunicationCycle, CycleRepetition
|
|
184
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CanPhysicalChannel, CommConnectorPort, CommunicationCluster
|
|
185
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
|
|
186
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import EthernetPhysicalChannel, FramePort, IPduPort, ISignalPort
|
|
187
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import LinCluster, LinPhysicalChannel, PhysicalChannel
|
|
188
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
189
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import CyclicTiming, EventControlledTiming, TimeRangeType
|
|
190
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeCondition, TransmissionModeDeclaration
|
|
191
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeTiming
|
|
98
192
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef, VariableDataPrototypeInSystemInstanceRef
|
|
99
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmEcu
|
|
100
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.
|
|
193
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmEcu
|
|
194
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import NmNode, UdpNmCluster, UdpNmClusterCoupling, UdpNmEcu, UdpNmNode
|
|
195
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.SWmapping import SwcToImplMapping
|
|
196
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Transformer import BufferProperties, DataTransformation, DataTransformationSet
|
|
197
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Transformer import EndToEndTransformationISignalProps, TransformationISignalProps
|
|
198
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Transformer import EndToEndTransformationDescription, TransformationDescription
|
|
199
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Transformer import TransformationTechnology
|
|
200
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpAddress, CanTpChannel, CanTpConfig, CanTpConnection, CanTpEcu
|
|
201
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpNode, DoIpLogicAddress, DoIpTpConfig, DoIpTpConnection, LinTpConfig
|
|
202
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import LinTpConnection, LinTpNode, TpAddress, TpConfig, TpConnection
|
|
101
203
|
|
|
102
204
|
from .abstract_arxml_writer import AbstractARXMLWriter
|
|
205
|
+
|
|
206
|
+
|
|
103
207
|
class ARXMLWriter(AbstractARXMLWriter):
|
|
104
208
|
def __init__(self, options=None) -> None:
|
|
105
209
|
super().__init__(options)
|
|
@@ -113,7 +217,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
113
217
|
def setChildElementRxIdentifierRange(self, element: ET.Element, key: str, range: RxIdentifierRange):
|
|
114
218
|
if range is not None:
|
|
115
219
|
child_element = ET.SubElement(element, key)
|
|
116
|
-
self.setChildElementOptionalNumericalValue(child_element, "LOWER-CAN-ID", range.getLowerCanId())
|
|
220
|
+
self.setChildElementOptionalNumericalValue(child_element, "LOWER-CAN-ID", range.getLowerCanId())
|
|
117
221
|
self.setChildElementOptionalNumericalValue(child_element, "UPPER-CAN-ID", range.getUpperCanId())
|
|
118
222
|
|
|
119
223
|
def writeSds(self, parent: ET.Element, sdg: Sdg):
|
|
@@ -217,17 +321,17 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
217
321
|
self.setAnnotations(element, identifiable.getAnnotations())
|
|
218
322
|
self.setMultiLanguageOverviewParagraph(element, "DESC", identifiable.getDesc())
|
|
219
323
|
self.setChildElementOptionalLiteral(element, "CATEGORY", identifiable.getCategory())
|
|
220
|
-
self.
|
|
324
|
+
self.writeDocumentationBlock(element, "INTRODUCTION", identifiable.getIntroduction())
|
|
221
325
|
self.setAdminData(element, identifiable.getAdminData())
|
|
222
326
|
|
|
223
327
|
def writeARElement(self, parent: ET.Element, ar_element: ARElement):
|
|
224
328
|
self.writeIdentifiable(parent, ar_element)
|
|
225
|
-
|
|
329
|
+
|
|
226
330
|
def setTransmissionAcknowledgementRequest(self, element: ET.Element, acknowledge: TransmissionAcknowledgementRequest):
|
|
227
|
-
if (acknowledge
|
|
331
|
+
if (acknowledge is not None):
|
|
228
332
|
child_element = ET.SubElement(element, "TRANSMISSION-ACKNOWLEDGE")
|
|
229
333
|
self.writeARObjectAttributes(child_element, acknowledge)
|
|
230
|
-
if acknowledge.timeout
|
|
334
|
+
if acknowledge.timeout is not None:
|
|
231
335
|
self.setChildElementOptionalFloatValue(child_element, "TIMEOUT", acknowledge.timeout)
|
|
232
336
|
|
|
233
337
|
def setSenderComSpec(self, element: ET.Element, com_spec: SenderComSpec):
|
|
@@ -241,18 +345,18 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
241
345
|
self.setChildElementOptionalLiteral(element, "HANDLE-OUT-OF-RANGE", com_spec.getHandleOutOfRange())
|
|
242
346
|
self.setTransmissionAcknowledgementRequest(element, com_spec.getTransmissionAcknowledge())
|
|
243
347
|
self.setChildElementOptionalBooleanValue(element, "USES-END-TO-END-PROTECTION", com_spec.getUsesEndToEndProtection())
|
|
244
|
-
|
|
348
|
+
|
|
245
349
|
def setNonqueuedSenderComSpec(self, element: ET.Element, com_spec: NonqueuedSenderComSpec):
|
|
246
350
|
child_element = ET.SubElement(element, "NONQUEUED-SENDER-COM-SPEC")
|
|
247
351
|
self.writeARObjectAttributes(child_element, com_spec)
|
|
248
352
|
self.setSenderComSpec(child_element, com_spec)
|
|
249
353
|
self.setValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
|
|
250
|
-
|
|
354
|
+
|
|
251
355
|
def setServerComSpec(self, element: ET.Element, com_spec: ServerComSpec):
|
|
252
356
|
child_element = ET.SubElement(element, "SERVER-COM-SPEC")
|
|
253
357
|
self.writeARObjectAttributes(child_element, com_spec)
|
|
254
358
|
self.setChildElementOptionalRefType(child_element, "OPERATION-REF", com_spec.getOperationRef())
|
|
255
|
-
self.setChildElementOptionalNumericalValue(child_element, "QUEUE-LENGTH",
|
|
359
|
+
self.setChildElementOptionalNumericalValue(child_element, "QUEUE-LENGTH", com_spec.getQueueLength())
|
|
256
360
|
|
|
257
361
|
def setQueuedSenderComSpec(self, element: ET.Element, com_spec: QueuedSenderComSpec):
|
|
258
362
|
child_element = ET.SubElement(element, "QUEUED-SENDER-COM-SPEC")
|
|
@@ -283,14 +387,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
283
387
|
self.setModeSwitchSenderComSpec(com_specs_tag, com_spec)
|
|
284
388
|
else:
|
|
285
389
|
self.notImplemented("Unsupported PPortComSpec %s" % type(com_spec))
|
|
286
|
-
|
|
287
|
-
def setApplicationCompositeElementInPortInterfaceInstanceRef(self, element: ET.Element, key:str, iref: ApplicationCompositeElementInPortInterfaceInstanceRef):
|
|
390
|
+
|
|
391
|
+
def setApplicationCompositeElementInPortInterfaceInstanceRef(self, element: ET.Element, key: str, iref: ApplicationCompositeElementInPortInterfaceInstanceRef): # noqa E501
|
|
288
392
|
if iref is not None:
|
|
289
393
|
child_element = ET.SubElement(element, key)
|
|
290
394
|
self.setChildElementOptionalRefType(child_element, "ROOT-DATA-PROTOTYPE-REF", iref.root_data_prototype_ref)
|
|
291
395
|
self.setChildElementOptionalRefType(child_element, "TARGET-DATA-PROTOTYPE-REF", iref.target_data_prototype_ref)
|
|
292
396
|
return iref
|
|
293
|
-
|
|
397
|
+
|
|
294
398
|
def setCompositeNetworkRepresentation(self, element: ET.Element, representation: CompositeNetworkRepresentation):
|
|
295
399
|
if representation is not None:
|
|
296
400
|
self.logger.debug("setCompositeNetworkRepresentation")
|
|
@@ -335,28 +439,21 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
335
439
|
def writeValueSpecification(self, element: ET.Element, value_spec: ValueSpecification):
|
|
336
440
|
if value_spec is not None:
|
|
337
441
|
self.writeARObjectAttributes(element, value_spec)
|
|
338
|
-
self.setChildElementOptionalLiteral(element, "SHORT-LABEL", value_spec.getShortLabel())
|
|
339
|
-
|
|
340
|
-
def setApplicationValueSpecification(self, element: ET.Element, value_spec: ApplicationValueSpecification):
|
|
341
|
-
if value_spec is not None:
|
|
342
|
-
value_spec_tag = ET.SubElement(element, "APPLICATION-VALUE-SPECIFICATION")
|
|
343
|
-
self.writeValueSpecification(value_spec_tag, value_spec)
|
|
344
|
-
self.setChildElementOptionalLiteral(value_spec_tag, "CATEGORY", value_spec.getCategory())
|
|
345
|
-
self.writeSwValueCont(value_spec_tag, value_spec.getSwValueCont())
|
|
442
|
+
self.setChildElementOptionalLiteral(element, "SHORT-LABEL", value_spec.getShortLabel())
|
|
346
443
|
|
|
347
|
-
def
|
|
444
|
+
def writeTextValueSpecification(self, element: ET.Element, value_spec: TextValueSpecification):
|
|
348
445
|
if value_spec is not None:
|
|
349
446
|
value_spec_tag = ET.SubElement(element, "TEXT-VALUE-SPECIFICATION")
|
|
350
447
|
self.writeValueSpecification(value_spec_tag, value_spec)
|
|
351
448
|
self.setChildElementOptionalLiteral(value_spec_tag, "VALUE", value_spec.getValue())
|
|
352
449
|
|
|
353
|
-
def
|
|
450
|
+
def writeNumericalValueSpecification(self, element: ET.Element, value_spec: NumericalValueSpecification):
|
|
354
451
|
if value_spec is not None:
|
|
355
452
|
value_spec_tag = ET.SubElement(element, "NUMERICAL-VALUE-SPECIFICATION")
|
|
356
453
|
self.writeValueSpecification(value_spec_tag, value_spec)
|
|
357
454
|
self.setChildElementOptionalFloatValue(value_spec_tag, "VALUE", value_spec.getValue())
|
|
358
455
|
|
|
359
|
-
def
|
|
456
|
+
def writeArrayValueSpecification(self, element: ET.Element, value_spec: ArrayValueSpecification):
|
|
360
457
|
value_spec_tag = ET.SubElement(element, "ARRAY-VALUE-SPECIFICATION")
|
|
361
458
|
self.writeValueSpecification(value_spec_tag, value_spec)
|
|
362
459
|
sub_elements = value_spec.getElements()
|
|
@@ -364,18 +461,18 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
364
461
|
elements_tag = ET.SubElement(value_spec_tag, "ELEMENTS")
|
|
365
462
|
for sub_element in sub_elements:
|
|
366
463
|
if isinstance(sub_element, NumericalValueSpecification):
|
|
367
|
-
self.
|
|
464
|
+
self.writeNumericalValueSpecification(elements_tag, sub_element)
|
|
368
465
|
elif isinstance(sub_element, ApplicationValueSpecification):
|
|
369
|
-
self.
|
|
466
|
+
self.writeApplicationValueSpecification(elements_tag, sub_element)
|
|
370
467
|
elif isinstance(sub_element, TextValueSpecification):
|
|
371
|
-
self.
|
|
468
|
+
self.writeTextValueSpecification(elements_tag, sub_element)
|
|
372
469
|
elif isinstance(sub_element, ArrayValueSpecification):
|
|
373
|
-
self.
|
|
470
|
+
self.writeArrayValueSpecification(elements_tag, sub_element)
|
|
374
471
|
elif isinstance(sub_element, RecordValueSpecification):
|
|
375
|
-
self.
|
|
472
|
+
self.writeRecordValueSpecification(elements_tag, sub_element)
|
|
376
473
|
else:
|
|
377
474
|
self.notImplemented("Unsupported element type of <%s> of ArrayValueSpecification" % type(sub_element))
|
|
378
|
-
|
|
475
|
+
|
|
379
476
|
def setConstantReference(self, element: ET.Element, value_spec: ConstantReference):
|
|
380
477
|
value_spec_tag = ET.SubElement(element, "CONSTANT-REFERENCE")
|
|
381
478
|
self.writeValueSpecification(value_spec_tag, value_spec)
|
|
@@ -385,17 +482,17 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
385
482
|
if value_spec is not None:
|
|
386
483
|
child_element = ET.SubElement(element, key)
|
|
387
484
|
if isinstance(value_spec, ApplicationValueSpecification):
|
|
388
|
-
self.
|
|
485
|
+
self.writeApplicationValueSpecification(child_element, value_spec)
|
|
389
486
|
elif isinstance(value_spec, TextValueSpecification):
|
|
390
|
-
self.
|
|
487
|
+
self.writeTextValueSpecification(child_element, value_spec)
|
|
391
488
|
elif isinstance(value_spec, ConstantReference):
|
|
392
489
|
self.setConstantReference(child_element, value_spec)
|
|
393
490
|
elif isinstance(value_spec, NumericalValueSpecification):
|
|
394
|
-
self.
|
|
491
|
+
self.writeNumericalValueSpecification(child_element, value_spec)
|
|
395
492
|
elif isinstance(value_spec, ArrayValueSpecification):
|
|
396
|
-
self.
|
|
493
|
+
self.writeArrayValueSpecification(child_element, value_spec)
|
|
397
494
|
elif isinstance(value_spec, RecordValueSpecification):
|
|
398
|
-
self.
|
|
495
|
+
self.writeRecordValueSpecification(child_element, value_spec)
|
|
399
496
|
else:
|
|
400
497
|
self.notImplemented("Unsupported ValueSpecification %s" % type(value_spec))
|
|
401
498
|
|
|
@@ -471,7 +568,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
471
568
|
if len(com_specs) > 0:
|
|
472
569
|
com_specs_tag = ET.SubElement(element, "REQUIRED-COM-SPECS")
|
|
473
570
|
for com_spec in com_specs:
|
|
474
|
-
self.writeRPortComSpec(com_specs_tag, com_spec)
|
|
571
|
+
self.writeRPortComSpec(com_specs_tag, com_spec)
|
|
475
572
|
|
|
476
573
|
def writeRPortPrototype(self, ports_tag: ET.Element, prototype: RPortPrototype):
|
|
477
574
|
self.logger.debug("write RPortPrototype %s" % prototype.getShortName())
|
|
@@ -487,21 +584,24 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
487
584
|
self.setAbstractProvidedPortPrototype(prototype_tag, prototype)
|
|
488
585
|
self.setAbstractRequiredPortPrototype(prototype_tag, prototype)
|
|
489
586
|
self.setChildElementOptionalRefType(prototype_tag, "PROVIDED-REQUIRED-INTERFACE-TREF", prototype.getProvidedRequiredInterface())
|
|
490
|
-
|
|
491
|
-
def
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
587
|
+
|
|
588
|
+
def writeSwComponentTypePorts(self, element: ET.Element, sw_component: SwComponentType):
|
|
589
|
+
ports = sw_component.getPorts()
|
|
590
|
+
if len(ports) > 0:
|
|
591
|
+
child_element = ET.SubElement(element, "PORTS")
|
|
592
|
+
for port in ports:
|
|
593
|
+
if isinstance(port, PPortPrototype):
|
|
594
|
+
self.writePPortPrototype(child_element, port)
|
|
595
|
+
elif isinstance(port, RPortPrototype):
|
|
596
|
+
self.writeRPortPrototype(child_element, port)
|
|
597
|
+
elif isinstance(port, PRPortPrototype):
|
|
598
|
+
self.writePRPortPrototype(child_element, port)
|
|
599
|
+
else:
|
|
600
|
+
self.notImplemented("Unsupported Port Prototype <%s>" % type(port))
|
|
501
601
|
|
|
502
602
|
def writeInnerGroupIRef(self, element: ET.Element, inner_group_iref: InnerPortGroupInCompositionInstanceRef):
|
|
503
603
|
child_element = ET.SubElement(element, "INNER-GROUP-IREF")
|
|
504
|
-
#self.setChildElementOptionalRefType(child_element, "CONTEXT-REF", inner_group_iref.contextRef)
|
|
604
|
+
# self.setChildElementOptionalRefType(child_element, "CONTEXT-REF", inner_group_iref.contextRef)
|
|
505
605
|
self.setChildElementOptionalRefType(child_element, "TARGET-REF", inner_group_iref.getTargetRef())
|
|
506
606
|
|
|
507
607
|
def writePortGroupInnerGroupIRefs(self, element: ET.Element, parent: PortGroup):
|
|
@@ -535,10 +635,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
535
635
|
|
|
536
636
|
def writeSwComponentType(self, element: ET.Element, sw_component: SwComponentType):
|
|
537
637
|
self.writeIdentifiable(element, sw_component)
|
|
538
|
-
|
|
539
|
-
if len(port_prototypes) > 0:
|
|
540
|
-
ports_tag = ET.SubElement(element, "PORTS")
|
|
541
|
-
self.writePortPrototypes(ports_tag, port_prototypes)
|
|
638
|
+
self.writeSwComponentTypePorts(element, sw_component)
|
|
542
639
|
self.writeSwComponentTypePortGroups(element, sw_component)
|
|
543
640
|
|
|
544
641
|
def writeSwComponentPrototype(self, element: ET.Element, prototype: SwComponentPrototype):
|
|
@@ -546,17 +643,19 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
546
643
|
self.writeIdentifiable(prototype_tag, prototype)
|
|
547
644
|
self.setChildElementOptionalRefType(prototype_tag, "TYPE-TREF", prototype.getTypeTRef())
|
|
548
645
|
|
|
549
|
-
def
|
|
550
|
-
|
|
551
|
-
if len(
|
|
646
|
+
def writeCompositionSwComponentTypeComponents(self, element: ET.Element, sw_component: CompositionSwComponentType):
|
|
647
|
+
components = sw_component.getComponents()
|
|
648
|
+
if len(components) > 0:
|
|
552
649
|
components_tag = ET.SubElement(element, "COMPONENTS")
|
|
553
|
-
|
|
554
|
-
|
|
650
|
+
for component in components:
|
|
651
|
+
if isinstance(component, SwComponentPrototype):
|
|
652
|
+
self.writeSwComponentPrototype(components_tag, component)
|
|
653
|
+
else:
|
|
654
|
+
self.notImplemented("Unsupported Component <%s>" % type(component))
|
|
555
655
|
|
|
556
656
|
def writeAssemblySwConnector(self, element: ET.Element, sw_connector: AssemblySwConnector):
|
|
557
657
|
child_element = ET.SubElement(element, "ASSEMBLY-SW-CONNECTOR")
|
|
558
|
-
self.
|
|
559
|
-
self.setChildElementOptionalRefType(child_element, "MAPPING-REF", sw_connector.getMappingRef())
|
|
658
|
+
self.writeSwConnector(child_element, sw_connector)
|
|
560
659
|
|
|
561
660
|
if sw_connector.getProviderIRef() is not None:
|
|
562
661
|
provider_iref_tag = ET.SubElement(child_element, "PROVIDER-IREF")
|
|
@@ -592,27 +691,23 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
592
691
|
|
|
593
692
|
if sw_connector.getOuterPortRef() is not None:
|
|
594
693
|
self.setChildElementOptionalRefType(connector_tag, "OUTER-PORT-REF", sw_connector.getOuterPortRef())
|
|
595
|
-
#self.writeChildOptionalRefElement(requester_iref_tag, "TARGET-R-PORT-REF", sw_connector.requester_iref.target_r_port_ref)
|
|
694
|
+
# self.writeChildOptionalRefElement(requester_iref_tag, "TARGET-R-PORT-REF", sw_connector.requester_iref.target_r_port_ref)
|
|
596
695
|
|
|
597
696
|
def writeSwConnector(self, element: ET.Element, sw_connector: SwConnector):
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
elif isinstance(sw_connector, DelegationSwConnector):
|
|
601
|
-
self.writeDelegationSwConnector(element, sw_connector)
|
|
602
|
-
else:
|
|
603
|
-
self.notImplemented("Unsupported Sw Connector %s")
|
|
697
|
+
self.writeIdentifiable(element, sw_connector)
|
|
698
|
+
self.setChildElementOptionalRefType(element, "MAPPING-REF", sw_connector.getMappingRef())
|
|
604
699
|
|
|
605
|
-
def
|
|
700
|
+
def writeCompositionSwComponentTypeSwConnectors(self, element: ET.Element, sw_component: CompositionSwComponentType):
|
|
606
701
|
sw_connectors = sw_component.getSwConnectors()
|
|
607
702
|
if len(sw_connectors) > 0:
|
|
608
|
-
|
|
609
|
-
# Change the implementation to compatible with AUTOSAR builder
|
|
703
|
+
child_element = ET.SubElement(element, "CONNECTORS")
|
|
610
704
|
for sw_connector in sw_connectors:
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
705
|
+
if isinstance(sw_connector, AssemblySwConnector):
|
|
706
|
+
self.writeAssemblySwConnector(child_element, sw_connector)
|
|
707
|
+
elif isinstance(sw_connector, DelegationSwConnector):
|
|
708
|
+
self.writeDelegationSwConnector(child_element, sw_connector)
|
|
709
|
+
else:
|
|
710
|
+
self.notImplemented("Unsupported Sw Connector %s" % type(sw_connector))
|
|
616
711
|
|
|
617
712
|
def writeCompositionSwComponentTypeDataTypeMappingSet(self, element: ET.Element, parent: CompositionSwComponentType):
|
|
618
713
|
data_type_mappings = parent.getDataTypeMappings()
|
|
@@ -626,8 +721,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
626
721
|
child_element = ET.SubElement(parent, "COMPOSITION-SW-COMPONENT-TYPE")
|
|
627
722
|
|
|
628
723
|
self.writeSwComponentType(child_element, sw_component)
|
|
629
|
-
self.
|
|
630
|
-
self.
|
|
724
|
+
self.writeCompositionSwComponentTypeComponents(child_element, sw_component)
|
|
725
|
+
self.writeCompositionSwComponentTypeSwConnectors(child_element, sw_component)
|
|
631
726
|
self.writeCompositionSwComponentTypeDataTypeMappingSet(child_element, sw_component)
|
|
632
727
|
|
|
633
728
|
def writeCompositionSwComponentTypes(self, element: ET.Element, ar_package: ARPackage):
|
|
@@ -649,29 +744,59 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
649
744
|
self.writeLParagraphs(child_element, paragraph)
|
|
650
745
|
return paragraphs
|
|
651
746
|
|
|
652
|
-
def setListElement(self, element: ET.Element, key: str, list:
|
|
747
|
+
def setListElement(self, element: ET.Element, key: str, list: ARList):
|
|
653
748
|
if list is not None:
|
|
654
749
|
child_element = ET.SubElement(element, key)
|
|
655
750
|
type = list.getType()
|
|
656
751
|
if type is not None:
|
|
657
752
|
child_element.attrib['TYPE'] = type
|
|
658
753
|
for item in list.getItems():
|
|
659
|
-
self.
|
|
754
|
+
self.writeDocumentationBlock(child_element, "ITEM", item)
|
|
660
755
|
|
|
661
|
-
def
|
|
756
|
+
def setGraphic(self, element: ET.Element, key: str, graphic: Graphic):
|
|
757
|
+
if graphic is not None:
|
|
758
|
+
child_element = ET.SubElement(element, key)
|
|
759
|
+
if graphic.getFilename() is not None:
|
|
760
|
+
child_element.attrib["FILENAME"] = graphic.getFilename()
|
|
761
|
+
|
|
762
|
+
def writeMlFigureLGraphics(self, element: ET.Element, figure: MlFigure):
|
|
763
|
+
graphics = figure.getLGraphics()
|
|
764
|
+
for graphic in graphics:
|
|
765
|
+
child_element = ET.SubElement(element, "L-GRAPHIC")
|
|
766
|
+
if graphic.getL() is not None:
|
|
767
|
+
child_element.attrib["L"] = graphic.getL()
|
|
768
|
+
self.setGraphic(child_element, "GRAPHIC", graphic.getGraphic())
|
|
769
|
+
|
|
770
|
+
def writeDocumentViewSelectable(self, element: ET.Element, selectable: DocumentViewSelectable):
|
|
771
|
+
self.writeARObjectAttributes(element, selectable)
|
|
772
|
+
|
|
773
|
+
def writePaginateable(self, element: ET.Element, paginateable: Paginateable):
|
|
774
|
+
self.writeDocumentViewSelectable(element, paginateable)
|
|
775
|
+
|
|
776
|
+
def writeMlFigure(self, element: ET.Element, figure: MlFigure):
|
|
777
|
+
self.writePaginateable(element, figure)
|
|
778
|
+
self.writeMlFigureLGraphics(element, figure)
|
|
779
|
+
|
|
780
|
+
def setMlFigures(self, element: ET.Element, key: str, figures: List[MlFigure]):
|
|
781
|
+
for figure in figures:
|
|
782
|
+
child_element = ET.SubElement(element, key)
|
|
783
|
+
self.writeMlFigure(child_element, figure)
|
|
784
|
+
|
|
785
|
+
def writeDocumentationBlock(self, element: ET.Element, key: str, block: DocumentationBlock):
|
|
662
786
|
if block is not None:
|
|
663
787
|
child_element = ET.SubElement(element, key)
|
|
664
788
|
self.writeARObjectAttributes(child_element, block)
|
|
665
789
|
self.setMultiLanguageParagraphs(child_element, "P", block.getPs())
|
|
666
790
|
for list in block.getLists():
|
|
667
791
|
self.setListElement(child_element, "LIST", list)
|
|
792
|
+
self.setMlFigures(child_element, "FIGURE", block.getFigures())
|
|
668
793
|
|
|
669
794
|
def writeGeneralAnnotation(self, element: ET.Element, annotation: Annotation):
|
|
670
795
|
self.setMultiLongName(element, "LABEL", annotation.getLabel())
|
|
671
796
|
self.setChildElementOptionalLiteral(element, "ANNOTATION-ORIGIN", annotation.getAnnotationOrigin())
|
|
672
|
-
self.
|
|
797
|
+
self.writeDocumentationBlock(element, "ANNOTATION-TEXT", annotation.getAnnotationText())
|
|
673
798
|
|
|
674
|
-
def setAnnotations(self, element: ET.Element, annotations: List[Annotation])
|
|
799
|
+
def setAnnotations(self, element: ET.Element, annotations: List[Annotation]):
|
|
675
800
|
if len(annotations) > 0:
|
|
676
801
|
annotations_tag = ET.SubElement(element, "ANNOTATIONS")
|
|
677
802
|
for annotation in annotations:
|
|
@@ -683,7 +808,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
683
808
|
self.writeARObjectAttributes(child_element, props)
|
|
684
809
|
self.setChildElementOptionalRefType(child_element, "INPUT-VARIABLE-TYPE-REF", props.getInputVariableTypeRef())
|
|
685
810
|
self.setChildElementOptionalRefType(child_element, "COMPU-METHOD-REF", props.getCompuMethodRef())
|
|
686
|
-
self.setChildElementOptionalNumericalValue(child_element, "SW-MAX-AXIS-POINTS", props.getSwMaxAxisPoints())
|
|
811
|
+
self.setChildElementOptionalNumericalValue(child_element, "SW-MAX-AXIS-POINTS", props.getSwMaxAxisPoints())
|
|
687
812
|
self.setChildElementOptionalNumericalValue(child_element, "SW-MIN-AXIS-POINTS", props.getSwMinAxisPoints())
|
|
688
813
|
self.setChildElementOptionalRefType(child_element, "DATA-CONSTR-REF", props.getDataConstrRef())
|
|
689
814
|
|
|
@@ -703,7 +828,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
703
828
|
elif isinstance(axis.sw_calprm_axis_type_props, SwAxisGrouped):
|
|
704
829
|
self.setSwAxisGrouped(child_element, axis.sw_calprm_axis_type_props)
|
|
705
830
|
else:
|
|
706
|
-
self.
|
|
831
|
+
self.notImplemented("Unsupported SwCalprmAxisTypeProps %s" % type(axis.sw_calprm_axis_type_props))
|
|
707
832
|
|
|
708
833
|
def setSwCalprmAxisSet(self, element: ET.Element, key: str, set: SwCalprmAxisSet):
|
|
709
834
|
axises = set.getSwCalprmAxises()
|
|
@@ -727,11 +852,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
727
852
|
self.writeARObjectAttributes(conditional_tag, props.conditional)
|
|
728
853
|
self.setAnnotations(conditional_tag, props.getAnnotations())
|
|
729
854
|
self.setChildElementOptionalRefType(conditional_tag, "BASE-TYPE-REF", props.getBaseTypeRef())
|
|
855
|
+
self.setChildElementOptionalRefType(conditional_tag, "SW-ADDR-METHOD-REF", props.getSwAddrMethodRef())
|
|
856
|
+
self.setChildElementOptionalLiteral(conditional_tag, "SW-CALIBRATION-ACCESS", props.getSwCalibrationAccess())
|
|
730
857
|
self.setChildElementOptionalRefType(conditional_tag, "COMPU-METHOD-REF", props.getCompuMethodRef())
|
|
731
858
|
self.setValueSpecification(conditional_tag, "INVALID-VALUE", props.getInvalidValue())
|
|
732
859
|
self.setChildElementOptionalFloatValue(conditional_tag, "STEP-SIZE", props.getStepSize())
|
|
733
|
-
self.setChildElementOptionalRefType(conditional_tag, "SW-ADDR-METHOD-REF", props.getSwAddrMethodRef())
|
|
734
|
-
self.setChildElementOptionalLiteral(conditional_tag, "SW-CALIBRATION-ACCESS", props.getSwCalibrationAccess())
|
|
735
860
|
self.setChildElementOptionalRefType(conditional_tag, "DATA-CONSTR-REF", props.getDataConstrRef())
|
|
736
861
|
self.setChildElementOptionalRefType(conditional_tag, "IMPLEMENTATION-DATA-TYPE-REF", props.getImplementationDataTypeRef())
|
|
737
862
|
self.setSwCalprmAxisSet(conditional_tag, "SW-CALPRM-AXIS-SET", props.getSwCalprmAxisSet())
|
|
@@ -757,29 +882,32 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
757
882
|
data_type_tag = ET.SubElement(element, "APPLICATION-PRIMITIVE-DATA-TYPE")
|
|
758
883
|
self.setApplicationDataType(data_type_tag, data_type)
|
|
759
884
|
|
|
760
|
-
def
|
|
885
|
+
def writeDataPrototype(self, element: ET.Element, prototype: DataPrototype):
|
|
886
|
+
self.writeIdentifiable(element, prototype)
|
|
761
887
|
self.setSwDataDefProps(element, "SW-DATA-DEF-PROPS", prototype.getSwDataDefProps())
|
|
762
888
|
|
|
763
|
-
def
|
|
764
|
-
self.
|
|
765
|
-
self.setDataPrototype(element, prototype)
|
|
889
|
+
def writeApplicationCompositeElementDataPrototype(self, element: ET.Element, prototype: ApplicationCompositeElementDataPrototype):
|
|
890
|
+
self.writeDataPrototype(element, prototype)
|
|
766
891
|
self.setChildElementOptionalRefType(element, "TYPE-TREF", prototype.typeTRef)
|
|
767
892
|
|
|
768
|
-
def
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
893
|
+
def writeApplicationRecordElement(self, element: ET.Element, prototype: ApplicationRecordElement):
|
|
894
|
+
child_element = ET.SubElement(element, "APPLICATION-RECORD-ELEMENT")
|
|
895
|
+
self.writeApplicationCompositeElementDataPrototype(child_element, prototype)
|
|
896
|
+
|
|
897
|
+
def writeApplicationRecordDataTypeElements(self, element: ET.Element, data_type: ApplicationRecordDataType):
|
|
898
|
+
record_elements = data_type.getApplicationRecordElements()
|
|
899
|
+
if len(record_elements) > 0:
|
|
900
|
+
child_element = ET.SubElement(element, "ELEMENTS")
|
|
901
|
+
for record_element in record_elements:
|
|
902
|
+
if isinstance(record_element, ApplicationRecordElement):
|
|
903
|
+
self.writeApplicationRecordElement(child_element, record_element)
|
|
904
|
+
else:
|
|
905
|
+
self.notImplemented("Unsupported ApplicationRecordDataType Element <%s>" % type(record_element))
|
|
778
906
|
|
|
779
907
|
def writeApplicationRecordDataType(self, element: ET.Element, data_type: ApplicationRecordDataType):
|
|
780
908
|
data_type_tag = ET.SubElement(element, "APPLICATION-RECORD-DATA-TYPE")
|
|
781
909
|
self.setApplicationDataType(data_type_tag, data_type)
|
|
782
|
-
self.
|
|
910
|
+
self.writeApplicationRecordDataTypeElements(data_type_tag, data_type)
|
|
783
911
|
|
|
784
912
|
def writeApplicationDataTypes(self, parent: ET.Element, ar_package: ARPackage):
|
|
785
913
|
for data_type in ar_package.getApplicationDataType():
|
|
@@ -840,18 +968,22 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
840
968
|
else:
|
|
841
969
|
self.notImplemented("Unsupported CompuConstContent <%s>" % type(content))
|
|
842
970
|
|
|
971
|
+
def setCompuScale(self, element: ET.Element, key: str, compu_scale: CompuScale):
|
|
972
|
+
if compu_scale is not None:
|
|
973
|
+
child_element = ET.SubElement(element, key)
|
|
974
|
+
self.writeARObjectAttributes(child_element, compu_scale)
|
|
975
|
+
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", compu_scale.getShortLabel())
|
|
976
|
+
self.setChildElementOptionalLiteral(child_element, "SYMBOL", compu_scale.getSymbol())
|
|
977
|
+
self.setMultiLanguageOverviewParagraph(child_element, "DESC", compu_scale.getDesc())
|
|
978
|
+
self.setChildLimitElement(child_element, "LOWER-LIMIT", compu_scale.getLowerLimit())
|
|
979
|
+
self.setChildLimitElement(child_element, "UPPER-LIMIT", compu_scale.getUpperLimit())
|
|
980
|
+
self.writeCompuScaleContents(child_element, compu_scale)
|
|
981
|
+
|
|
843
982
|
def setCompuScales(self, element: ET.Element, compu_scales: CompuScales):
|
|
844
983
|
if compu_scales is not None:
|
|
845
|
-
|
|
984
|
+
child_element = ET.SubElement(element, "COMPU-SCALES")
|
|
846
985
|
for compu_scale in compu_scales.getCompuScales():
|
|
847
|
-
|
|
848
|
-
self.writeARObjectAttributes(child_element, compu_scale)
|
|
849
|
-
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", compu_scale.getShortLabel())
|
|
850
|
-
self.setChildElementOptionalLiteral(child_element, "SYMBOL", compu_scale.getSymbol())
|
|
851
|
-
self.setMultiLanguageOverviewParagraph(child_element, "DESC", compu_scale.getDesc())
|
|
852
|
-
self.setChildLimitElement(child_element, "LOWER-LIMIT", compu_scale.getLowerLimit())
|
|
853
|
-
self.setChildLimitElement(child_element, "UPPER-LIMIT", compu_scale.getUpperLimit())
|
|
854
|
-
self.writeCompuScaleContents(child_element, compu_scale)
|
|
986
|
+
self.setCompuScale(child_element, "COMPU-SCALE", compu_scale)
|
|
855
987
|
|
|
856
988
|
def setCompuConst(self, element: ET.Element, key: str, compu_const: CompuConst):
|
|
857
989
|
if compu_const is not None:
|
|
@@ -860,7 +992,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
860
992
|
self.setCompuConstContent(child_element, compu_const.getCompuConstContentType())
|
|
861
993
|
|
|
862
994
|
def setCompu(self, element: ET.Element, key: str, compu: Compu):
|
|
863
|
-
if
|
|
995
|
+
if compu is not None:
|
|
864
996
|
child_element = ET.SubElement(element, key)
|
|
865
997
|
self.writeARObjectAttributes(child_element, compu)
|
|
866
998
|
self.setCompuScales(child_element, compu.getCompuContent())
|
|
@@ -874,13 +1006,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
874
1006
|
self.setCompu(child_element, "COMPU-INTERNAL-TO-PHYS", compu_method.getCompuInternalToPhys())
|
|
875
1007
|
self.setCompu(child_element, "COMPU-PHYS-TO-INTERNAL", compu_method.getCompuPhysToInternal())
|
|
876
1008
|
|
|
877
|
-
def
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
1009
|
+
def writeApplicationValueSpecification(self, element: ET.Element, value_spec: ApplicationValueSpecification):
|
|
1010
|
+
if value_spec is not None:
|
|
1011
|
+
child_element = ET.SubElement(element, "APPLICATION-VALUE-SPECIFICATION")
|
|
1012
|
+
self.writeValueSpecification(child_element, value_spec)
|
|
1013
|
+
self.setChildElementOptionalLiteral(child_element, "CATEGORY", value_spec.getCategory())
|
|
1014
|
+
self.writeSwValueCont(child_element, value_spec.getSwValueCont())
|
|
882
1015
|
|
|
883
|
-
def
|
|
1016
|
+
def writeRecordValueSpecification(self, element: ET.Element, spec: RecordValueSpecification):
|
|
884
1017
|
child_element = ET.SubElement(element, "RECORD-VALUE-SPECIFICATION")
|
|
885
1018
|
self.writeARObjectAttributes(child_element, spec)
|
|
886
1019
|
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", spec.getShortLabel())
|
|
@@ -889,15 +1022,15 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
889
1022
|
fields_tag = ET.SubElement(child_element, "FIELDS")
|
|
890
1023
|
for field in fields:
|
|
891
1024
|
if isinstance(field, ApplicationValueSpecification):
|
|
892
|
-
self.
|
|
1025
|
+
self.writeApplicationValueSpecification(fields_tag, field)
|
|
893
1026
|
elif isinstance(field, NumericalValueSpecification):
|
|
894
|
-
self.
|
|
1027
|
+
self.writeNumericalValueSpecification(fields_tag, field)
|
|
895
1028
|
elif isinstance(field, TextValueSpecification):
|
|
896
|
-
self.
|
|
1029
|
+
self.writeTextValueSpecification(fields_tag, field)
|
|
897
1030
|
elif isinstance(field, ArrayValueSpecification):
|
|
898
|
-
self.
|
|
1031
|
+
self.writeArrayValueSpecification(fields_tag, field)
|
|
899
1032
|
elif isinstance(field, RecordValueSpecification):
|
|
900
|
-
self.
|
|
1033
|
+
self.writeRecordValueSpecification(fields_tag, field)
|
|
901
1034
|
else:
|
|
902
1035
|
self.notImplemented("Unsupported Field <%s>" % type(field))
|
|
903
1036
|
|
|
@@ -941,7 +1074,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
941
1074
|
def writeDataConstr(self, element: ET.Element, constr: DataConstr):
|
|
942
1075
|
child_element = ET.SubElement(element, "DATA-CONSTR")
|
|
943
1076
|
self.writeIdentifiable(child_element, constr)
|
|
944
|
-
self.writeDataConstrRules(child_element, constr)
|
|
1077
|
+
self.writeDataConstrRules(child_element, constr)
|
|
945
1078
|
|
|
946
1079
|
def writeUnit(self, element: ET.Element, unit: Unit):
|
|
947
1080
|
self.logger.debug("writeUnit %s" % unit.getShortName())
|
|
@@ -957,7 +1090,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
957
1090
|
self.writeARObjectAttributes(child_element, iref)
|
|
958
1091
|
self.setChildElementOptionalRefType(child_element, "BASE", iref.getBaseRef())
|
|
959
1092
|
self.setChildElementOptionalRefType(child_element, "CONTEXT-PORT-REF", iref.getContextPortRef())
|
|
960
|
-
self.setChildElementOptionalRefType(child_element, "CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF", iref.getContextModeDeclarationGroupPrototypeRef())
|
|
1093
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF", iref.getContextModeDeclarationGroupPrototypeRef()) # noqa E501
|
|
961
1094
|
self.setChildElementOptionalRefType(child_element, "TARGET-MODE-DECLARATION-REF", iref.getTargetModeDeclarationRef())
|
|
962
1095
|
|
|
963
1096
|
def setPOperationInAtomicSwcInstanceRef(self, element: ET.Element, key: str, iref: POperationInAtomicSwcInstanceRef):
|
|
@@ -1037,7 +1170,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1037
1170
|
child_element = ET.SubElement(element, "BACKGROUND-EVENT")
|
|
1038
1171
|
self.setRTEEvent(child_element, event)
|
|
1039
1172
|
|
|
1040
|
-
def
|
|
1173
|
+
def writeSwcInternalBehaviorEvents(self, element: ET.Element, parent: SwcInternalBehavior):
|
|
1041
1174
|
events = parent.getRteEvents()
|
|
1042
1175
|
if len(events) > 0:
|
|
1043
1176
|
child_element = ET.SubElement(element, "EVENTS")
|
|
@@ -1079,11 +1212,20 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1079
1212
|
for ref in refs:
|
|
1080
1213
|
self.setChildElementOptionalRefType(refs_tag, "DATA-TYPE-MAPPING-REF", ref)
|
|
1081
1214
|
|
|
1215
|
+
def writeInternalBehaviorStaticMemories(self, element: ET.Element, behavior: InternalBehavior):
|
|
1216
|
+
memories = behavior.getStaticMemories()
|
|
1217
|
+
if len(memories) > 0:
|
|
1218
|
+
child_element = ET.SubElement(element, "STATIC-MEMORYS")
|
|
1219
|
+
for memory in memories:
|
|
1220
|
+
if isinstance(memory, VariableDataPrototype):
|
|
1221
|
+
self.writeVariableDataPrototype(child_element, memory)
|
|
1222
|
+
|
|
1082
1223
|
def writeInternalBehavior(self, element: ET.Element, behavior: InternalBehavior):
|
|
1083
1224
|
self.writeIdentifiable(element, behavior)
|
|
1084
|
-
self.
|
|
1225
|
+
self.writeSwcInternalBehaviorParameterDataPrototypes(element, "CONSTANT-MEMORYS", behavior.getConstantMemories())
|
|
1085
1226
|
self.writeDataTypeMappingRefs(element, behavior)
|
|
1086
1227
|
self.writeExclusiveAreas(element, behavior)
|
|
1228
|
+
self.writeInternalBehaviorStaticMemories(element, behavior)
|
|
1087
1229
|
|
|
1088
1230
|
def setAutosarVariableRef(self, element: ET.Element, key: str, ref: AutosarVariableRef):
|
|
1089
1231
|
if ref is not None:
|
|
@@ -1091,9 +1233,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1091
1233
|
self.writeARObjectAttributes(child_element, ref)
|
|
1092
1234
|
if ref.getAutosarVariableIRef() is not None:
|
|
1093
1235
|
child_element = ET.SubElement(child_element, "AUTOSAR-VARIABLE-IREF")
|
|
1094
|
-
#self.setARObjectAttributes(child_element, ref)
|
|
1236
|
+
# self.setARObjectAttributes(child_element, ref)
|
|
1095
1237
|
self.setChildElementOptionalRefType(child_element, "PORT-PROTOTYPE-REF", ref.getAutosarVariableIRef().getPortPrototypeRef())
|
|
1096
|
-
self.setChildElementOptionalRefType(child_element, "TARGET-DATA-PROTOTYPE-REF", ref.getAutosarVariableIRef().getTargetDataPrototypeRef())
|
|
1238
|
+
self.setChildElementOptionalRefType(child_element, "TARGET-DATA-PROTOTYPE-REF", ref.getAutosarVariableIRef().getTargetDataPrototypeRef()) # noqa E501
|
|
1097
1239
|
self.setChildElementOptionalRefType(child_element, "LOCAL-VARIABLE-REF", ref.getLocalVariableRef())
|
|
1098
1240
|
|
|
1099
1241
|
def setComponentInSystemInstanceRef(self, element: ET.Element, tag_name: str, ref: ComponentInSystemInstanceRef):
|
|
@@ -1119,42 +1261,42 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1119
1261
|
self.writeIdentifiable(child_element, parameter_access)
|
|
1120
1262
|
self.setAutosarParameterRef(child_element, "ACCESSED-PARAMETER", parameter_access.getAccessedParameter())
|
|
1121
1263
|
|
|
1122
|
-
def
|
|
1264
|
+
def writeRunnableEntityParameterAccesses(self, element: ET.Element, entity: RunnableEntity):
|
|
1123
1265
|
parameter_accesses = entity.getParameterAccesses()
|
|
1124
1266
|
if len(parameter_accesses) > 0:
|
|
1125
1267
|
child_element = ET.SubElement(element, "PARAMETER-ACCESSS")
|
|
1126
1268
|
for parameter_access in parameter_accesses:
|
|
1127
1269
|
self.writeParameterAccess(child_element, parameter_access)
|
|
1128
1270
|
|
|
1129
|
-
def
|
|
1271
|
+
def writeRunnableEntityDataReceivePointByArguments(self, element: ET.Element, entity: RunnableEntity):
|
|
1130
1272
|
accesses = entity.getDataReceivePointByArguments()
|
|
1131
1273
|
if len(accesses) > 0:
|
|
1132
1274
|
child_element = ET.SubElement(element, "DATA-RECEIVE-POINT-BY-ARGUMENTS")
|
|
1133
1275
|
for access in accesses:
|
|
1134
1276
|
self.setVariableAccess(child_element, access)
|
|
1135
1277
|
|
|
1136
|
-
def
|
|
1278
|
+
def writeRunnableEntityDataSendPoints(self, element: ET.Element, entity: RunnableEntity):
|
|
1137
1279
|
points = entity.getDataSendPoints()
|
|
1138
1280
|
if len(points) > 0:
|
|
1139
1281
|
child_element = ET.SubElement(element, "DATA-SEND-POINTS")
|
|
1140
1282
|
for point in points:
|
|
1141
1283
|
self.setVariableAccess(child_element, point)
|
|
1142
1284
|
|
|
1143
|
-
def
|
|
1285
|
+
def writeRunnableEntityDataReadAccesses(self, element: ET.Element, entity: RunnableEntity):
|
|
1144
1286
|
accesses = entity.getDataReadAccesses()
|
|
1145
1287
|
if len(accesses) > 0:
|
|
1146
1288
|
child_element = ET.SubElement(element, "DATA-READ-ACCESSS")
|
|
1147
1289
|
for access in accesses:
|
|
1148
1290
|
self.setVariableAccess(child_element, access)
|
|
1149
1291
|
|
|
1150
|
-
def
|
|
1292
|
+
def writeRunnableEntityDataWriteAccesses(self, element: ET.Element, entity: RunnableEntity):
|
|
1151
1293
|
accesses = entity.getDataWriteAccesses()
|
|
1152
1294
|
if len(accesses) > 0:
|
|
1153
1295
|
child_element = ET.SubElement(element, "DATA-WRITE-ACCESSS")
|
|
1154
1296
|
for access in accesses:
|
|
1155
1297
|
self.setVariableAccess(child_element, access)
|
|
1156
1298
|
|
|
1157
|
-
def
|
|
1299
|
+
def writeRunnableEntityReadLocalVariables(self, element: ET.Element, entity: RunnableEntity):
|
|
1158
1300
|
variables = entity.getReadLocalVariables()
|
|
1159
1301
|
if len(variables) > 0:
|
|
1160
1302
|
child_element = ET.SubElement(element, "READ-LOCAL-VARIABLES")
|
|
@@ -1182,7 +1324,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1182
1324
|
self.writeIdentifiable(child_element, call_point)
|
|
1183
1325
|
self.setServerCallPoint(child_element, call_point)
|
|
1184
1326
|
|
|
1185
|
-
def
|
|
1327
|
+
def writeRunnableEntityServerCallPoints(self, element: ET.Element, entity: RunnableEntity):
|
|
1186
1328
|
call_points = entity.getServerCallPoints()
|
|
1187
1329
|
if len(call_points) > 0:
|
|
1188
1330
|
child_element = ET.SubElement(element, "SERVER-CALL-POINTS")
|
|
@@ -1192,44 +1334,81 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1192
1334
|
elif isinstance(call_point, AsynchronousServerCallPoint):
|
|
1193
1335
|
self.setAsynchronousServerCallPoint(child_element, call_point)
|
|
1194
1336
|
else:
|
|
1195
|
-
self.
|
|
1337
|
+
self.notImplemented("Unsupported ServerCallPoint type <%s>" % type(call_point))
|
|
1196
1338
|
|
|
1197
|
-
def
|
|
1339
|
+
def writeRunnableEntityWrittenLocalVariable(self, element: ET.Element, entity: RunnableEntity):
|
|
1198
1340
|
variables = entity.getWrittenLocalVariables()
|
|
1199
1341
|
if len(variables) > 0:
|
|
1200
1342
|
child_element = ET.SubElement(element, "WRITTEN-LOCAL-VARIABLES")
|
|
1201
1343
|
for access in variables:
|
|
1202
1344
|
self.setVariableAccess(child_element, access)
|
|
1203
1345
|
|
|
1204
|
-
def
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
instance_ref_tag = ET.SubElement(child_element, "R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF")
|
|
1208
|
-
self.setChildElementOptionalRefType(instance_ref_tag, "CONTEXT-R-PORT-REF", iref.getContextRPortRef())
|
|
1209
|
-
self.setChildElementOptionalRefType(instance_ref_tag, "TARGET-MODE-GROUP-REF", iref.getTargetModeGroupRef())
|
|
1346
|
+
def writeModeGroupInAtomicSwcInstanceRef(self, element: ET.Element, instance_ref: ModeGroupInAtomicSwcInstanceRef):
|
|
1347
|
+
self.setChildElementOptionalRefType(element, "BASE-REF", instance_ref.getBaseRef())
|
|
1348
|
+
self.setChildElementOptionalRefType(element, "CONTEXT-PORT-REF", instance_ref.getContextPortRef())
|
|
1210
1349
|
|
|
1211
|
-
def
|
|
1212
|
-
if
|
|
1213
|
-
child_element = ET.SubElement(element,
|
|
1214
|
-
self.
|
|
1215
|
-
self.setChildElementOptionalRefType(child_element, "
|
|
1350
|
+
def writeRModeGroupInAtomicSWCInstanceRef(self, element: ET.Element, instance_ref: RModeGroupInAtomicSWCInstanceRef):
|
|
1351
|
+
if instance_ref is not None:
|
|
1352
|
+
child_element = ET.SubElement(element, "R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF")
|
|
1353
|
+
self.writeModeGroupInAtomicSwcInstanceRef(child_element, instance_ref)
|
|
1354
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-R-PORT-REF", instance_ref.getContextRPortRef())
|
|
1355
|
+
self.setChildElementOptionalRefType(child_element, "TARGET-MODE-GROUP-REF", instance_ref.getTargetModeGroupRef())
|
|
1356
|
+
|
|
1357
|
+
def writePModeGroupInAtomicSWCInstanceRef(self, element: ET.Element, instance_ref: PModeGroupInAtomicSwcInstanceRef):
|
|
1358
|
+
if instance_ref is not None:
|
|
1359
|
+
child_element = ET.SubElement(element, "P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF")
|
|
1360
|
+
self.writeModeGroupInAtomicSwcInstanceRef(child_element, instance_ref)
|
|
1361
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-P-PORT-REF", instance_ref.getContextPPortRef())
|
|
1362
|
+
self.setChildElementOptionalRefType(child_element, "TARGET-MODE-GROUP-REF", instance_ref.getTargetModeGroupRef())
|
|
1216
1363
|
|
|
1217
|
-
def
|
|
1364
|
+
def setModeGroupIRef(self, element: ET.Element, key: str, instance_ref: ModeGroupInAtomicSwcInstanceRef):
|
|
1365
|
+
if instance_ref is not None:
|
|
1366
|
+
child_element = ET.SubElement(element, key)
|
|
1367
|
+
if isinstance(instance_ref, PModeGroupInAtomicSwcInstanceRef):
|
|
1368
|
+
self.writePModeGroupInAtomicSWCInstanceRef(child_element, instance_ref)
|
|
1369
|
+
elif isinstance(instance_ref, RModeGroupInAtomicSWCInstanceRef):
|
|
1370
|
+
self.writeRModeGroupInAtomicSWCInstanceRef(child_element, instance_ref)
|
|
1371
|
+
else:
|
|
1372
|
+
self.notImplemented("Unsupported Mode Group IRef <%s>" % type(instance_ref))
|
|
1373
|
+
return instance_ref
|
|
1374
|
+
|
|
1375
|
+
def writeModeAccessPoint(self, element: ET.Element, point: ModeAccessPoint):
|
|
1376
|
+
if point is not None:
|
|
1377
|
+
child_element = ET.SubElement(element, "MODE-ACCESS-POINT")
|
|
1378
|
+
self.setModeGroupIRef(child_element, "MODE-GROUP-IREF", point.getModeGroupIRef())
|
|
1379
|
+
|
|
1380
|
+
def writeRunnableEntityModeAccessPoints(self, element: ET.Element, entity: RunnableEntity):
|
|
1218
1381
|
points = entity.getModeAccessPoints()
|
|
1219
1382
|
if len(points) > 0:
|
|
1220
|
-
|
|
1383
|
+
child_element = ET.SubElement(element, "MODE-ACCESS-POINTS")
|
|
1221
1384
|
for point in points:
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1385
|
+
if isinstance(point, ModeAccessPoint):
|
|
1386
|
+
self.writeModeAccessPoint(child_element, point)
|
|
1387
|
+
else:
|
|
1388
|
+
self.notImplemented("Unsupported Mode Access Points <%s>" % type(point))
|
|
1389
|
+
|
|
1390
|
+
def writeModeSwitchPointModeGroupIRef(self, element: ET.Element, point: ModeSwitchPoint):
|
|
1391
|
+
if point is not None:
|
|
1392
|
+
child_element = ET.SubElement(element, "MODE-GROUP-IREF")
|
|
1393
|
+
instance_ref = point.getModeGroupIRef()
|
|
1394
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-P-PORT-REF", instance_ref.getContextPPortRef())
|
|
1395
|
+
self.setChildElementOptionalRefType(child_element, "TARGET-MODE-GROUP-REF", instance_ref.getTargetModeGroupRef())
|
|
1396
|
+
|
|
1397
|
+
def writeModeSwitchPoint(self, element: ET.Element, point: ModeSwitchPoint):
|
|
1398
|
+
if point is not None:
|
|
1399
|
+
child_element = ET.SubElement(element, "MODE-SWITCH-POINT")
|
|
1400
|
+
self.writeIdentifiable(child_element, point)
|
|
1401
|
+
self.writeModeSwitchPointModeGroupIRef(child_element, point)
|
|
1402
|
+
|
|
1403
|
+
def writeRunnableEntityModeSwitchPoints(self, element: ET.Element, entity: RunnableEntity):
|
|
1226
1404
|
points = entity.getModeSwitchPoints()
|
|
1227
1405
|
if len(points) > 0:
|
|
1228
|
-
|
|
1406
|
+
child_element = ET.SubElement(element, "MODE-SWITCH-POINTS")
|
|
1229
1407
|
for point in points:
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1408
|
+
if isinstance(point, ModeSwitchPoint):
|
|
1409
|
+
self.writeModeSwitchPoint(child_element, point)
|
|
1410
|
+
else:
|
|
1411
|
+
self.notImplemented("unsupported Mode Switch Point <%s>" % type(point))
|
|
1233
1412
|
|
|
1234
1413
|
def setRunnableEntityArgument(self, element: ET.Element, argument: RunnableEntityArgument):
|
|
1235
1414
|
child_element = ET.SubElement(element, "RUNNABLE-ENTITY-ARGUMENT")
|
|
@@ -1245,7 +1424,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1245
1424
|
else:
|
|
1246
1425
|
self.notImplemented("Unsupported argument of Runnable Entity <%s>" % type(argument))
|
|
1247
1426
|
|
|
1248
|
-
def
|
|
1427
|
+
def writeRunnableEntityAsynchronousServerCallResultPoint(self, element: ET.Element, entity: RunnableEntity):
|
|
1249
1428
|
points = entity.getAsynchronousServerCallResultPoints()
|
|
1250
1429
|
if len(points) > 0:
|
|
1251
1430
|
points_tag = ET.SubElement(element, "ASYNCHRONOUS-SERVER-CALL-RESULT-POINTS")
|
|
@@ -1257,23 +1436,23 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1257
1436
|
def writeRunnableEntity(self, element: ET.Element, entity: RunnableEntity):
|
|
1258
1437
|
if entity is not None:
|
|
1259
1438
|
child_element = ET.SubElement(element, "RUNNABLE-ENTITY")
|
|
1260
|
-
self.
|
|
1439
|
+
self.writeExecutableEntity(child_element, entity)
|
|
1261
1440
|
self.writeRunnableEntityArguments(child_element, entity)
|
|
1262
|
-
self.
|
|
1441
|
+
self.writeRunnableEntityAsynchronousServerCallResultPoint(child_element, entity)
|
|
1263
1442
|
self.setChildElementOptionalBooleanValue(child_element, "CAN-BE-INVOKED-CONCURRENTLY", entity.getCanBeInvokedConcurrently())
|
|
1264
|
-
self.
|
|
1265
|
-
self.
|
|
1266
|
-
self.
|
|
1267
|
-
self.
|
|
1268
|
-
self.
|
|
1269
|
-
self.
|
|
1270
|
-
self.
|
|
1271
|
-
self.
|
|
1272
|
-
self.
|
|
1443
|
+
self.writeRunnableEntityDataReadAccesses(child_element, entity)
|
|
1444
|
+
self.writeRunnableEntityDataReceivePointByArguments(child_element, entity)
|
|
1445
|
+
self.writeRunnableEntityDataSendPoints(child_element, entity)
|
|
1446
|
+
self.writeRunnableEntityDataWriteAccesses(child_element, entity)
|
|
1447
|
+
self.writeRunnableEntityModeAccessPoints(child_element, entity)
|
|
1448
|
+
self.writeRunnableEntityModeSwitchPoints(child_element, entity)
|
|
1449
|
+
self.writeRunnableEntityParameterAccesses(child_element, entity)
|
|
1450
|
+
self.writeRunnableEntityReadLocalVariables(child_element, entity)
|
|
1451
|
+
self.writeRunnableEntityServerCallPoints(child_element, entity)
|
|
1273
1452
|
self.setChildElementOptionalLiteral(child_element, "SYMBOL", entity.symbol)
|
|
1274
|
-
self.
|
|
1453
|
+
self.writeRunnableEntityWrittenLocalVariable(child_element, entity)
|
|
1275
1454
|
|
|
1276
|
-
def
|
|
1455
|
+
def writeSwcInternalBehaviorRunnables(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1277
1456
|
entities = behavior.getRunnableEntities()
|
|
1278
1457
|
if len(entities) > 0:
|
|
1279
1458
|
runnables_tag = ET.SubElement(element, "RUNNABLES")
|
|
@@ -1291,9 +1470,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1291
1470
|
if isinstance(prototype, VariableDataPrototype):
|
|
1292
1471
|
self.writeVariableDataPrototype(child_element, prototype)
|
|
1293
1472
|
else:
|
|
1294
|
-
self.
|
|
1295
|
-
|
|
1296
|
-
def
|
|
1473
|
+
self.notImplemented("Unsupported ArTypedPerInstanceMemories <%s>" % type(prototype))
|
|
1474
|
+
|
|
1475
|
+
def writeSwcInternalBehaviorExplicitInterRunnableVariables(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1297
1476
|
prototypes = behavior.getExplicitInterRunnableVariables()
|
|
1298
1477
|
if len(prototypes) > 0:
|
|
1299
1478
|
child_element = ET.SubElement(element, "EXPLICIT-INTER-RUNNABLE-VARIABLES")
|
|
@@ -1301,9 +1480,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1301
1480
|
if isinstance(prototype, VariableDataPrototype):
|
|
1302
1481
|
self.writeVariableDataPrototype(child_element, prototype)
|
|
1303
1482
|
else:
|
|
1304
|
-
self.
|
|
1483
|
+
self.notImplemented("Unsupported ExplicitInterRunnableVariables <%s>" % type(prototype))
|
|
1305
1484
|
|
|
1306
|
-
def
|
|
1485
|
+
def writeSwcInternalBehaviorPerInstanceMemories(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1307
1486
|
memories = behavior.getPerInstanceMemories()
|
|
1308
1487
|
if len(memories) > 0:
|
|
1309
1488
|
memories_tag = ET.SubElement(element, "PER-INSTANCE-MEMORYS")
|
|
@@ -1313,21 +1492,20 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1313
1492
|
self.setChildElementOptionalLiteral(child_element, "INIT-VALUE", memory.getInitValue())
|
|
1314
1493
|
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", memory.getSwDataDefProps())
|
|
1315
1494
|
self.setChildElementOptionalLiteral(child_element, "TYPE", memory.getType())
|
|
1316
|
-
self.setChildElementOptionalLiteral
|
|
1495
|
+
self.setChildElementOptionalLiteral(child_element, "TYPE-DEFINITION", memory.getTypeDefinition())
|
|
1317
1496
|
|
|
1318
|
-
def
|
|
1497
|
+
def writeParameterDataPrototype(self, element: ET.Element, prototype: ParameterDataPrototype):
|
|
1319
1498
|
child_element = ET.SubElement(element, "PARAMETER-DATA-PROTOTYPE")
|
|
1320
|
-
self.
|
|
1321
|
-
self.setAutosarDataPrototype(child_element, prototype)
|
|
1499
|
+
self.writeAutosarDataPrototype(child_element, prototype)
|
|
1322
1500
|
self.setValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
|
|
1323
1501
|
|
|
1324
|
-
def
|
|
1502
|
+
def writeSwcInternalBehaviorParameterDataPrototypes(self, element: ET.Element, key: str, parameters: List[ParameterDataPrototype]):
|
|
1325
1503
|
if len(parameters) > 0:
|
|
1326
1504
|
child_element = ET.SubElement(element, key)
|
|
1327
1505
|
for parameter in parameters:
|
|
1328
|
-
self.
|
|
1506
|
+
self.writeParameterDataPrototype(child_element, parameter)
|
|
1329
1507
|
|
|
1330
|
-
def writePortDefinedArgumentValues(self, element: ET.Element, argument_values: List[PortDefinedArgumentValue])
|
|
1508
|
+
def writePortDefinedArgumentValues(self, element: ET.Element, argument_values: List[PortDefinedArgumentValue]):
|
|
1331
1509
|
if len(argument_values) > 0:
|
|
1332
1510
|
child_element = ET.SubElement(element, "PORT-ARG-VALUES")
|
|
1333
1511
|
for argument_value in argument_values:
|
|
@@ -1336,7 +1514,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1336
1514
|
self.setValueSpecification(child_element, "VALUE", argument_value.getValue())
|
|
1337
1515
|
self.setChildElementOptionalRefType(child_element, "VALUE-TYPE-TREF", argument_value.getValueTypeTRef())
|
|
1338
1516
|
|
|
1339
|
-
def
|
|
1517
|
+
def writeSwcInternalBehaviorPortAPIOptions(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1340
1518
|
options = behavior.getPortAPIOptions()
|
|
1341
1519
|
if len(options) > 0:
|
|
1342
1520
|
port_api_options_tag = ET.SubElement(element, "PORT-API-OPTIONS")
|
|
@@ -1361,7 +1539,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1361
1539
|
if isinstance(data, RoleBasedDataTypeAssignment):
|
|
1362
1540
|
self.writeRoleBasedDataTypeAssignment(child_element, data)
|
|
1363
1541
|
else:
|
|
1364
|
-
self.
|
|
1542
|
+
self.notImplemented("Unsupported Assigned Data <%s>" % type(data))
|
|
1365
1543
|
|
|
1366
1544
|
def writeServiceDependency(self, element: ET.Element, dependency: ServiceDependency):
|
|
1367
1545
|
self.writeIdentifiable(element, dependency)
|
|
@@ -1387,7 +1565,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1387
1565
|
if isinstance(data, RoleBasedDataAssignment):
|
|
1388
1566
|
self.writeRoleBasedDataAssignment(child_element, data)
|
|
1389
1567
|
else:
|
|
1390
|
-
self.
|
|
1568
|
+
self.notImplemented("Unsupported Assigned Data <%s>" % type(data))
|
|
1391
1569
|
|
|
1392
1570
|
def writeSwcServiceDependencyAssignedPorts(self, element: ET.Element, dependency: SwcServiceDependency):
|
|
1393
1571
|
assigned_data = dependency.getAssignedPorts()
|
|
@@ -1397,9 +1575,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1397
1575
|
if isinstance(data, RoleBasedPortAssignment):
|
|
1398
1576
|
self.writeRoleBasedPortAssignment(child_element, data)
|
|
1399
1577
|
else:
|
|
1400
|
-
self.
|
|
1578
|
+
self.notImplemented("Unsupported Assigned Data <%s>" % type(data))
|
|
1401
1579
|
|
|
1402
|
-
def
|
|
1580
|
+
def writeNvBlockNeeds(self, element: ET.Element, needs: NvBlockNeeds):
|
|
1403
1581
|
child_element = ET.SubElement(element, "NV-BLOCK-NEEDS")
|
|
1404
1582
|
self.logger.debug("write NvBlockNeeds %s" % needs.getShortName())
|
|
1405
1583
|
self.writeIdentifiable(child_element, needs)
|
|
@@ -1423,23 +1601,26 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1423
1601
|
self.setChildElementOptionalPositiveInteger(child_element, "WRITING-FREQUENCY", needs.getWritingFrequency())
|
|
1424
1602
|
self.setChildElementOptionalLiteral(child_element, "WRITING-PRIORITY", needs.getWritingPriority())
|
|
1425
1603
|
|
|
1426
|
-
def
|
|
1604
|
+
def writeDiagnosticCapabilityElement(self, element: ET.Element, needs: DiagnosticCapabilityElement):
|
|
1605
|
+
self.writeIdentifiable(element, needs)
|
|
1606
|
+
|
|
1607
|
+
def writeDiagnosticCommunicationManagerNeeds(self, element: ET.Element, needs: DiagnosticCommunicationManagerNeeds):
|
|
1427
1608
|
child_element = ET.SubElement(element, "DIAGNOSTIC-COMMUNICATION-MANAGER-NEEDS")
|
|
1428
1609
|
self.logger.debug("write DiagnosticCommunicationManagerNeeds %s" % needs.getShortName())
|
|
1429
|
-
self.
|
|
1430
|
-
self.setChildElementOptionalLiteral(child_element, "SERVICE-REQUEST-CALLBACK-TYPE", needs.getServiceRequestCallbackType())
|
|
1431
|
-
|
|
1432
|
-
def
|
|
1610
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1611
|
+
self.setChildElementOptionalLiteral(child_element, "SERVICE-REQUEST-CALLBACK-TYPE", needs.getServiceRequestCallbackType())
|
|
1612
|
+
|
|
1613
|
+
def writeDiagnosticRoutineNeeds(self, element: ET.Element, needs: DiagnosticRoutineNeeds):
|
|
1433
1614
|
child_element = ET.SubElement(element, "DIAGNOSTIC-ROUTINE-NEEDS")
|
|
1434
1615
|
self.logger.debug("write DiagnosticRoutineNeeds %s" % needs.getShortName())
|
|
1435
|
-
self.
|
|
1616
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1436
1617
|
self.setChildElementOptionalLiteral(child_element, "DIAG-ROUTINE-TYPE", needs.getDiagRoutineType())
|
|
1437
1618
|
self.setChildElementOptionalIntegerValue(child_element, "RID-NUMBER", needs.getRidNumber())
|
|
1438
1619
|
|
|
1439
|
-
def
|
|
1620
|
+
def writeDiagnosticValueNeeds(self, element: ET.Element, needs: DiagnosticValueNeeds):
|
|
1440
1621
|
child_element = ET.SubElement(element, "DIAGNOSTIC-VALUE-NEEDS")
|
|
1441
1622
|
self.logger.debug("write DiagnosticValueNeeds %s" % needs.getShortName())
|
|
1442
|
-
self.
|
|
1623
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1443
1624
|
self.setChildElementOptionalPositiveInteger(child_element, "DATA-LENGTH", needs.getDataLength())
|
|
1444
1625
|
self.setChildElementOptionalLiteral(child_element, "DIAGNOSTIC-VALUE-ACCESS", needs.getDiagnosticValueAccess())
|
|
1445
1626
|
self.setChildElementOptionalIntegerValue(child_element, "DID-NUMBER", needs.getDidNumber())
|
|
@@ -1448,8 +1629,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1448
1629
|
|
|
1449
1630
|
def setDiagEventDebounceMonitorInternal(self, element: ET.Element, algorithm: DiagEventDebounceMonitorInternal):
|
|
1450
1631
|
child_element = ET.SubElement(element, "DIAG-EVENT-DEBOUNCE-MONITOR-INTERNAL")
|
|
1451
|
-
self.
|
|
1452
|
-
|
|
1632
|
+
self.writeDiagnosticCapabilityElement(child_element, algorithm)
|
|
1633
|
+
|
|
1453
1634
|
def writeDiagEventDebounceAlgorithm(self, element: ET.Element, needs: DiagnosticEventNeeds):
|
|
1454
1635
|
algorithm = needs.getDiagEventDebounceAlgorithm()
|
|
1455
1636
|
if algorithm is not None:
|
|
@@ -1459,54 +1640,63 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1459
1640
|
else:
|
|
1460
1641
|
self.notImplemented("Unsupported DiagEventDebounceAlgorithm <%s>" % type(algorithm))
|
|
1461
1642
|
|
|
1462
|
-
def
|
|
1643
|
+
def writeDiagnosticEventNeeds(self, element: ET.Element, needs: DiagnosticEventNeeds):
|
|
1644
|
+
# self.logger.debug("Write DiagnosticEventNeeds %s" % needs.getShortName())
|
|
1463
1645
|
child_element = ET.SubElement(element, "DIAGNOSTIC-EVENT-NEEDS")
|
|
1464
|
-
self.
|
|
1465
|
-
self.writeIdentifiable(child_element, needs)
|
|
1646
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1466
1647
|
self.writeDiagEventDebounceAlgorithm(child_element, needs)
|
|
1467
1648
|
self.setChildElementOptionalLiteral(child_element, "DTC-KIND", needs.getDtcKind())
|
|
1468
1649
|
self.setChildElementOptionalIntegerValue(child_element, "UDS-DTC-NUMBER", needs.getUdsDtcNumber())
|
|
1469
1650
|
|
|
1470
|
-
def
|
|
1651
|
+
def writeDiagnosticEventInfoNeeds(self, element: ET.Element, needs: DiagnosticEventInfoNeeds):
|
|
1652
|
+
# self.logger.debug("Write DiagnosticEventNeeds %s" % needs.getShortName())
|
|
1471
1653
|
child_element = ET.SubElement(element, "DIAGNOSTIC-EVENT-INFO-NEEDS")
|
|
1472
|
-
self.
|
|
1473
|
-
self.
|
|
1654
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1655
|
+
self.setChildElementOptionalLiteral(child_element, "DTC-KIND", needs.getDtcKind())
|
|
1474
1656
|
self.setChildElementOptionalPositiveInteger(child_element, "UDS-DTC-NUMBER", needs.getUdsDtcNumber())
|
|
1475
|
-
|
|
1476
|
-
def
|
|
1657
|
+
|
|
1658
|
+
def writeCryptoServiceNeeds(self, element: ET.Element, needs: CryptoServiceNeeds):
|
|
1659
|
+
# self.logger.debug("Write CryptoServiceNeeds %s" % needs.getShortName())
|
|
1477
1660
|
child_element = ET.SubElement(element, "CRYPTO-SERVICE-NEEDS")
|
|
1478
|
-
self.logger.debug("write CryptoServiceNeeds %s" % needs.getShortName())
|
|
1479
1661
|
self.writeIdentifiable(child_element, needs)
|
|
1480
1662
|
self.setChildElementOptionalPositiveInteger(child_element, "MAXIMUM-KEY-LENGTH", needs.getMaximumKeyLength())
|
|
1481
1663
|
|
|
1482
|
-
def
|
|
1664
|
+
def writeEcuStateMgrUserNeeds(self, element: ET.Element, needs: EcuStateMgrUserNeeds):
|
|
1665
|
+
# self.logger.debug("write EcuStateMgrUserNeeds %s" % needs.getShortName())
|
|
1483
1666
|
child_element = ET.SubElement(element, "ECU-STATE-MGR-USER-NEEDS")
|
|
1484
|
-
self.logger.debug("write EcuStateMgrUserNeeds %s" % needs.getShortName())
|
|
1485
1667
|
self.writeIdentifiable(child_element, needs)
|
|
1486
1668
|
|
|
1669
|
+
def writeDtcStatusChangeNotificationNeeds(self, element: ET.Element, needs: DtcStatusChangeNotificationNeeds):
|
|
1670
|
+
# self.logger.debug("Write DtcStatusChangeNotificationNeeds %s" % needs.getShortName())
|
|
1671
|
+
child_element = ET.SubElement(element, "DTC-STATUS-CHANGE-NOTIFICATION-NEEDS")
|
|
1672
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1673
|
+
self.setChildElementOptionalLiteral(child_element, "DTC-FORMAT-TYPE", needs.getDtcFormatType())
|
|
1674
|
+
|
|
1487
1675
|
def writeSwcServiceDependencyServiceNeeds(self, element: ET.Element, parent: SwcServiceDependency):
|
|
1488
1676
|
needs = parent.getServiceNeeds()
|
|
1489
1677
|
if len(needs) > 0:
|
|
1490
1678
|
child_element = ET.SubElement(element, "SERVICE-NEEDS")
|
|
1491
1679
|
for need in needs:
|
|
1492
1680
|
if isinstance(need, NvBlockNeeds):
|
|
1493
|
-
self.
|
|
1681
|
+
self.writeNvBlockNeeds(child_element, need)
|
|
1494
1682
|
elif isinstance(need, DiagnosticCommunicationManagerNeeds):
|
|
1495
|
-
self.
|
|
1683
|
+
self.writeDiagnosticCommunicationManagerNeeds(child_element, need)
|
|
1496
1684
|
elif isinstance(need, DiagnosticRoutineNeeds):
|
|
1497
|
-
self.
|
|
1685
|
+
self.writeDiagnosticRoutineNeeds(child_element, need)
|
|
1498
1686
|
elif isinstance(need, DiagnosticValueNeeds):
|
|
1499
|
-
self.
|
|
1687
|
+
self.writeDiagnosticValueNeeds(child_element, need)
|
|
1500
1688
|
elif isinstance(need, DiagnosticEventNeeds):
|
|
1501
|
-
self.
|
|
1689
|
+
self.writeDiagnosticEventNeeds(child_element, need)
|
|
1502
1690
|
elif isinstance(need, DiagnosticEventInfoNeeds):
|
|
1503
|
-
self.
|
|
1691
|
+
self.writeDiagnosticEventInfoNeeds(child_element, need)
|
|
1504
1692
|
elif isinstance(need, CryptoServiceNeeds):
|
|
1505
|
-
self.
|
|
1693
|
+
self.writeCryptoServiceNeeds(child_element, need)
|
|
1506
1694
|
elif isinstance(need, EcuStateMgrUserNeeds):
|
|
1507
|
-
self.
|
|
1695
|
+
self.writeEcuStateMgrUserNeeds(child_element, need)
|
|
1696
|
+
elif isinstance(need, DtcStatusChangeNotificationNeeds):
|
|
1697
|
+
self.writeDtcStatusChangeNotificationNeeds(child_element, need)
|
|
1508
1698
|
else:
|
|
1509
|
-
self.notImplemented("Unsupported service needs <%s>" % type(need))
|
|
1699
|
+
self.notImplemented("Unsupported service needs <%s>" % type(need))
|
|
1510
1700
|
|
|
1511
1701
|
def writeSwcServiceDependency(self, element: ET.Element, dependency: SwcServiceDependency):
|
|
1512
1702
|
child_element = ET.SubElement(element, "SWC-SERVICE-DEPENDENCY")
|
|
@@ -1523,7 +1713,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1523
1713
|
if isinstance(dependency, SwcServiceDependency):
|
|
1524
1714
|
self.writeSwcServiceDependency(child_element, dependency)
|
|
1525
1715
|
else:
|
|
1526
|
-
self.
|
|
1716
|
+
self.notImplemented("Unsupported ServiceDependency <%s>" % type(dependency))
|
|
1527
1717
|
|
|
1528
1718
|
def setIncludedDataTypeSets(self, element: ET.Element, sets: List[IncludedDataTypeSet]):
|
|
1529
1719
|
if len(sets) > 0:
|
|
@@ -1537,23 +1727,43 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1537
1727
|
for type_ref in type_refs:
|
|
1538
1728
|
self.setChildElementOptionalRefType(data_type_refs_tag, "DATA-TYPE-REF", type_ref)
|
|
1539
1729
|
|
|
1730
|
+
def writeIncludedModeDeclarationGroupSet(self, element: ET.Element, set: IncludedModeDeclarationGroupSet):
|
|
1731
|
+
if set is not None:
|
|
1732
|
+
child_element = ET.SubElement(element, "INCLUDED-MODE-DECLARATION-GROUP-SET")
|
|
1733
|
+
refs = set.getModeDeclarationGroupRefs()
|
|
1734
|
+
if len(refs) > 0:
|
|
1735
|
+
refs_tag = ET.SubElement(child_element, "MODE-DECLARATION-GROUP-REFS")
|
|
1736
|
+
for ref in refs:
|
|
1737
|
+
self.setChildElementOptionalRefType(refs_tag, "MODE-DECLARATION-GROUP-REF", ref)
|
|
1738
|
+
self.setChildElementOptionalLiteral(child_element, "PREFIX", set.getPrefix())
|
|
1739
|
+
|
|
1740
|
+
def writeSwcInternalBehaviorIncludedModeDeclarationGroupSets(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1741
|
+
group_sets = behavior.getIncludedModeDeclarationGroupSets()
|
|
1742
|
+
if len(group_sets) > 0:
|
|
1743
|
+
child_element = ET.SubElement(element, "INCLUDED-MODE-DECLARATION-GROUP-SETS")
|
|
1744
|
+
for group_set in group_sets:
|
|
1745
|
+
if isinstance(group_set, IncludedModeDeclarationGroupSet):
|
|
1746
|
+
self.writeIncludedModeDeclarationGroupSet(child_element, group_set)
|
|
1747
|
+
else:
|
|
1748
|
+
self.notImplemented("Unsupported IncludedModeDeclarationGroupSet <%s>" % type(group_set))
|
|
1540
1749
|
|
|
1541
1750
|
def writeSwcInternalBehavior(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1542
1751
|
self.logger.debug("writeSwInternalBehavior %s" % behavior.getShortName())
|
|
1543
|
-
|
|
1544
1752
|
child_element = ET.SubElement(element, "SWC-INTERNAL-BEHAVIOR")
|
|
1545
1753
|
self.writeInternalBehavior(child_element, behavior)
|
|
1754
|
+
|
|
1546
1755
|
self.writeSwcInternalBehaviorArTypedPerInstanceMemories(child_element, behavior)
|
|
1547
|
-
self.
|
|
1548
|
-
self.
|
|
1756
|
+
self.writeSwcInternalBehaviorEvents(child_element, behavior)
|
|
1757
|
+
self.writeSwcInternalBehaviorExplicitInterRunnableVariables(child_element, behavior)
|
|
1549
1758
|
self.setChildElementOptionalLiteral(child_element, "HANDLE-TERMINATION-AND-RESTART", behavior.getHandleTerminationAndRestart())
|
|
1550
1759
|
self.setIncludedDataTypeSets(child_element, behavior.getIncludedDataTypeSets())
|
|
1551
|
-
self.
|
|
1552
|
-
self.
|
|
1553
|
-
self.
|
|
1554
|
-
self.
|
|
1760
|
+
self.writeSwcInternalBehaviorIncludedModeDeclarationGroupSets(child_element, behavior)
|
|
1761
|
+
self.writeSwcInternalBehaviorPerInstanceMemories(child_element, behavior)
|
|
1762
|
+
self.writeSwcInternalBehaviorParameterDataPrototypes(child_element, "PER-INSTANCE-PARAMETERS", behavior.getPerInstanceParameters())
|
|
1763
|
+
self.writeSwcInternalBehaviorPortAPIOptions(child_element, behavior)
|
|
1764
|
+
self.writeSwcInternalBehaviorRunnables(child_element, behavior)
|
|
1555
1765
|
self.writeSwcInternalBehaviorServiceDependencies(child_element, behavior)
|
|
1556
|
-
self.
|
|
1766
|
+
self.writeSwcInternalBehaviorParameterDataPrototypes(child_element, "SHARED-PARAMETERS", behavior.getSharedParameters())
|
|
1557
1767
|
self.setChildElementOptionalBooleanValue(child_element, "SUPPORTS-MULTIPLE-INSTANTIATION", behavior.getSupportsMultipleInstantiation())
|
|
1558
1768
|
|
|
1559
1769
|
def writeAtomicSwComponentTypeInternalBehaviors(self, element: ET.Element, behavior: InternalBehavior):
|
|
@@ -1562,7 +1772,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1562
1772
|
if isinstance(behavior, SwcInternalBehavior):
|
|
1563
1773
|
self.writeSwcInternalBehavior(behaviors_tag, behavior)
|
|
1564
1774
|
else:
|
|
1565
|
-
self.
|
|
1775
|
+
self.notImplemented("Unsupported Internal Behaviors <%s>" % type(behavior))
|
|
1566
1776
|
|
|
1567
1777
|
def writeAtomicSwComponentType(self, element: ET.Element, sw_component: AtomicSwComponentType):
|
|
1568
1778
|
self.writeSwComponentType(element, sw_component)
|
|
@@ -1584,8 +1794,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1584
1794
|
self.setChildElementOptionalLiteral(artifact_desc_tag, "SHORT-LABEL", artifact_desc.short_label)
|
|
1585
1795
|
self.setChildElementOptionalLiteral(artifact_desc_tag, "CATEGORY", artifact_desc.category)
|
|
1586
1796
|
|
|
1587
|
-
def
|
|
1588
|
-
self.logger.debug("
|
|
1797
|
+
def writeCode(self, element: ET.SubElement, code_desc: Code):
|
|
1798
|
+
# self.logger.debug("Write Code %s" % code_desc.getShortName())
|
|
1589
1799
|
child_element = ET.SubElement(element, "CODE")
|
|
1590
1800
|
self.writeIdentifiable(child_element, code_desc)
|
|
1591
1801
|
self.writeArtifactDescriptor(child_element, code_desc)
|
|
@@ -1596,9 +1806,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1596
1806
|
child_element = ET.SubElement(element, "CODE-DESCRIPTORS")
|
|
1597
1807
|
for desc in descs:
|
|
1598
1808
|
if isinstance(desc, Code):
|
|
1599
|
-
self.
|
|
1809
|
+
self.writeCode(child_element, desc)
|
|
1600
1810
|
else:
|
|
1601
|
-
self.
|
|
1811
|
+
self.notImplemented("Unsupported Code Descriptor <%s>" % type(desc))
|
|
1602
1812
|
|
|
1603
1813
|
def setMemorySectionOptions(self, element: ET.Element, options: List[ARLiteral]):
|
|
1604
1814
|
if len(options) > 0:
|
|
@@ -1663,7 +1873,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1663
1873
|
self.writeImplementation(child_element, impl)
|
|
1664
1874
|
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.getBehaviorRef())
|
|
1665
1875
|
|
|
1666
|
-
def
|
|
1876
|
+
def writeEndToEndDescriptionDataIds(self, element: ET.Element, parent: EndToEndDescription):
|
|
1667
1877
|
data_ids = parent.getDataIds()
|
|
1668
1878
|
if len(data_ids) > 0:
|
|
1669
1879
|
child_element = ET.SubElement(element, "DATA-IDS")
|
|
@@ -1673,24 +1883,28 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1673
1883
|
def setEndToEndDescription(self, element: ET.Element, key: str, desc: EndToEndDescription):
|
|
1674
1884
|
if desc is not None:
|
|
1675
1885
|
child_element = ET.SubElement(element, key)
|
|
1676
|
-
self.
|
|
1677
|
-
self.
|
|
1678
|
-
self.
|
|
1679
|
-
self.
|
|
1680
|
-
self.
|
|
1681
|
-
self.
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1886
|
+
self.writeARObjectAttributes(child_element, desc)
|
|
1887
|
+
self.setChildElementOptionalLiteral(child_element, "CATEGORY", desc.getCategory())
|
|
1888
|
+
self.writeEndToEndDescriptionDataIds(child_element, desc)
|
|
1889
|
+
self.setChildElementOptionalPositiveInteger(child_element, "DATA-ID-MODE", desc.getDataIdMode())
|
|
1890
|
+
self.setChildElementOptionalPositiveInteger(child_element, "DATA-LENGTH", desc.getDataLength())
|
|
1891
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MAX-DELTA-COUNTER-INIT", desc.getMaxDeltaCounterInit())
|
|
1892
|
+
self.setChildElementOptionalPositiveInteger(child_element, "CRC-OFFSET", desc.getCrcOffset())
|
|
1893
|
+
self.setChildElementOptionalPositiveInteger(child_element, "COUNTER-OFFSET", desc.getCounterOffset())
|
|
1894
|
+
|
|
1895
|
+
def setVariableDataPrototypeInSystemInstanceRef(self, element: ET.Element, key: str, instance_ref: VariableDataPrototypeInSystemInstanceRef):
|
|
1896
|
+
if instance_ref is not None:
|
|
1685
1897
|
child_element = ET.SubElement(element, key)
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
self.setChildElementOptionalRefType(child_element, "CONTEXT-
|
|
1689
|
-
self.setChildElementOptionalRefType(child_element, "
|
|
1898
|
+
for ref in instance_ref.getContextComponentRefs():
|
|
1899
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-COMPONENT-REF", ref)
|
|
1900
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-COMPOSITION-REF", instance_ref.getContextCompositionRef())
|
|
1901
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-PORT-REF", instance_ref.getContextPortRef())
|
|
1902
|
+
self.setChildElementOptionalRefType(child_element, "TARGET-DATA-PROTOTYPE-REF", instance_ref.getTargetDataPrototypeRef())
|
|
1690
1903
|
|
|
1691
|
-
def
|
|
1904
|
+
def writeEndToEndProtectionVariablePrototype(self, element: ET.Element, prototype: EndToEndProtectionVariablePrototype):
|
|
1692
1905
|
if prototype is not None:
|
|
1693
|
-
child_element = ET.SubElement(element,
|
|
1906
|
+
child_element = ET.SubElement(element, "END-TO-END-PROTECTION-VARIABLE-PROTOTYPE")
|
|
1907
|
+
self.writeARObjectAttributes(child_element, prototype)
|
|
1694
1908
|
irefs = prototype.getReceiverIrefs()
|
|
1695
1909
|
if len(irefs) > 0:
|
|
1696
1910
|
child_element = ET.SubElement(child_element, "RECEIVER-IREFS")
|
|
@@ -1698,22 +1912,40 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1698
1912
|
self.setVariableDataPrototypeInSystemInstanceRef(child_element, "RECEIVER-IREF", iref)
|
|
1699
1913
|
self.setVariableDataPrototypeInSystemInstanceRef(child_element, "SENDER-IREF", prototype.senderIRef)
|
|
1700
1914
|
|
|
1701
|
-
def
|
|
1702
|
-
prototypes =
|
|
1915
|
+
def writeEndToEndProtectionEndToEndProtectionVariablePrototypes(self, element: ET.Element, protection: EndToEndProtection):
|
|
1916
|
+
prototypes = protection.getEndToEndProtectionVariablePrototypes()
|
|
1703
1917
|
if len(prototypes) > 0:
|
|
1704
1918
|
child_element = ET.SubElement(element, "END-TO-END-PROTECTION-VARIABLE-PROTOTYPES")
|
|
1705
1919
|
for prototype in prototypes:
|
|
1706
1920
|
if isinstance(prototype, EndToEndProtectionVariablePrototype):
|
|
1707
|
-
self.
|
|
1921
|
+
self.writeEndToEndProtectionVariablePrototype(child_element, prototype)
|
|
1708
1922
|
else:
|
|
1709
|
-
self.
|
|
1923
|
+
self.notImplemented("Unsupported End To End Protection Variable Prototype <%s>" % type(prototype))
|
|
1924
|
+
|
|
1925
|
+
def writeEndToEndProtectionISignalIPdu(self, element: ET.Element, ipdu: EndToEndProtectionISignalIPdu):
|
|
1926
|
+
if ipdu is not None:
|
|
1927
|
+
child_element = ET.SubElement(element, "END-TO-END-PROTECTION-I-SIGNAL-I-PDU")
|
|
1928
|
+
self.setChildElementOptionalIntegerValue(child_element, "DATA-OFFSET", ipdu.getDataOffset())
|
|
1929
|
+
self.setChildElementOptionalRefType(child_element, "I-SIGNAL-GROUP-REF", ipdu.getISignalGroupRef())
|
|
1930
|
+
self.setChildElementOptionalRefType(child_element, "I-SIGNAL-I-PDU-REF", ipdu.getISignalIPduRef())
|
|
1931
|
+
|
|
1932
|
+
def writeEndToEndProtectionEndToEndProtectionISignalIPdus(self, element: ET.Element, protection: EndToEndProtection):
|
|
1933
|
+
ipdus = protection.getEndToEndProtectionISignalIPdus()
|
|
1934
|
+
if len(ipdus) > 0:
|
|
1935
|
+
child_element = ET.SubElement(element, "END-TO-END-PROTECTION-I-SIGNAL-I-PDUS")
|
|
1936
|
+
for ipdu in ipdus:
|
|
1937
|
+
if isinstance(ipdu, EndToEndProtectionISignalIPdu):
|
|
1938
|
+
self.writeEndToEndProtectionISignalIPdu(child_element, ipdu)
|
|
1939
|
+
else:
|
|
1940
|
+
self.notImplemented("Unsupported EndToEndProtectionISignalIPdu <%s>" % type(ipdu))
|
|
1710
1941
|
|
|
1711
|
-
def
|
|
1942
|
+
def writeEndToEndProtection(self, element: ET.Element, protection: EndToEndProtection):
|
|
1712
1943
|
if protection is not None:
|
|
1713
1944
|
child_element = ET.SubElement(element, "END-TO-END-PROTECTION")
|
|
1714
1945
|
self.writeIdentifiable(child_element, protection)
|
|
1715
|
-
self.setEndToEndDescription(child_element, "END-TO-END-PROFILE", protection.
|
|
1716
|
-
self.
|
|
1946
|
+
self.setEndToEndDescription(child_element, "END-TO-END-PROFILE", protection.getEndToEndProfile())
|
|
1947
|
+
self.writeEndToEndProtectionEndToEndProtectionISignalIPdus(child_element, protection)
|
|
1948
|
+
self.writeEndToEndProtectionEndToEndProtectionVariablePrototypes(child_element, protection)
|
|
1717
1949
|
|
|
1718
1950
|
def writeEndToEndProtections(self, element: ET.Element, protection_set: EndToEndProtectionSet):
|
|
1719
1951
|
protections = protection_set.getEndToEndProtections()
|
|
@@ -1721,7 +1953,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1721
1953
|
child_element = ET.SubElement(element, "END-TO-END-PROTECTIONS")
|
|
1722
1954
|
for protection in protections:
|
|
1723
1955
|
if isinstance(protection, EndToEndProtection):
|
|
1724
|
-
self.
|
|
1956
|
+
self.writeEndToEndProtection(child_element, protection)
|
|
1725
1957
|
|
|
1726
1958
|
def writeEndToEndProtectionSet(self, element: ET.Element, protection_set: EndToEndProtectionSet):
|
|
1727
1959
|
self.logger.debug("writeEndToEndProtectionSet %s" % protection_set.getShortName())
|
|
@@ -1729,15 +1961,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1729
1961
|
self.writeIdentifiable(child_element, protection_set)
|
|
1730
1962
|
self.writeEndToEndProtections(child_element, protection_set)
|
|
1731
1963
|
|
|
1732
|
-
def
|
|
1733
|
-
self.
|
|
1964
|
+
def writeAutosarDataPrototype(self, element: ET.Element, prototype: AutosarDataPrototype):
|
|
1965
|
+
self.writeDataPrototype(element, prototype)
|
|
1734
1966
|
self.setChildElementOptionalRefType(element, "TYPE-TREF", prototype.typeTRef)
|
|
1735
1967
|
|
|
1736
1968
|
def writeVariableDataPrototype(self, element: ET.Element, prototype: VariableDataPrototype):
|
|
1737
1969
|
self.logger.debug("writeVariableDataPrototype %s" % prototype.getShortName())
|
|
1738
1970
|
child_element = ET.SubElement(element, "VARIABLE-DATA-PROTOTYPE")
|
|
1739
|
-
self.
|
|
1740
|
-
self.setAutosarDataPrototype(child_element, prototype)
|
|
1971
|
+
self.writeAutosarDataPrototype(child_element, prototype)
|
|
1741
1972
|
self.setValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
|
|
1742
1973
|
|
|
1743
1974
|
def writeSenderReceiverInterfaceDataElements(self, element: ET.Element, sr_interface: SenderReceiverInterface):
|
|
@@ -1748,7 +1979,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1748
1979
|
if isinstance(data_element, VariableDataPrototype):
|
|
1749
1980
|
self.writeVariableDataPrototype(data_elements_tag, data_element)
|
|
1750
1981
|
else:
|
|
1751
|
-
self.
|
|
1982
|
+
self.notImplemented("Unsupported Data Element <%s>" % type(data_element))
|
|
1752
1983
|
|
|
1753
1984
|
def writeSenderReceiverInterfaceInvalidationPolicies(self, element: ET.Element, sr_interface: SenderReceiverInterface):
|
|
1754
1985
|
policies = sr_interface.getInvalidationPolicies()
|
|
@@ -1767,25 +1998,38 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1767
1998
|
self.writeSenderReceiverInterfaceDataElements(child_element, sr_interface)
|
|
1768
1999
|
self.writeSenderReceiverInterfaceInvalidationPolicies(child_element, sr_interface)
|
|
1769
2000
|
|
|
1770
|
-
def
|
|
1771
|
-
|
|
1772
|
-
if len(
|
|
2001
|
+
def writeBswModuleDescriptionImplementedEntryRefs(self, element: ET.Element, desc: BswModuleDescription):
|
|
2002
|
+
refs = desc.getImplementedEntryRefs()
|
|
2003
|
+
if len(refs) > 0:
|
|
1773
2004
|
entries_tag = ET.SubElement(element, "PROVIDED-ENTRYS")
|
|
1774
|
-
for
|
|
2005
|
+
for ref in refs:
|
|
1775
2006
|
entry_tag = ET.SubElement(entries_tag, "BSW-MODULE-ENTRY-REF-CONDITIONAL")
|
|
1776
|
-
self.setChildElementOptionalRefType(entry_tag, "BSW-MODULE-ENTRY-REF",
|
|
2007
|
+
self.setChildElementOptionalRefType(entry_tag, "BSW-MODULE-ENTRY-REF", ref)
|
|
1777
2008
|
|
|
1778
|
-
def
|
|
1779
|
-
|
|
1780
|
-
self.
|
|
2009
|
+
def writeModeDeclarationGroupPrototype(self, element: ET.Element, prototype: ModeDeclarationGroupPrototype):
|
|
2010
|
+
child_element = ET.SubElement(element, "MODE-DECLARATION-GROUP-PROTOTYPE")
|
|
2011
|
+
self.writeIdentifiable(child_element, prototype)
|
|
2012
|
+
self.setChildElementOptionalRefType(child_element, "TYPE-TREF", prototype.getTypeTRef())
|
|
1781
2013
|
|
|
1782
|
-
def
|
|
2014
|
+
def writeBswModuleDescriptionProvidedModeGroups(self, element: ET.Element, parent: BswModuleDescription):
|
|
1783
2015
|
mode_groups = parent.getProvidedModeGroups()
|
|
1784
2016
|
if len(mode_groups) > 0:
|
|
1785
|
-
|
|
2017
|
+
child_element = ET.SubElement(element, "PROVIDED-MODE-GROUPS")
|
|
2018
|
+
for mode_group in mode_groups:
|
|
2019
|
+
if isinstance(mode_group, ModeDeclarationGroupPrototype):
|
|
2020
|
+
self.writeModeDeclarationGroupPrototype(child_element, mode_group)
|
|
2021
|
+
else:
|
|
2022
|
+
self.notImplemented("Unsupported ProvidedModeGroup <%s>" % type(mode_group))
|
|
2023
|
+
|
|
2024
|
+
def writeBswModuleDescriptionRequiredModeGroups(self, element: ET.Element, desc: BswModuleDescription):
|
|
2025
|
+
mode_groups = desc.getRequiredModeGroups()
|
|
2026
|
+
if len(mode_groups) > 0:
|
|
2027
|
+
child_element = ET.SubElement(element, "REQUIRED-MODE-GROUPS")
|
|
1786
2028
|
for mode_group in mode_groups:
|
|
1787
|
-
|
|
1788
|
-
|
|
2029
|
+
if isinstance(mode_group, ModeDeclarationGroupPrototype):
|
|
2030
|
+
self.writeModeDeclarationGroupPrototype(child_element, mode_group)
|
|
2031
|
+
else:
|
|
2032
|
+
self.notImplemented("Unsupported ProvidedModeGroup <%s>" % type(mode_group))
|
|
1789
2033
|
|
|
1790
2034
|
def writeCanEnterExclusiveAreaRefs(self, element: ET.Element, entity: ExecutableEntity):
|
|
1791
2035
|
refs = entity.getCanEnterExclusiveAreaRefs()
|
|
@@ -1794,13 +2038,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1794
2038
|
for ref in refs:
|
|
1795
2039
|
self.setChildElementOptionalRefType(child_element, "CAN-ENTER-EXCLUSIVE-AREA-REF", ref)
|
|
1796
2040
|
|
|
1797
|
-
def
|
|
2041
|
+
def writeExecutableEntity(self, element: ET.Element, entity: ExecutableEntity):
|
|
1798
2042
|
self.writeIdentifiable(element, entity)
|
|
1799
2043
|
self.writeCanEnterExclusiveAreaRefs(element, entity)
|
|
1800
2044
|
self.setChildElementOptionalFloatValue(element, "MINIMUM-START-INTERVAL", entity.getMinimumStartInterval())
|
|
1801
2045
|
self.setChildElementOptionalRefType(element, "SW-ADDR-METHOD-REF", entity.getSwAddrMethodRef())
|
|
1802
2046
|
|
|
1803
|
-
def
|
|
2047
|
+
def writeBswModuleEntityManagedModeGroups(self, element: ET.Element, entity: BswModuleEntity):
|
|
1804
2048
|
mode_group_refs = entity.getManagedModeGroupRefs()
|
|
1805
2049
|
if len(mode_group_refs) > 0:
|
|
1806
2050
|
mode_groups_tag = ET.SubElement(element, "MANAGED-MODE-GROUPS")
|
|
@@ -1808,48 +2052,113 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1808
2052
|
child_element = ET.SubElement(mode_groups_tag, "MODE-DECLARATION-GROUP-PROTOTYPE-REF-CONDITIONAL")
|
|
1809
2053
|
self.setChildElementOptionalRefType(child_element, "MODE-DECLARATION-GROUP-PROTOTYPE-REF", mode_group_ref)
|
|
1810
2054
|
|
|
1811
|
-
def
|
|
1812
|
-
|
|
2055
|
+
def writeBswVariableAccess(self, element: ET.Element, access: BswVariableAccess):
|
|
2056
|
+
if access is not None:
|
|
2057
|
+
child_element = ET.SubElement(element, "BSW-VARIABLE-ACCESS")
|
|
2058
|
+
self.writeReferrable(child_element, access)
|
|
2059
|
+
self.setChildElementOptionalRefType(child_element, "ACCESSED-VARIABLE-REF", access.getAccessedVariableRef())
|
|
2060
|
+
|
|
2061
|
+
def writeBswModuleEntityDataSendPoints(self, element: ET.Element, entity: BswModuleEntity):
|
|
2062
|
+
points = entity.getDataSendPoints()
|
|
2063
|
+
if len(points) > 0:
|
|
2064
|
+
child_element = ET.SubElement(element, "DATA-SEND-POINTS")
|
|
2065
|
+
for point in points:
|
|
2066
|
+
if isinstance(point, BswVariableAccess):
|
|
2067
|
+
self.writeBswVariableAccess(child_element, point)
|
|
2068
|
+
else:
|
|
2069
|
+
self.notImplemented("Unsupported Data Send Point <%s>" % type(point))
|
|
2070
|
+
|
|
2071
|
+
def writeBswModuleEntityDataReceivePoints(self, element: ET.Element, entity: BswModuleEntity):
|
|
2072
|
+
points = entity.getDataReceivePoints()
|
|
2073
|
+
if len(points) > 0:
|
|
2074
|
+
child_element = ET.SubElement(element, "DATA-RECEIVE-POINTS")
|
|
2075
|
+
for point in points:
|
|
2076
|
+
if isinstance(point, BswVariableAccess):
|
|
2077
|
+
self.writeBswVariableAccess(child_element, point)
|
|
2078
|
+
else:
|
|
2079
|
+
self.notImplemented("Unsupported Data Receive Point <%s>" % type(point))
|
|
2080
|
+
|
|
2081
|
+
def writeBswModuleEntityIssuedTriggerRefs(self, element: ET.Element, entity: BswModuleEntity):
|
|
2082
|
+
refs = entity.getIssuedTriggerRefs()
|
|
2083
|
+
if len(refs) > 0:
|
|
2084
|
+
child_element = ET.SubElement(element, "ISSUED-TRIGGERS")
|
|
2085
|
+
for ref in refs:
|
|
2086
|
+
cond_tag = ET.SubElement(child_element, "TRIGGER-REF-CONDITIONAL")
|
|
2087
|
+
self.setChildElementOptionalRefType(cond_tag, "TRIGGER-REF", ref)
|
|
2088
|
+
|
|
2089
|
+
def writeBswModuleEntityActivationPointRefs(self, element: ET.Element, entity: BswModuleEntity):
|
|
2090
|
+
refs = entity.getActivationPointRefs()
|
|
2091
|
+
if len(refs) > 0:
|
|
2092
|
+
child_element = ET.SubElement(element, "ACTIVATION-POINTS")
|
|
2093
|
+
for ref in refs:
|
|
2094
|
+
cond_tag = ET.SubElement(child_element, "BSW-INTERNAL-TRIGGERING-POINT-REF-CONDITIONAL")
|
|
2095
|
+
self.setChildElementOptionalRefType(cond_tag, "BSW-INTERNAL-TRIGGERING-POINT-REF", ref)
|
|
2096
|
+
|
|
2097
|
+
def writeBswModuleCallPoint(self, element: ET.Element, point: BswModuleCallPoint):
|
|
2098
|
+
self.writeReferrable(element, point)
|
|
2099
|
+
|
|
2100
|
+
def writeBswAsynchronousServerCallPoint(self, element: ET.Element, point: BswAsynchronousServerCallPoint):
|
|
2101
|
+
child_element = ET.SubElement(element, "BSW-ASYNCHRONOUS-SERVER-CALL-POINT")
|
|
2102
|
+
self.writeBswModuleCallPoint(child_element, point)
|
|
2103
|
+
self.setChildElementOptionalRefType(child_element, "CALLED-ENTRY-REF", point.getCalledEntryRef())
|
|
2104
|
+
|
|
2105
|
+
def writeBswModuleEntityCallPoints(self, element: ET.Element, entity: BswModuleEntity):
|
|
2106
|
+
points = entity.getCallPoints()
|
|
2107
|
+
if len(points) > 0:
|
|
2108
|
+
child_element = ET.SubElement(element, "CALL-POINTS")
|
|
2109
|
+
for point in points:
|
|
2110
|
+
if isinstance(point, BswAsynchronousServerCallPoint):
|
|
2111
|
+
self.writeBswAsynchronousServerCallPoint(child_element, point)
|
|
2112
|
+
else:
|
|
2113
|
+
self.notImplemented("Unsupported Call Point <%s>" % type(point))
|
|
2114
|
+
|
|
2115
|
+
def writeBswModuleEntity(self, element: ET.Element, entity: BswModuleEntity):
|
|
2116
|
+
self.writeExecutableEntity(element, entity)
|
|
2117
|
+
self.writeBswModuleEntityActivationPointRefs(element, entity)
|
|
2118
|
+
self.writeBswModuleEntityCallPoints(element, entity)
|
|
2119
|
+
self.writeBswModuleEntityDataSendPoints(element, entity)
|
|
2120
|
+
self.writeBswModuleEntityDataReceivePoints(element, entity)
|
|
1813
2121
|
self.setChildElementOptionalRefType(element, "IMPLEMENTED-ENTRY-REF", entity.implementedEntryRef)
|
|
1814
|
-
self.
|
|
2122
|
+
self.writeBswModuleEntityManagedModeGroups(element, entity)
|
|
2123
|
+
self.writeBswModuleEntityIssuedTriggerRefs(element, entity)
|
|
1815
2124
|
|
|
1816
|
-
def
|
|
1817
|
-
self.logger.debug("
|
|
2125
|
+
def writeBswCalledEntity(self, element: ET.Element, entity: BswCalledEntity):
|
|
2126
|
+
self.logger.debug("Write BswCalledEntity <%s>" % entity.getShortName())
|
|
1818
2127
|
child_element = ET.SubElement(element, "BSW-CALLED-ENTITY")
|
|
1819
|
-
self.
|
|
2128
|
+
self.writeBswModuleEntity(child_element, entity)
|
|
1820
2129
|
|
|
1821
|
-
def
|
|
1822
|
-
self.logger.debug("
|
|
2130
|
+
def writeBswSchedulableEntity(self, element: ET.Element, entity: BswSchedulableEntity):
|
|
2131
|
+
self.logger.debug("Write BswSchedulableEntity <%s>" % entity.getShortName())
|
|
1823
2132
|
child_element = ET.SubElement(element, "BSW-SCHEDULABLE-ENTITY")
|
|
1824
|
-
self.
|
|
2133
|
+
self.writeBswModuleEntity(child_element, entity)
|
|
1825
2134
|
|
|
1826
2135
|
def setBswInterruptEntity(self, element: ET.Element, entity: BswInterruptEntity):
|
|
1827
|
-
self.logger.debug("
|
|
2136
|
+
self.logger.debug("Write BswInterruptEntity <%s>" % entity.getShortName())
|
|
1828
2137
|
child_element = ET.SubElement(element, "BSW-INTERRUPT-ENTITY")
|
|
1829
|
-
self.
|
|
2138
|
+
self.writeBswModuleEntity(child_element, entity)
|
|
1830
2139
|
self.setChildElementOptionalLiteral(child_element, "INTERRUPT-CATEGORY", entity.getInterruptCategory())
|
|
1831
2140
|
self.setChildElementOptionalLiteral(child_element, "INTERRUPT-SOURCE", entity.getInterruptSource())
|
|
1832
2141
|
|
|
1833
|
-
def
|
|
1834
|
-
entities = parent.getBswModuleEntities()
|
|
2142
|
+
def writeBswInternalBehaviorEntities(self, element: ET.Element, parent: BswInternalBehavior):
|
|
2143
|
+
entities = parent.getBswModuleEntities()
|
|
1835
2144
|
if len(entities) > 0:
|
|
1836
2145
|
child_element = ET.SubElement(element, "ENTITYS")
|
|
1837
2146
|
for entity in entities:
|
|
1838
2147
|
if isinstance(entity, BswCalledEntity):
|
|
1839
|
-
self.
|
|
2148
|
+
self.writeBswCalledEntity(child_element, entity)
|
|
1840
2149
|
elif isinstance(entity, BswSchedulableEntity):
|
|
1841
|
-
self.
|
|
2150
|
+
self.writeBswSchedulableEntity(child_element, entity)
|
|
1842
2151
|
elif isinstance(entity, BswInterruptEntity):
|
|
1843
2152
|
self.setBswInterruptEntity(child_element, entity)
|
|
1844
2153
|
else:
|
|
1845
2154
|
self.notImplemented("Unsupported BswModuleEntity <%s>" % type(entity))
|
|
1846
2155
|
|
|
1847
|
-
def
|
|
2156
|
+
def writeBswEvent(self, element: ET.Element, event: BswEvent):
|
|
1848
2157
|
self.writeIdentifiable(element, event)
|
|
1849
2158
|
self.setChildElementOptionalRefType(element, "STARTS-ON-EVENT-REF", event.startsOnEventRef)
|
|
1850
2159
|
|
|
1851
2160
|
def writeBswScheduleEvent(self, element: ET.Element, event: BswScheduleEvent):
|
|
1852
|
-
self.
|
|
2161
|
+
self.writeBswEvent(element, event)
|
|
1853
2162
|
|
|
1854
2163
|
def writeBswTimingEvent(self, element: ET.Element, event: BswTimingEvent):
|
|
1855
2164
|
self.logger.debug("Write BswTimingEvent <%s>" % event.getShortName())
|
|
@@ -1862,20 +2171,33 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1862
2171
|
child_element = ET.SubElement(element, "BSW-BACKGROUND-EVENT")
|
|
1863
2172
|
self.writeBswScheduleEvent(child_element, event)
|
|
1864
2173
|
|
|
2174
|
+
def writeBswInternalTriggerOccurredEvent(self, element: ET.Element, event: BswInternalTriggerOccurredEvent):
|
|
2175
|
+
self.logger.debug("Write BswInternalTriggerOccurredEvent <%s>" % event.getShortName())
|
|
2176
|
+
child_element = ET.SubElement(element, "BSW-INTERNAL-TRIGGER-OCCURRED-EVENT")
|
|
2177
|
+
self.writeBswScheduleEvent(child_element, event)
|
|
2178
|
+
self.setChildElementOptionalRefType(child_element, "EVENT-SOURCE-REF", event.getEventSourceRef())
|
|
2179
|
+
|
|
1865
2180
|
def writeBswExternalTriggerOccurredEvent(self, element: ET.Element, event: BswExternalTriggerOccurredEvent):
|
|
1866
|
-
self.logger.debug("Write BswExternalTriggerOccurredEvent
|
|
2181
|
+
self.logger.debug("Write BswExternalTriggerOccurredEvent <%s>" % event.getShortName())
|
|
1867
2182
|
child_element = ET.SubElement(element, "BSW-EXTERNAL-TRIGGER-OCCURRED-EVENT")
|
|
1868
2183
|
self.writeBswScheduleEvent(child_element, event)
|
|
1869
2184
|
self.setChildElementOptionalRefType(child_element, "TRIGGER-REF", event.getTriggerRef())
|
|
1870
2185
|
|
|
1871
2186
|
def writeBswDataReceivedEvent(self, element: ET.Element, event: BswDataReceivedEvent):
|
|
1872
|
-
self.logger.debug("Write BswDataReceivedEvent
|
|
2187
|
+
self.logger.debug("Write BswDataReceivedEvent <%s>" % event.getShortName())
|
|
1873
2188
|
# Read the Inherit BswScheduleEvent
|
|
1874
2189
|
child_element = ET.SubElement(element, "BSW-DATA-RECEIVED-EVENT")
|
|
1875
2190
|
self.writeBswScheduleEvent(child_element, event)
|
|
1876
2191
|
self.setChildElementOptionalRefType(child_element, "DATA-REF", event.getDataRef())
|
|
1877
2192
|
|
|
1878
|
-
def
|
|
2193
|
+
def writeBswOperationInvokedEvent(self, element: ET.Element, event: BswOperationInvokedEvent):
|
|
2194
|
+
self.logger.debug("Write BswOperationInvokedEvent <%s>" % event.getShortName())
|
|
2195
|
+
# Read the Inherit BswScheduleEvent
|
|
2196
|
+
child_element = ET.SubElement(element, "BSW-OPERATION-INVOKED-EVENT")
|
|
2197
|
+
self.writeBswEvent(child_element, event)
|
|
2198
|
+
self.setChildElementOptionalRefType(child_element, "ENTRY-REF", event.getEntryRef())
|
|
2199
|
+
|
|
2200
|
+
def writeBswInternalBehaviorEvents(self, element: ET.Element, parent: BswInternalBehavior):
|
|
1879
2201
|
events = parent.getBswEvents()
|
|
1880
2202
|
if len(events) > 0:
|
|
1881
2203
|
child_element = ET.SubElement(element, "EVENTS")
|
|
@@ -1884,12 +2206,16 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1884
2206
|
self.writeBswTimingEvent(child_element, event)
|
|
1885
2207
|
elif isinstance(event, BswBackgroundEvent):
|
|
1886
2208
|
self.writeBswBackgroundEvent(child_element, event)
|
|
2209
|
+
elif isinstance(event, BswInternalTriggerOccurredEvent):
|
|
2210
|
+
self.writeBswInternalTriggerOccurredEvent(child_element, event)
|
|
1887
2211
|
elif isinstance(event, BswExternalTriggerOccurredEvent):
|
|
1888
2212
|
self.writeBswExternalTriggerOccurredEvent(child_element, event)
|
|
1889
2213
|
elif isinstance(event, BswDataReceivedEvent):
|
|
1890
2214
|
self.writeBswDataReceivedEvent(child_element, event)
|
|
2215
|
+
elif isinstance(event, BswOperationInvokedEvent):
|
|
2216
|
+
self.writeBswOperationInvokedEvent(child_element, event)
|
|
1891
2217
|
else:
|
|
1892
|
-
self.
|
|
2218
|
+
self.notImplemented("Unsupported BswModuleEntity <%s>" % type(event))
|
|
1893
2219
|
|
|
1894
2220
|
def setBswModeSenderPolicy(self, element: ET.Element, policy: BswModeSenderPolicy):
|
|
1895
2221
|
child_element = ET.SubElement(element, "BSW-MODE-SENDER-POLICY")
|
|
@@ -1904,52 +2230,158 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1904
2230
|
if isinstance(policy, BswModeSenderPolicy):
|
|
1905
2231
|
self.setBswModeSenderPolicy(child_element, policy)
|
|
1906
2232
|
else:
|
|
1907
|
-
self.
|
|
1908
|
-
|
|
1909
|
-
def setIncludedModeDeclarationGroupSet(self, element: ET.Element, group_set: IncludedModeDeclarationGroupSet):
|
|
1910
|
-
child_element = ET.SubElement(element, "INCLUDED-MODE-DECLARATION-GROUP-SET")
|
|
2233
|
+
self.notImplemented("Unsupported ModeSenderPolicy type <%s>." % type(policy))
|
|
1911
2234
|
|
|
1912
2235
|
def writeBswInternalBehaviorIncludedModeDeclarationGroupSets(self, element: ET.Element, behavior: BswInternalBehavior):
|
|
1913
2236
|
group_sets = behavior.getIncludedModeDeclarationGroupSets()
|
|
1914
2237
|
if len(group_sets) > 0:
|
|
1915
2238
|
child_element = ET.SubElement(element, "INCLUDED-MODE-DECLARATION-GROUP-SETS")
|
|
1916
2239
|
for group_set in group_sets:
|
|
1917
|
-
self.
|
|
2240
|
+
self.writeIncludedModeDeclarationGroupSet(child_element, group_set)
|
|
2241
|
+
|
|
2242
|
+
def writeBswApiOptions(self, element: ET.Element, options: BswApiOptions):
|
|
2243
|
+
self.writeARObjectAttributes(element, options)
|
|
2244
|
+
self.setChildElementOptionalBooleanValue(element, "ENABLE-TAKE-ADDRESS", options.getEnableTakeAddress())
|
|
2245
|
+
|
|
2246
|
+
def writeBswDataReceptionPolicy(self, element: ET.Element, policy: BswDataReceptionPolicy):
|
|
2247
|
+
self.writeBswApiOptions(element, policy)
|
|
2248
|
+
self.setChildElementOptionalRefType(element, "RECEIVED-DATA-REF", policy.getReceivedDataRef())
|
|
2249
|
+
|
|
2250
|
+
def writeBswQueuedDataReceptionPolicy(self, element: ET.Element, policy: BswQueuedDataReceptionPolicy):
|
|
2251
|
+
child_element = ET.SubElement(element, "BSW-QUEUED-DATA-RECEPTION-POLICY")
|
|
2252
|
+
self.writeBswDataReceptionPolicy(child_element, policy)
|
|
2253
|
+
self.setChildElementOptionalPositiveInteger(child_element, "QUEUE-LENGTH", policy.getQueueLength())
|
|
2254
|
+
|
|
2255
|
+
def writeBswInternalBehaviorReceptionPolicies(self, element: ET.Element, behavior: BswInternalBehavior):
|
|
2256
|
+
policies = behavior.getReceptionPolicies()
|
|
2257
|
+
if len(policies) > 0:
|
|
2258
|
+
child_element = ET.SubElement(element, "RECEPTION-POLICYS")
|
|
2259
|
+
for policy in policies:
|
|
2260
|
+
if isinstance(policy, BswQueuedDataReceptionPolicy):
|
|
2261
|
+
self.writeBswQueuedDataReceptionPolicy(child_element, policy)
|
|
2262
|
+
else:
|
|
2263
|
+
self.notImplemented("Unsupported Reception Policies <%s>" % type(policy))
|
|
2264
|
+
|
|
2265
|
+
def writeBswInternalTriggeringPoint(self, element: ET.Element, point: BswInternalTriggeringPoint):
|
|
2266
|
+
child_element = ET.SubElement(element, "BSW-INTERNAL-TRIGGERING-POINT")
|
|
2267
|
+
self.writeIdentifiable(child_element, point)
|
|
1918
2268
|
|
|
1919
|
-
def
|
|
2269
|
+
def writeBswInternalBehaviorInternalTriggeringPoints(self, element: ET.Element, behavior: BswInternalBehavior):
|
|
2270
|
+
points = behavior.getInternalTriggeringPoints()
|
|
2271
|
+
if len(points) > 0:
|
|
2272
|
+
child_element = ET.SubElement(element, "INTERNAL-TRIGGERING-POINTS")
|
|
2273
|
+
for point in points:
|
|
2274
|
+
if isinstance(point, BswInternalTriggeringPoint):
|
|
2275
|
+
self.writeBswInternalTriggeringPoint(child_element, point)
|
|
2276
|
+
else:
|
|
2277
|
+
self.notImplemented("Unsupported Internal Triggering Points <%s>" % type(point))
|
|
2278
|
+
|
|
2279
|
+
def writeBswInternalBehavior(self, element: ET.Element, behavior: BswInternalBehavior):
|
|
1920
2280
|
child_element = ET.SubElement(element, "BSW-INTERNAL-BEHAVIOR")
|
|
1921
2281
|
self.writeInternalBehavior(child_element, behavior)
|
|
1922
|
-
self.
|
|
1923
|
-
self.
|
|
2282
|
+
self.writeBswInternalBehaviorInternalTriggeringPoints(child_element, behavior)
|
|
2283
|
+
self.writeBswInternalBehaviorEntities(child_element, behavior)
|
|
2284
|
+
self.writeBswInternalBehaviorEvents(child_element, behavior)
|
|
1924
2285
|
self.writeBswInternalBehaviorModeSenderPolicy(child_element, behavior)
|
|
1925
2286
|
self.writeBswInternalBehaviorIncludedModeDeclarationGroupSets(child_element, behavior)
|
|
2287
|
+
self.writeBswInternalBehaviorReceptionPolicies(child_element, behavior)
|
|
1926
2288
|
|
|
1927
|
-
def writeBswModuleDescriptionInternalBehaviors(self, element: ET.Element,
|
|
2289
|
+
def writeBswModuleDescriptionInternalBehaviors(self, element: ET.Element, desc: BswModuleDescription):
|
|
2290
|
+
behaviors = desc.getInternalBehaviors()
|
|
1928
2291
|
if len(behaviors) > 0:
|
|
1929
2292
|
child_element = ET.SubElement(element, "INTERNAL-BEHAVIORS")
|
|
1930
2293
|
for behavior in behaviors:
|
|
1931
2294
|
if isinstance(behavior, BswInternalBehavior):
|
|
1932
|
-
self.
|
|
2295
|
+
self.writeBswInternalBehavior(child_element, behavior)
|
|
2296
|
+
else:
|
|
2297
|
+
self.notImplemented("Unsupported Internal Behavior <%s>" % type(behavior))
|
|
2298
|
+
|
|
2299
|
+
def writeTrigger(self, element: ET.Element, trigger: Trigger):
|
|
2300
|
+
child_element = ET.SubElement(element, "TRIGGER")
|
|
2301
|
+
self.writeIdentifiable(child_element, trigger)
|
|
2302
|
+
|
|
2303
|
+
def writeBswModuleDescriptionReleasedTriggers(self, element: ET.Element, desc: BswModuleDescription):
|
|
2304
|
+
triggers = desc.getReleasedTriggers()
|
|
2305
|
+
if len(triggers) > 0:
|
|
2306
|
+
child_element = ET.SubElement(element, "RELEASED-TRIGGERS")
|
|
2307
|
+
for trigger in triggers:
|
|
2308
|
+
if isinstance(trigger, Trigger):
|
|
2309
|
+
self.writeTrigger(child_element, trigger)
|
|
1933
2310
|
else:
|
|
1934
|
-
self.
|
|
2311
|
+
self.notImplemented("Unsupported Released Trigger <%s>" % type(trigger))
|
|
2312
|
+
|
|
2313
|
+
def writeBswModuleDescriptionRequiredTriggers(self, element: ET.Element, desc: BswModuleDescription):
|
|
2314
|
+
triggers = desc.getRequiredTriggers()
|
|
2315
|
+
if len(triggers) > 0:
|
|
2316
|
+
child_element = ET.SubElement(element, "REQUIRED-TRIGGERS")
|
|
2317
|
+
for trigger in triggers:
|
|
2318
|
+
if isinstance(trigger, Trigger):
|
|
2319
|
+
self.writeTrigger(child_element, trigger)
|
|
2320
|
+
else:
|
|
2321
|
+
self.notImplemented("Unsupported Required Trigger <%s>" % type(trigger))
|
|
2322
|
+
|
|
2323
|
+
def writeBswModuleDescriptionProvidedDatas(self, element: ET.Element, desc: BswModuleDescription):
|
|
2324
|
+
datas = desc.getProvidedDatas()
|
|
2325
|
+
if len(datas) > 0:
|
|
2326
|
+
child_element = ET.SubElement(element, "PROVIDED-DATAS")
|
|
2327
|
+
for data in datas:
|
|
2328
|
+
if isinstance(data, VariableDataPrototype):
|
|
2329
|
+
self.writeVariableDataPrototype(child_element, data)
|
|
2330
|
+
else:
|
|
2331
|
+
self.notImplemented("Unsupported Provided Data <%s>" % type(data))
|
|
2332
|
+
|
|
2333
|
+
def writeBswModuleDescriptionRequiredDatas(self, element: ET.Element, desc: BswModuleDescription):
|
|
2334
|
+
datas = desc.getRequiredDatas()
|
|
2335
|
+
if len(datas) > 0:
|
|
2336
|
+
child_element = ET.SubElement(element, "REQUIRED-DATAS")
|
|
2337
|
+
for data in datas:
|
|
2338
|
+
if isinstance(data, VariableDataPrototype):
|
|
2339
|
+
self.writeVariableDataPrototype(child_element, data)
|
|
2340
|
+
else:
|
|
2341
|
+
self.notImplemented("Unsupported Required Data <%s>" % type(data))
|
|
2342
|
+
|
|
2343
|
+
def writeBswModuleClientServerEntry(self, element: ET.Element, entry: BswModuleClientServerEntry):
|
|
2344
|
+
if entry is not None:
|
|
2345
|
+
child_element = ET.SubElement(element, "BSW-MODULE-CLIENT-SERVER-ENTRY")
|
|
2346
|
+
self.writeReferrable(child_element, entry)
|
|
2347
|
+
self.setChildElementOptionalRefType(child_element, "ENCAPSULATED-ENTRY-REF", entry.getEncapsulatedEntryRef())
|
|
2348
|
+
self.setChildElementOptionalBooleanValue(child_element, "IS-REENTRANT", entry.getIsReentrant())
|
|
2349
|
+
self.setChildElementOptionalBooleanValue(child_element, "IS-SYNCHRONOUS", entry.getIsSynchronous())
|
|
2350
|
+
|
|
2351
|
+
def writeBswModuleDescriptionProvidedClientServerEntries(self, element: ET.Element, desc: BswModuleDescription):
|
|
2352
|
+
entries = desc.getProvidedClientServerEntries()
|
|
2353
|
+
if len(entries) > 0:
|
|
2354
|
+
child_element = ET.SubElement(element, "PROVIDED-CLIENT-SERVER-ENTRYS")
|
|
2355
|
+
for entry in entries:
|
|
2356
|
+
if isinstance(entry, BswModuleClientServerEntry):
|
|
2357
|
+
self.writeBswModuleClientServerEntry(child_element, entry)
|
|
2358
|
+
else:
|
|
2359
|
+
self.notImplemented("Unsupported Provided Client Server Entry <%s>" % type(entry))
|
|
2360
|
+
|
|
2361
|
+
def writeBswModuleDescriptionRequiredClientServerEntries(self, element: ET.Element, desc: BswModuleDescription):
|
|
2362
|
+
entries = desc.getRequiredClientServerEntries()
|
|
2363
|
+
if len(entries) > 0:
|
|
2364
|
+
child_element = ET.SubElement(element, "REQUIRED-CLIENT-SERVER-ENTRYS")
|
|
2365
|
+
for entry in entries:
|
|
2366
|
+
if isinstance(entry, BswModuleClientServerEntry):
|
|
2367
|
+
self.writeBswModuleClientServerEntry(child_element, entry)
|
|
2368
|
+
else:
|
|
2369
|
+
self.notImplemented("Unsupported Provided Client Server Entry <%s>" % type(entry))
|
|
1935
2370
|
|
|
1936
2371
|
def writeBswModuleDescription(self, element: ET.Element, desc: BswModuleDescription):
|
|
1937
2372
|
self.logger.debug("writeBswModuleDescription %s" % desc.getShortName())
|
|
1938
2373
|
child_element = ET.SubElement(element, "BSW-MODULE-DESCRIPTION")
|
|
1939
2374
|
self.writeIdentifiable(child_element, desc)
|
|
1940
2375
|
self.setChildElementOptionalNumericalValue(child_element, "MODULE-ID", desc.getModuleId())
|
|
1941
|
-
self.
|
|
1942
|
-
self.
|
|
1943
|
-
|
|
1944
|
-
self.
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
for mode_group_ref in mode_group_refs:
|
|
1951
|
-
child_element = ET.SubElement(mode_groups_tag, "MODE-DECLARATION-GROUP-PROTOTYPE-REF-CONDITIONAL")
|
|
1952
|
-
self.setChildElementOptionalRefType(child_element, "MODE-DECLARATION-GROUP-PROTOTYPE-REF", mode_group_ref)
|
|
2376
|
+
self.writeBswModuleDescriptionImplementedEntryRefs(child_element, desc)
|
|
2377
|
+
self.writeBswModuleDescriptionProvidedModeGroups(child_element, desc)
|
|
2378
|
+
self.writeBswModuleDescriptionRequiredModeGroups(child_element, desc)
|
|
2379
|
+
self.writeBswModuleDescriptionProvidedClientServerEntries(child_element, desc)
|
|
2380
|
+
self.writeBswModuleDescriptionRequiredClientServerEntries(child_element, desc)
|
|
2381
|
+
self.writeBswModuleDescriptionProvidedDatas(child_element, desc)
|
|
2382
|
+
self.writeBswModuleDescriptionRequiredDatas(child_element, desc)
|
|
2383
|
+
self.writeBswModuleDescriptionInternalBehaviors(child_element, desc)
|
|
2384
|
+
self.writeBswModuleDescriptionReleasedTriggers(child_element, desc)
|
|
1953
2385
|
|
|
1954
2386
|
def setSwServiceArg(self, element: ET.Element, arg: SwServiceArg):
|
|
1955
2387
|
self.logger.debug("Set SwServiceArg <%s>" % arg.getShortName())
|
|
@@ -1991,7 +2423,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1991
2423
|
if isinstance(mapping, SwcBswRunnableMapping):
|
|
1992
2424
|
self.setSwcBswRunnableMapping(child_element, mapping)
|
|
1993
2425
|
else:
|
|
1994
|
-
self.
|
|
2426
|
+
self.notImplemented("Unsupported Runnable Mapping <%s>" % type(mapping))
|
|
1995
2427
|
|
|
1996
2428
|
def writeSwcBswMapping(self, element: ET.Element, mapping: SwcBswMapping):
|
|
1997
2429
|
self.logger.debug("writeBswModuleDescription %s" % mapping.getShortName())
|
|
@@ -2006,8 +2438,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2006
2438
|
self.setChildElementOptionalLiteral(element, "SHORT-LABEL", engineering_obj.short_label)
|
|
2007
2439
|
self.setChildElementOptionalLiteral(element, "CATEGORY", engineering_obj.category)
|
|
2008
2440
|
|
|
2009
|
-
def
|
|
2010
|
-
self.logger.debug("
|
|
2441
|
+
def writeAutosarEngineeringObject(self, element: ET.Element, obj: AutosarEngineeringObject):
|
|
2442
|
+
# self.logger.debug("write ArtifactDescriptor %s", obj.short_label)
|
|
2011
2443
|
child_element = ET.SubElement(element, "AUTOSAR-ENGINEERING-OBJECT")
|
|
2012
2444
|
self.writeEngineeringObject(child_element, obj)
|
|
2013
2445
|
|
|
@@ -2017,15 +2449,15 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2017
2449
|
child_element = ET.SubElement(element, "ARTIFACT-DESCRIPTORS")
|
|
2018
2450
|
for artifact_desc in artifact_descs:
|
|
2019
2451
|
if isinstance(artifact_desc, AutosarEngineeringObject):
|
|
2020
|
-
self.
|
|
2452
|
+
self.writeAutosarEngineeringObject(child_element, artifact_desc)
|
|
2021
2453
|
else:
|
|
2022
|
-
self.
|
|
2454
|
+
self.notImplemented("Unsupported Artifact descriptor <%s>" % type(artifact_desc))
|
|
2023
2455
|
|
|
2024
2456
|
def writeBswImplementationVendorSpecificModuleDefRefs(self, element: ET.Element, parent: BswImplementation):
|
|
2025
2457
|
refs = parent.getVendorSpecificModuleDefRefs()
|
|
2026
2458
|
if len(refs) > 0:
|
|
2027
2459
|
child_element = ET.SubElement(element, "VENDOR-SPECIFIC-MODULE-DEF-REFS")
|
|
2028
|
-
if child_element
|
|
2460
|
+
if child_element is not None:
|
|
2029
2461
|
for ref in refs:
|
|
2030
2462
|
self.setChildElementOptionalRefType(child_element, "VENDOR-SPECIFIC-MODULE-DEF-REF", ref)
|
|
2031
2463
|
|
|
@@ -2035,6 +2467,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2035
2467
|
self.writeImplementation(child_element, impl)
|
|
2036
2468
|
self.setChildElementOptionalLiteral(child_element, "AR-RELEASE-VERSION", impl.getArReleaseVersion())
|
|
2037
2469
|
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.getBehaviorRef())
|
|
2470
|
+
self.setChildElementOptionalLiteral(child_element, "VENDOR-API-INFIX", impl.getVendorApiInfix())
|
|
2038
2471
|
self.writeBswImplementationVendorSpecificModuleDefRefs(child_element, impl)
|
|
2039
2472
|
|
|
2040
2473
|
def writeImplementationDataTypeElements(self, element: ET.Element, parent: ImplementationDataType):
|
|
@@ -2071,33 +2504,37 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2071
2504
|
self.writeImplementationDataTypeSymbolProps(child_element, data_type)
|
|
2072
2505
|
self.setChildElementOptionalLiteral(child_element, "TYPE-EMITTER", data_type.getTypeEmitter())
|
|
2073
2506
|
|
|
2074
|
-
def
|
|
2075
|
-
|
|
2507
|
+
def writeArgumentDataPrototype(self, element: ET.Element, prototype: ArgumentDataPrototype):
|
|
2508
|
+
child_element = ET.SubElement(element, "ARGUMENT-DATA-PROTOTYPE")
|
|
2509
|
+
self.writeAutosarDataPrototype(child_element, prototype)
|
|
2510
|
+
self.setChildElementOptionalLiteral(child_element, "DIRECTION", prototype.getDirection())
|
|
2511
|
+
self.setChildElementOptionalLiteral(child_element, "SERVER-ARGUMENT-IMPL-POLICY", prototype.getServerArgumentImplPolicy())
|
|
2512
|
+
|
|
2513
|
+
def writeClientServerOperationArguments(self, element: ET.Element, parent: ClientServerOperation):
|
|
2514
|
+
arguments = parent.getArguments()
|
|
2076
2515
|
if len(arguments) > 0:
|
|
2077
|
-
|
|
2078
|
-
for
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
def writePossibleErrorRefs(self, element: ET.Element, parent: ClientServerOperation):
|
|
2087
|
-
error_refs = parent.getPossbileErrorRefs()
|
|
2516
|
+
child_element = ET.SubElement(element, "ARGUMENTS")
|
|
2517
|
+
for argument in arguments:
|
|
2518
|
+
if isinstance(argument, ArgumentDataPrototype):
|
|
2519
|
+
self.writeArgumentDataPrototype(child_element, argument)
|
|
2520
|
+
else:
|
|
2521
|
+
self.notImplemented("Unsupported Argument <%s>" % type(argument))
|
|
2522
|
+
|
|
2523
|
+
def writeClientServerOperationPossibleErrorRefs(self, element: ET.Element, parent: ClientServerOperation):
|
|
2524
|
+
error_refs = parent.getPossibleErrorRefs()
|
|
2088
2525
|
if len(error_refs) > 0:
|
|
2089
|
-
|
|
2526
|
+
child_element = ET.SubElement(element, "POSSIBLE-ERROR-REFS")
|
|
2090
2527
|
for error_ref in error_refs:
|
|
2091
|
-
self.setChildElementOptionalRefType(
|
|
2528
|
+
self.setChildElementOptionalRefType(child_element, "POSSIBLE-ERROR-REF", error_ref)
|
|
2092
2529
|
|
|
2093
2530
|
def writeClientServerOperation(self, element: ET.Element, operation: ClientServerOperation):
|
|
2094
2531
|
self.logger.debug("writeClientServerOperation %s" % operation.getShortName())
|
|
2095
2532
|
child_element = ET.SubElement(element, "CLIENT-SERVER-OPERATION")
|
|
2096
2533
|
self.writeIdentifiable(child_element, operation)
|
|
2097
|
-
self.
|
|
2098
|
-
self.
|
|
2534
|
+
self.writeClientServerOperationArguments(child_element, operation)
|
|
2535
|
+
self.writeClientServerOperationPossibleErrorRefs(child_element, operation)
|
|
2099
2536
|
|
|
2100
|
-
def
|
|
2537
|
+
def writeClientServerInterfaceOperations(self, element: ET.Element, parent: ClientServerInterface):
|
|
2101
2538
|
operations = parent.getOperations()
|
|
2102
2539
|
if len(operations) > 0:
|
|
2103
2540
|
operations_tag = ET.SubElement(element, "OPERATIONS")
|
|
@@ -2105,7 +2542,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2105
2542
|
if isinstance(operation, ClientServerOperation):
|
|
2106
2543
|
self.writeClientServerOperation(operations_tag, operation)
|
|
2107
2544
|
else:
|
|
2108
|
-
self.
|
|
2545
|
+
self.notImplemented("Unsupported Operation <%s>" % type(operation))
|
|
2109
2546
|
|
|
2110
2547
|
def writeApplicationError(self, element: ET.Element, error: ApplicationError):
|
|
2111
2548
|
self.logger.debug("writeApplicationError %s" % error.getShortName())
|
|
@@ -2121,24 +2558,27 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2121
2558
|
if isinstance(error, ApplicationError):
|
|
2122
2559
|
self.writeApplicationError(errors_tag, error)
|
|
2123
2560
|
else:
|
|
2124
|
-
self.
|
|
2561
|
+
self.notImplemented("Unsupported PossibleError %s" % type(error))
|
|
2125
2562
|
|
|
2126
|
-
def
|
|
2563
|
+
def writePortInterface(self, element: ET.Element, port_interface: PortInterface):
|
|
2127
2564
|
self.writeIdentifiable(element, port_interface)
|
|
2128
2565
|
self.setChildElementOptionalBooleanValue(element, "IS-SERVICE", port_interface.isService)
|
|
2129
2566
|
self.setChildElementOptionalLiteral(element, "SERVICE-KIND", port_interface.serviceKind)
|
|
2130
2567
|
|
|
2131
|
-
def
|
|
2132
|
-
self.
|
|
2568
|
+
def writeDataInterface(self, element: ET.Element, interface: DataInterface):
|
|
2569
|
+
self.writePortInterface(element, interface)
|
|
2570
|
+
|
|
2571
|
+
def writeParameterInterface(self, element: ET.Element, interface: ParameterInterface):
|
|
2572
|
+
self.logger.debug("Write ParameterInterface %s" % interface.getShortName())
|
|
2133
2573
|
child_element = ET.SubElement(element, "PARAMETER-INTERFACE")
|
|
2134
|
-
self.
|
|
2135
|
-
self.
|
|
2574
|
+
self.writeDataInterface(child_element, interface)
|
|
2575
|
+
self.writeSwcInternalBehaviorParameterDataPrototypes(child_element, "PARAMETERS", interface.getParameters())
|
|
2136
2576
|
|
|
2137
2577
|
def writeClientServerInterface(self, element: ET.Element, cs_interface: ClientServerInterface):
|
|
2138
2578
|
self.logger.debug("writeClientServerInterface %s" % cs_interface.getShortName())
|
|
2139
2579
|
child_element = ET.SubElement(element, "CLIENT-SERVER-INTERFACE")
|
|
2140
|
-
self.
|
|
2141
|
-
self.
|
|
2580
|
+
self.writePortInterface(child_element, cs_interface)
|
|
2581
|
+
self.writeClientServerInterfaceOperations(child_element, cs_interface)
|
|
2142
2582
|
self.writePossibleErrors(child_element, cs_interface)
|
|
2143
2583
|
|
|
2144
2584
|
def writeApplicationSwComponentType(self, element: ET.Element, sw_component: ApplicationSwComponentType):
|
|
@@ -2154,7 +2594,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2154
2594
|
def setApplicationArrayElement(self, element: ET.Element, array_element: ApplicationArrayElement):
|
|
2155
2595
|
if array_element is not None:
|
|
2156
2596
|
child_element = ET.SubElement(element, "ELEMENT")
|
|
2157
|
-
self.
|
|
2597
|
+
self.writeApplicationCompositeElementDataPrototype(child_element, array_element)
|
|
2158
2598
|
self.setChildElementOptionalLiteral(child_element, "ARRAY-SIZE-HANDLING", array_element.getArraySizeHandling())
|
|
2159
2599
|
self.setChildElementOptionalLiteral(child_element, "ARRAY-SIZE-SEMANTICS", array_element.getArraySizeSemantics())
|
|
2160
2600
|
self.setChildElementOptionalNumericalValue(child_element, "MAX-NUMBER-OF-ELEMENTS", array_element.getMaxNumberOfElements())
|
|
@@ -2185,12 +2625,12 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2185
2625
|
child_element = ET.SubElement(element, key)
|
|
2186
2626
|
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", group.getShortLabel())
|
|
2187
2627
|
self.setChildElementOptionalLiteral(child_element, "CATEGORY", group.getCategory())
|
|
2188
|
-
#self.writeSwRecordLayoutGroupSwRecordLayoutGroupContentType(child_element, group)
|
|
2189
2628
|
self.setChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-AXIS", group.getSwRecordLayoutGroupAxis())
|
|
2190
2629
|
self.setChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-INDEX", group.getSwRecordLayoutGroupIndex())
|
|
2191
2630
|
self.setChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-FROM", group.getSwRecordLayoutGroupFrom())
|
|
2192
2631
|
self.setChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-TO", group.getSwRecordLayoutGroupTo())
|
|
2193
2632
|
self.setChildElementOptionalIntegerValue(child_element, "SW-RECORD-LAYOUT-GROUP-STEP", group.getSwRecordLayoutGroupStep())
|
|
2633
|
+
self.writeSwRecordLayoutGroupSwRecordLayoutGroupContentType(child_element, group)
|
|
2194
2634
|
|
|
2195
2635
|
def writeSwRecordLayout(self, element: ET.Element, layout: SwRecordLayout):
|
|
2196
2636
|
self.logger.debug("writeSwRecordLayout %s" % layout.getShortName())
|
|
@@ -2213,7 +2653,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2213
2653
|
|
|
2214
2654
|
def writeTriggerInterface(self, element: ET.Element, trigger_if: TriggerInterface):
|
|
2215
2655
|
self.logger.debug("writeTriggerInterface %s" % trigger_if.getShortName())
|
|
2216
|
-
child_element = ET.SubElement(element, "TRIGGER-INTERFACE")
|
|
2656
|
+
# child_element = ET.SubElement(element, "TRIGGER-INTERFACE")
|
|
2657
|
+
# self.writePortInterface()
|
|
2217
2658
|
|
|
2218
2659
|
def writeServiceSwComponentType(self, element: ET.Element, sw_component: ServiceSwComponentType):
|
|
2219
2660
|
self.logger.debug("writeServiceSwComponentType %s" % sw_component.getShortName())
|
|
@@ -2278,7 +2719,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2278
2719
|
def writeModeSwitchInterface(self, element: ET.Element, mode_interface: ModeSwitchInterface):
|
|
2279
2720
|
self.logger.debug("writeModeSwitchInterface %s" % mode_interface.getShortName())
|
|
2280
2721
|
child_element = ET.SubElement(element, "MODE-SWITCH-INTERFACE")
|
|
2281
|
-
self.
|
|
2722
|
+
self.writePortInterface(child_element, mode_interface)
|
|
2282
2723
|
self.writeModeSwitchInterfaceModeGroup(child_element, mode_interface)
|
|
2283
2724
|
|
|
2284
2725
|
def setEOCExecutableEntityRefSuccessorRefs(self, element: ET.Element, successor_refs: List[RefType]):
|
|
@@ -2300,7 +2741,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2300
2741
|
if isinstance(order_element, EOCExecutableEntityRef):
|
|
2301
2742
|
self.writeEOCExecutableEntityRef(child_element, order_element)
|
|
2302
2743
|
else:
|
|
2303
|
-
self.
|
|
2744
|
+
self.notImplemented("Unsupported order element <%s>" % type(order_element))
|
|
2304
2745
|
|
|
2305
2746
|
def writeExecutionOrderConstraint(self, element: ET.Element, constraint: ExecutionOrderConstraint):
|
|
2306
2747
|
self.logger.debug("writeExecutionOrderConstraint %s" % constraint.getShortName())
|
|
@@ -2316,7 +2757,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2316
2757
|
if isinstance(requirement, ExecutionOrderConstraint):
|
|
2317
2758
|
self.writeExecutionOrderConstraint(child_element, requirement)
|
|
2318
2759
|
else:
|
|
2319
|
-
self.
|
|
2760
|
+
self.notImplemented("Unsupported timing requirement <%s>" % type(requirement))
|
|
2320
2761
|
|
|
2321
2762
|
def writeTimingExtension(self, element: ET.Element, extension: TimingExtension):
|
|
2322
2763
|
self.writeTimingRequirements(element, extension)
|
|
@@ -2340,7 +2781,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2340
2781
|
|
|
2341
2782
|
def writeFrame(self, element: ET.Element, frame: Frame):
|
|
2342
2783
|
self.writeIdentifiable(element, frame)
|
|
2343
|
-
self.setChildElementOptionalNumericalValue(element, "FRAME-LENGTH",
|
|
2784
|
+
self.setChildElementOptionalNumericalValue(element, "FRAME-LENGTH", frame.frameLength)
|
|
2344
2785
|
self.writePduToFrameMappings(element, frame)
|
|
2345
2786
|
|
|
2346
2787
|
def writeLinUnconditionalFrame(self, element: ET.Element, frame: LinUnconditionalFrame):
|
|
@@ -2417,7 +2858,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2417
2858
|
self.logger.debug("Write NmConfigNmClusterCouplings <%s>" % config.getShortName())
|
|
2418
2859
|
couplings = config.getNmClusterCouplings()
|
|
2419
2860
|
if len(couplings) > 0:
|
|
2420
|
-
child_element= ET.SubElement(element, "NM-CLUSTER-COUPLINGS")
|
|
2861
|
+
child_element = ET.SubElement(element, "NM-CLUSTER-COUPLINGS")
|
|
2421
2862
|
for coupling in couplings:
|
|
2422
2863
|
if isinstance(coupling, CanNmClusterCoupling):
|
|
2423
2864
|
self.writeCanNmClusterCoupling(child_element, coupling)
|
|
@@ -2573,7 +3014,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2573
3014
|
if props is not None:
|
|
2574
3015
|
child_element = ET.SubElement(element, key)
|
|
2575
3016
|
self.setChildElementOptionalPositiveInteger(child_element, "AUTH-DATA-FRESHNESS-LENGTH", props.getAuthDataFreshnessLength())
|
|
2576
|
-
self.setChildElementOptionalPositiveInteger(child_element, "AUTH-DATA-FRESHNESS-START-POSITION", props.getAuthDataFreshnessStartPosition())
|
|
3017
|
+
self.setChildElementOptionalPositiveInteger(child_element, "AUTH-DATA-FRESHNESS-START-POSITION", props.getAuthDataFreshnessStartPosition()) # noqa E501
|
|
2577
3018
|
self.setChildElementOptionalPositiveInteger(child_element, "AUTH-INFO-TX-LENGTH", props.getAuthInfoTxLength())
|
|
2578
3019
|
self.setChildElementOptionalPositiveInteger(child_element, "AUTHENTICATION-BUILD-ATTEMPTS", props.getAuthenticationBuildAttempts())
|
|
2579
3020
|
self.setChildElementOptionalPositiveInteger(child_element, "AUTHENTICATION-RETRIES", props.getAuthenticationRetries())
|
|
@@ -2712,7 +3153,6 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2712
3153
|
else:
|
|
2713
3154
|
self.notImplemented("Unsupported TpNode <%s>" % type(tp_node))
|
|
2714
3155
|
|
|
2715
|
-
|
|
2716
3156
|
def writeCanTpConfig(self, element: ET.Element, config: CanTpConfig):
|
|
2717
3157
|
self.logger.debug("Write CanTpConfig <%s>" % config.getShortName())
|
|
2718
3158
|
child_element = ET.SubElement(element, "CAN-TP-CONFIG")
|
|
@@ -2791,6 +3231,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2791
3231
|
self.writeLinTpConfigTpNodes(child_element, config)
|
|
2792
3232
|
|
|
2793
3233
|
def writeFrameTriggering(self, element: ET.Element, triggering: FrameTriggering):
|
|
3234
|
+
self.writeIdentifiable(element, triggering)
|
|
2794
3235
|
ref_list = triggering.getFramePortRefs()
|
|
2795
3236
|
if len(ref_list) > 0:
|
|
2796
3237
|
frame_port_refs_tag = ET.SubElement(element, "FRAME-PORT-REFS")
|
|
@@ -2802,13 +3243,12 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2802
3243
|
if len(refs) > 0:
|
|
2803
3244
|
triggerings_tag = ET.SubElement(element, "PDU-TRIGGERINGS")
|
|
2804
3245
|
for ref in refs:
|
|
2805
|
-
|
|
2806
|
-
|
|
3246
|
+
child_element = ET.SubElement(triggerings_tag, 'PDU-TRIGGERING-REF-CONDITIONAL')
|
|
3247
|
+
self.setChildElementOptionalRefType(child_element, "PDU-TRIGGERING-REF", ref)
|
|
2807
3248
|
|
|
2808
3249
|
def writeCanFrameTriggering(self, element: ET.Element, triggering: CanFrameTriggering):
|
|
2809
3250
|
self.logger.debug("WRite CanFrameTriggering %s" % triggering.getShortName())
|
|
2810
3251
|
child_element = ET.SubElement(element, "CAN-FRAME-TRIGGERING")
|
|
2811
|
-
self.writeIdentifiable(child_element, triggering)
|
|
2812
3252
|
self.writeFrameTriggering(child_element, triggering)
|
|
2813
3253
|
self.setChildElementOptionalLiteral(child_element, "CAN-ADDRESSING-MODE", triggering.getCanAddressingMode())
|
|
2814
3254
|
self.setChildElementOptionalBooleanValue(child_element, "CAN-FD-FRAME-SUPPORT", triggering.getCanFdFrameSupport())
|
|
@@ -2820,11 +3260,55 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2820
3260
|
def writeLinFrameTriggering(self, element: ET.Element, triggering: LinFrameTriggering):
|
|
2821
3261
|
self.logger.debug("Write LinFrameTriggering %s" % triggering.getShortName())
|
|
2822
3262
|
child_element = ET.SubElement(element, "LIN-FRAME-TRIGGERING")
|
|
2823
|
-
self.writeIdentifiable(child_element, triggering)
|
|
2824
3263
|
self.writeFrameTriggering(child_element, triggering)
|
|
2825
3264
|
self.setChildElementOptionalNumericalValue(child_element, "IDENTIFIER", triggering.getIdentifier())
|
|
2826
3265
|
self.setChildElementOptionalLiteral(child_element, "LIN-CHECKSUM", triggering.getLinChecksum())
|
|
2827
3266
|
|
|
3267
|
+
def writeCommunicationCycle(self, element: ET.Element, cycle: CommunicationCycle):
|
|
3268
|
+
self.writeARObjectAttributes(element, cycle)
|
|
3269
|
+
|
|
3270
|
+
def writeCycleRepetition(self, element: ET.Element, cycle: CycleRepetition):
|
|
3271
|
+
if cycle is not None:
|
|
3272
|
+
child_element = ET.SubElement(element, "CYCLE-REPETITION")
|
|
3273
|
+
self.writeCommunicationCycle(child_element, cycle)
|
|
3274
|
+
self.setChildElementOptionalIntegerValue(child_element, "BASE-CYCLE", cycle.getBaseCycle())
|
|
3275
|
+
self.setChildElementOptionalLiteral(child_element, "CYCLE-REPETITION", cycle.getCycleRepetition())
|
|
3276
|
+
|
|
3277
|
+
def writeFlexrayAbsolutelyScheduledTimingCommunicationCycle(self, element: ET.Element, timing: FlexrayAbsolutelyScheduledTiming):
|
|
3278
|
+
cycle = timing.getCommunicationCycle()
|
|
3279
|
+
if cycle is not None:
|
|
3280
|
+
child_element = ET.SubElement(element, "COMMUNICATION-CYCLE")
|
|
3281
|
+
if isinstance(cycle, CycleRepetition):
|
|
3282
|
+
self.writeCycleRepetition(child_element, cycle)
|
|
3283
|
+
else:
|
|
3284
|
+
self.notImplemented("Unsupported CommunicationCycle <%s>" % type(child_element))
|
|
3285
|
+
|
|
3286
|
+
def writeFlexrayAbsolutelyScheduledTiming(self, element: ET.Element, timing: FlexrayAbsolutelyScheduledTiming):
|
|
3287
|
+
if timing is not None:
|
|
3288
|
+
child_element = ET.SubElement(element, "FLEXRAY-ABSOLUTELY-SCHEDULED-TIMING")
|
|
3289
|
+
self.writeARObjectAttributes(child_element, timing)
|
|
3290
|
+
self.writeFlexrayAbsolutelyScheduledTimingCommunicationCycle(child_element, timing)
|
|
3291
|
+
self.setChildElementOptionalPositiveInteger(child_element, "SLOT-ID", timing.getSlotID())
|
|
3292
|
+
|
|
3293
|
+
def writeFlexrayFrameTriggeringAbsolutelyScheduledTimings(self, element: ET.Element, triggering: FlexrayFrameTriggering):
|
|
3294
|
+
timings = triggering.getAbsolutelyScheduledTimings()
|
|
3295
|
+
if len(timings) > 0:
|
|
3296
|
+
child_element = ET.SubElement(element, "ABSOLUTELY-SCHEDULED-TIMINGS")
|
|
3297
|
+
for timing in timings:
|
|
3298
|
+
if isinstance(timing, FlexrayAbsolutelyScheduledTiming):
|
|
3299
|
+
self.writeFlexrayAbsolutelyScheduledTiming(child_element, timing)
|
|
3300
|
+
else:
|
|
3301
|
+
self.notImplemented("Unsupported AbsolutelyScheduledTiming <%s>" % type(timing))
|
|
3302
|
+
|
|
3303
|
+
def writeFlexrayFrameTriggering(self, element: ET.Element, triggering: FlexrayFrameTriggering):
|
|
3304
|
+
self.logger.debug("Write FlexrayFrameTriggering %s" % triggering.getShortName())
|
|
3305
|
+
child_element = ET.SubElement(element, "FLEXRAY-FRAME-TRIGGERING")
|
|
3306
|
+
self.writeFrameTriggering(child_element, triggering)
|
|
3307
|
+
self.writeFlexrayFrameTriggeringAbsolutelyScheduledTimings(child_element, triggering)
|
|
3308
|
+
self.setChildElementOptionalBooleanValue(child_element, "ALLOW-DYNAMIC-L-SDU-LENGTH", triggering.getAllowDynamicLSduLength())
|
|
3309
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MESSAGE-ID", triggering.getMessageId())
|
|
3310
|
+
self.setChildElementOptionalBooleanValue(child_element, "PAYLOAD-PREAMBLE-INDICATOR", triggering.getPayloadPreambleIndicator())
|
|
3311
|
+
|
|
2828
3312
|
def writeISignalTriggering(self, element: ET.Element, triggering: ISignalTriggering):
|
|
2829
3313
|
self.logger.debug("Write ISignalTriggering %s" % triggering.getShortName())
|
|
2830
3314
|
child_element = ET.SubElement(element, "I-SIGNAL-TRIGGERING")
|
|
@@ -2852,17 +3336,18 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2852
3336
|
if len(refs) > 0:
|
|
2853
3337
|
triggerings_tag = ET.SubElement(child_element, "I-SIGNAL-TRIGGERINGS")
|
|
2854
3338
|
for ref in refs:
|
|
2855
|
-
|
|
2856
|
-
|
|
3339
|
+
child_element = ET.SubElement(triggerings_tag, 'I-SIGNAL-TRIGGERING-REF-CONDITIONAL')
|
|
3340
|
+
self.setChildElementOptionalRefType(child_element, "I-SIGNAL-TRIGGERING-REF", ref)
|
|
2857
3341
|
|
|
2858
|
-
def
|
|
3342
|
+
def writePhysicalChannelCommConnectorRefs(self, element, channel):
|
|
2859
3343
|
connectors = channel.getCommConnectorRefs()
|
|
2860
3344
|
if len(connectors) > 0:
|
|
2861
3345
|
connectors_tag = ET.SubElement(element, "COMM-CONNECTORS")
|
|
2862
3346
|
for connector in connectors:
|
|
2863
|
-
|
|
2864
|
-
|
|
3347
|
+
child_element = ET.SubElement(connectors_tag, 'COMMUNICATION-CONNECTOR-REF-CONDITIONAL')
|
|
3348
|
+
self.setChildElementOptionalRefType(child_element, "COMMUNICATION-CONNECTOR-REF", connector)
|
|
2865
3349
|
|
|
3350
|
+
def writePhysicalChannelFrameTriggerings(self, element, channel):
|
|
2866
3351
|
triggerings = channel.getFrameTriggerings()
|
|
2867
3352
|
if len(triggerings) > 0:
|
|
2868
3353
|
triggerings_tag = ET.SubElement(element, "FRAME-TRIGGERINGS")
|
|
@@ -2871,9 +3356,12 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2871
3356
|
self.writeCanFrameTriggering(triggerings_tag, triggering)
|
|
2872
3357
|
elif isinstance(triggering, LinFrameTriggering):
|
|
2873
3358
|
self.writeLinFrameTriggering(triggerings_tag, triggering)
|
|
3359
|
+
elif isinstance(triggering, FlexrayFrameTriggering):
|
|
3360
|
+
self.writeFlexrayFrameTriggering(triggerings_tag, triggering)
|
|
2874
3361
|
else:
|
|
2875
3362
|
self.notImplemented("Unsupported Frame Triggering <%s>" % type(triggering))
|
|
2876
|
-
|
|
3363
|
+
|
|
3364
|
+
def writePhysicalChannelISignalTriggerings(self, element, channel):
|
|
2877
3365
|
triggerings = channel.getISignalTriggerings()
|
|
2878
3366
|
if len(triggerings) > 0:
|
|
2879
3367
|
triggerings_tag = ET.SubElement(element, "I-SIGNAL-TRIGGERINGS")
|
|
@@ -2882,7 +3370,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2882
3370
|
self.writeISignalTriggering(triggerings_tag, triggering)
|
|
2883
3371
|
else:
|
|
2884
3372
|
self.notImplemented("Unsupported ISignalTriggering <%s>" % type(triggering))
|
|
2885
|
-
|
|
3373
|
+
|
|
3374
|
+
def writePhysicalChannelPduTriggerings(self, element, channel):
|
|
2886
3375
|
triggerings = channel.getPduTriggerings()
|
|
2887
3376
|
if len(triggerings) > 0:
|
|
2888
3377
|
triggerings_tag = ET.SubElement(element, "PDU-TRIGGERINGS")
|
|
@@ -2892,10 +3381,17 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2892
3381
|
else:
|
|
2893
3382
|
self.notImplemented("Unsupported PduTriggering <%s>" % type(triggering))
|
|
2894
3383
|
|
|
3384
|
+
def writePhysicalChannel(self, element: ET.Element, channel: PhysicalChannel):
|
|
3385
|
+
self.writeIdentifiable(element, channel)
|
|
3386
|
+
|
|
3387
|
+
self.writePhysicalChannelCommConnectorRefs(element, channel)
|
|
3388
|
+
self.writePhysicalChannelFrameTriggerings(element, channel)
|
|
3389
|
+
self.writePhysicalChannelISignalTriggerings(element, channel)
|
|
3390
|
+
self.writePhysicalChannelPduTriggerings(element, channel)
|
|
3391
|
+
|
|
2895
3392
|
def writeCanPhysicalChannel(self, element: ET.Element, channel: CanPhysicalChannel):
|
|
2896
3393
|
self.logger.debug("Set CanPhysicalChannel %s" % channel.getShortName())
|
|
2897
3394
|
child_element = ET.SubElement(element, "CAN-PHYSICAL-CHANNEL")
|
|
2898
|
-
self.writeIdentifiable(child_element, channel)
|
|
2899
3395
|
self.writePhysicalChannel(child_element, channel)
|
|
2900
3396
|
|
|
2901
3397
|
def writeScheduleTableEntry(self, element: ET.Element, entry: ScheduleTableEntry):
|
|
@@ -2938,7 +3434,6 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2938
3434
|
def writeLinPhysicalChannel(self, element: ET.Element, channel: LinPhysicalChannel):
|
|
2939
3435
|
self.logger.debug("Set LinPhysicalChannel %s" % channel.getShortName())
|
|
2940
3436
|
child_element = ET.SubElement(element, "LIN-PHYSICAL-CHANNEL")
|
|
2941
|
-
self.writeIdentifiable(child_element, channel)
|
|
2942
3437
|
self.writePhysicalChannel(child_element, channel)
|
|
2943
3438
|
self.writeLinPhysicalChannelScheduleTables(child_element, channel)
|
|
2944
3439
|
|
|
@@ -2986,7 +3481,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2986
3481
|
for end_point in end_points:
|
|
2987
3482
|
self.writeNetworkEndPoint(child_element, end_point)
|
|
2988
3483
|
|
|
2989
|
-
def setSocketConnectionIpduIdentifier(self, element: ET.Element,identifier: SocketConnectionIpduIdentifier):
|
|
3484
|
+
def setSocketConnectionIpduIdentifier(self, element: ET.Element, identifier: SocketConnectionIpduIdentifier):
|
|
2990
3485
|
if identifier is not None:
|
|
2991
3486
|
child_element = ET.SubElement(element, "SOCKET-CONNECTION-IPDU-IDENTIFIER")
|
|
2992
3487
|
self.setChildElementOptionalPositiveInteger(child_element, "HEADER-ID", identifier.getHeaderId())
|
|
@@ -3007,8 +3502,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3007
3502
|
def setSocketConnection(self, element: ET.Element, connection: SocketConnection):
|
|
3008
3503
|
if connection is not None:
|
|
3009
3504
|
child_element = ET.SubElement(element, "SOCKET-CONNECTION")
|
|
3010
|
-
self.setChildElementOptionalBooleanValue(child_element, "CLIENT-IP-ADDR-FROM-CONNECTION-REQUEST", connection.getClientIpAddrFromConnectionRequest())
|
|
3011
|
-
self.setChildElementOptionalBooleanValue(child_element, "CLIENT-PORT-FROM-CONNECTION-REQUEST", connection.getClientPortFromConnectionRequest())
|
|
3505
|
+
self.setChildElementOptionalBooleanValue(child_element, "CLIENT-IP-ADDR-FROM-CONNECTION-REQUEST", connection.getClientIpAddrFromConnectionRequest()) # noqa E501
|
|
3506
|
+
self.setChildElementOptionalBooleanValue(child_element, "CLIENT-PORT-FROM-CONNECTION-REQUEST", connection.getClientPortFromConnectionRequest()) # noqa E501
|
|
3012
3507
|
self.setChildElementOptionalRefType(child_element, "CLIENT-PORT-REF", connection.getClientPortRef())
|
|
3013
3508
|
self.setSocketConnectionPdus(child_element, "PDUS", connection.getPdus())
|
|
3014
3509
|
self.setChildElementOptionalPositiveInteger(child_element, "PDU-COLLECTION-MAX-BUFFER-SIZE", connection.getPduCollectionMaxBufferSize())
|
|
@@ -3095,14 +3590,6 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3095
3590
|
self.setChildElementOptionalTimeValue(child_element, "MAX-VALUE", delay.getMaxValue())
|
|
3096
3591
|
self.setChildElementOptionalTimeValue(child_element, "MIN-VALUE", delay.getMinValue())
|
|
3097
3592
|
|
|
3098
|
-
def setInitialSdDelayConfig(self, element: ET.Element, key: str, config: InitialSdDelayConfig):
|
|
3099
|
-
if config is not None:
|
|
3100
|
-
child_element = ET.SubElement(element, key)
|
|
3101
|
-
self.setChildElementOptionalTimeValue(child_element, "INITIAL-DELAY-MAX-VALUE", config.getInitialDelayMaxValue())
|
|
3102
|
-
self.setChildElementOptionalTimeValue(child_element, "INITIAL-DELAY-MIN-VALUE", config.getInitialDelayMinValue())
|
|
3103
|
-
self.setChildElementOptionalTimeValue(child_element, "INITIAL-REPETITIONS-BASE-DELAY", config.getInitialRepetitionsBaseDelay())
|
|
3104
|
-
self.setChildElementOptionalPositiveInteger(child_element, "INITIAL-REPETITIONS-MAX", config.getInitialRepetitionsMax())
|
|
3105
|
-
|
|
3106
3593
|
def setSdClientConfig(self, element: ET.Element, key: str, config: SdClientConfig):
|
|
3107
3594
|
if config is not None:
|
|
3108
3595
|
child_element = ET.SubElement(element, key)
|
|
@@ -3130,7 +3617,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3130
3617
|
if isinstance(group, ConsumedEventGroup):
|
|
3131
3618
|
self.writeConsumedEventGroup(child_element, group)
|
|
3132
3619
|
else:
|
|
3133
|
-
self.notImplemented("Unsupported ConsumedEventGroups <%s>" % type(group))
|
|
3620
|
+
self.notImplemented("Unsupported ConsumedEventGroups <%s>" % type(group))
|
|
3134
3621
|
|
|
3135
3622
|
def writeConsumedServiceInstance(self, element: ET.Element, instance: ConsumedServiceInstance):
|
|
3136
3623
|
if instance is not None:
|
|
@@ -3147,7 +3634,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3147
3634
|
for instance in instances:
|
|
3148
3635
|
if isinstance(instance, ConsumedServiceInstance):
|
|
3149
3636
|
self.writeConsumedServiceInstance(child_element, instance)
|
|
3150
|
-
else:
|
|
3637
|
+
else:
|
|
3151
3638
|
self.notImplemented("Unsupported ConsumedServiceInstances <%s>" % type(instance))
|
|
3152
3639
|
|
|
3153
3640
|
def setInitialSdDelayConfig(self, element: ET.Element, key: str, config: InitialSdDelayConfig):
|
|
@@ -3241,7 +3728,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3241
3728
|
self.writeIdentifiable(child_element, address)
|
|
3242
3729
|
self.writeSocketAddressApplicationEndpoint(child_element, address)
|
|
3243
3730
|
self.writeSocketAddressMulticastConnectorRefs(child_element, address)
|
|
3244
|
-
self.setChildElementOptionalRefType(child_element, "CONNECTOR-REF", address.getConnectorRef())
|
|
3731
|
+
self.setChildElementOptionalRefType(child_element, "CONNECTOR-REF", address.getConnectorRef())
|
|
3245
3732
|
self.setChildElementOptionalPositiveInteger(child_element, "PORT-ADDRESS", address.getPortAddress())
|
|
3246
3733
|
|
|
3247
3734
|
def writeSoAdConfigSocketAddresses(self, element: ET.Element, config: SoAdConfig):
|
|
@@ -3270,12 +3757,17 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3270
3757
|
def writeEthernetPhysicalChannel(self, element: ET.Element, channel: EthernetPhysicalChannel):
|
|
3271
3758
|
self.logger.debug("Set EthernetPhysicalChannel %s" % channel.getShortName())
|
|
3272
3759
|
child_element = ET.SubElement(element, "ETHERNET-PHYSICAL-CHANNEL")
|
|
3273
|
-
self.writeIdentifiable(child_element, channel)
|
|
3274
3760
|
self.writePhysicalChannel(child_element, channel)
|
|
3275
3761
|
self.writeEthernetPhysicalChannelNetworkEndPoints(child_element, channel.getNetworkEndpoints())
|
|
3276
3762
|
self.writeSoAdConfig(child_element, "SO-AD-CONFIG", channel.getSoAdConfig())
|
|
3277
3763
|
self.writeEthernetPhysicalChannelVlan(child_element, channel)
|
|
3278
3764
|
|
|
3765
|
+
def writeFlexrayPhysicalChannel(self, element: ET.Element, channel: FlexrayPhysicalChannel):
|
|
3766
|
+
self.logger.debug("Set FlexrayPhysicalChannel %s" % channel.getShortName())
|
|
3767
|
+
child_element = ET.SubElement(element, "FLEXRAY-PHYSICAL-CHANNEL")
|
|
3768
|
+
self.writePhysicalChannel(child_element, channel)
|
|
3769
|
+
self.setChildElementOptionalLiteral(child_element, "CHANNEL-NAME", channel.getChannelName())
|
|
3770
|
+
|
|
3279
3771
|
def writeCommunicationClusterPhysicalChannels(self, element: ET.Element, cluster: CommunicationCluster):
|
|
3280
3772
|
channels = cluster.getPhysicalChannels()
|
|
3281
3773
|
if len(channels) > 0:
|
|
@@ -3287,6 +3779,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3287
3779
|
self.writeLinPhysicalChannel(child_element, channel)
|
|
3288
3780
|
elif isinstance(channel, EthernetPhysicalChannel):
|
|
3289
3781
|
self.writeEthernetPhysicalChannel(child_element, channel)
|
|
3782
|
+
elif isinstance(channel, FlexrayPhysicalChannel):
|
|
3783
|
+
self.writeFlexrayPhysicalChannel(child_element, channel)
|
|
3290
3784
|
else:
|
|
3291
3785
|
self.notImplemented("Unsupported Physical Channel <%s>" % type(channel))
|
|
3292
3786
|
|
|
@@ -3309,22 +3803,130 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3309
3803
|
self.setChildElementOptionalNumericalValue(element, "SPEED", cluster.getSpeed())
|
|
3310
3804
|
|
|
3311
3805
|
def writeLinCluster(self, element: ET.Element, cluster: LinCluster):
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3806
|
+
if cluster is not None:
|
|
3807
|
+
self.logger.debug("LinCluster %s" % cluster.getShortName())
|
|
3808
|
+
child_element = ET.SubElement(element, "LIN-CLUSTER")
|
|
3809
|
+
self.writeIdentifiable(child_element, cluster)
|
|
3810
|
+
|
|
3811
|
+
child_element = ET.SubElement(child_element, "LIN-CLUSTER-VARIANTS")
|
|
3812
|
+
child_element = ET.SubElement(child_element, "LIN-CLUSTER-CONDITIONAL")
|
|
3813
|
+
self.writeCommunicationCluster(child_element, cluster)
|
|
3318
3814
|
|
|
3319
3815
|
def writeCanCluster(self, element: ET.Element, cluster: CanCluster):
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3816
|
+
if cluster is not None:
|
|
3817
|
+
self.logger.debug("CanCluster %s" % cluster.getShortName())
|
|
3818
|
+
child_element = ET.SubElement(element, "CAN-CLUSTER")
|
|
3819
|
+
self.writeIdentifiable(child_element, cluster)
|
|
3820
|
+
|
|
3821
|
+
child_element = ET.SubElement(child_element, "CAN-CLUSTER-VARIANTS")
|
|
3822
|
+
child_element = ET.SubElement(child_element, "CAN-CLUSTER-CONDITIONAL")
|
|
3823
|
+
self.writeCommunicationCluster(child_element, cluster)
|
|
3824
|
+
self.writeAbstractCanCluster(child_element, cluster)
|
|
3825
|
+
|
|
3826
|
+
def writeFlexrayCluster(self, element: ET.Element, cluster: FlexrayCluster):
|
|
3827
|
+
if cluster is not None:
|
|
3828
|
+
self.logger.debug("Write FlexrayCluster <%s>" % cluster.getShortName())
|
|
3829
|
+
child_element = ET.SubElement(element, "FLEXRAY-CLUSTER")
|
|
3830
|
+
self.writeIdentifiable(child_element, cluster)
|
|
3831
|
+
|
|
3832
|
+
child_element = ET.SubElement(child_element, "FLEXRAY-CLUSTER-VARIANTS")
|
|
3833
|
+
child_element = ET.SubElement(child_element, "FLEXRAY-CLUSTER-CONDITIONAL")
|
|
3834
|
+
self.writeCommunicationCluster(child_element, cluster)
|
|
3835
|
+
|
|
3836
|
+
self.setChildElementOptionalIntegerValue(child_element, "ACTION-POINT-OFFSET", cluster.getActionPointOffset())
|
|
3837
|
+
self.setChildElementOptionalTimeValue(child_element, "BIT", cluster.getBit())
|
|
3838
|
+
self.setChildElementOptionalIntegerValue(child_element, "CAS-RX-LOW-MAX", cluster.getCasRxLowMax())
|
|
3839
|
+
self.setChildElementOptionalIntegerValue(child_element, "COLD-START-ATTEMPTS", cluster.getColdStartAttempts())
|
|
3840
|
+
self.setChildElementOptionalTimeValue(child_element, "CYCLE", cluster.getCycle())
|
|
3841
|
+
self.setChildElementOptionalIntegerValue(child_element, "CYCLE-COUNT-MAX", cluster.getCycleCountMax())
|
|
3842
|
+
self.setChildElementOptionalBooleanValue(child_element, "DETECT-NIT-ERROR", cluster.getDetectNitError())
|
|
3843
|
+
self.setChildElementOptionalIntegerValue(child_element, "DYNAMIC-SLOT-IDLE-PHASE", cluster.getDynamicSlotIdlePhase())
|
|
3844
|
+
self.setChildElementOptionalIntegerValue(child_element, "IGNORE-AFTER-TX", cluster.getIgnoreAfterTx())
|
|
3845
|
+
self.setChildElementOptionalIntegerValue(child_element, "LISTEN-NOISE", cluster.getListenNoise())
|
|
3846
|
+
self.setChildElementOptionalIntegerValue(child_element, "MACRO-PER-CYCLE", cluster.getMacroPerCycle())
|
|
3847
|
+
self.setChildElementOptionalTimeValue(child_element, "MACROTICK-DURATION", cluster.getMacrotickDuration())
|
|
3848
|
+
self.setChildElementOptionalIntegerValue(child_element, "MAX-WITHOUT-CLOCK-CORRECTION-FATAL", cluster.getMaxWithoutClockCorrectionFatal())
|
|
3849
|
+
self.setChildElementOptionalIntegerValue(child_element, "MAX-WITHOUT-CLOCK-CORRECTION-PASSIVE", cluster.getMaxWithoutClockCorrectionPassive()) # noqa E501
|
|
3850
|
+
self.setChildElementOptionalIntegerValue(child_element, "MINISLOT-ACTION-POINT-OFFSET", cluster.getMinislotActionPointOffset())
|
|
3851
|
+
self.setChildElementOptionalIntegerValue(child_element, "MINISLOT-DURATION", cluster.getMinislotDuration())
|
|
3852
|
+
self.setChildElementOptionalIntegerValue(child_element, "NETWORK-IDLE-TIME", cluster.getNetworkIdleTime())
|
|
3853
|
+
self.setChildElementOptionalIntegerValue(child_element, "NETWORK-MANAGEMENT-VECTOR-LENGTH", cluster.getNetworkManagementVectorLength())
|
|
3854
|
+
self.setChildElementOptionalIntegerValue(child_element, "NUMBER-OF-MINISLOTS", cluster.getNumberOfMinislots())
|
|
3855
|
+
self.setChildElementOptionalIntegerValue(child_element, "NUMBER-OF-STATIC-SLOTS", cluster.getNumberOfStaticSlots())
|
|
3856
|
+
self.setChildElementOptionalIntegerValue(child_element, "OFFSET-CORRECTION-START", cluster.getOffsetCorrectionStart())
|
|
3857
|
+
self.setChildElementOptionalIntegerValue(child_element, "PAYLOAD-LENGTH-STATIC", cluster.getPayloadLengthStatic())
|
|
3858
|
+
self.setChildElementOptionalIntegerValue(child_element, "SAFETY-MARGIN", cluster.getSafetyMargin())
|
|
3859
|
+
self.setChildElementOptionalTimeValue(child_element, "SAMPLE-CLOCK-PERIOD", cluster.getSampleClockPeriod())
|
|
3860
|
+
self.setChildElementOptionalIntegerValue(child_element, "STATIC-SLOT-DURATION", cluster.getStaticSlotDuration())
|
|
3861
|
+
self.setChildElementOptionalIntegerValue(child_element, "SYNC-FRAME-ID-COUNT-MAX", cluster.getSyncFrameIdCountMax())
|
|
3862
|
+
self.setChildElementOptionalIntegerValue(child_element, "TRANSMISSION-START-SEQUENCE-DURATION", cluster.getTransmissionStartSequenceDuration()) # noqa E501
|
|
3863
|
+
self.setChildElementOptionalIntegerValue(child_element, "WAKEUP-RX-IDLE", cluster.getWakeupRxIdle())
|
|
3864
|
+
self.setChildElementOptionalIntegerValue(child_element, "WAKEUP-RX-LOW", cluster.getWakeupRxLow())
|
|
3865
|
+
self.setChildElementOptionalIntegerValue(child_element, "WAKEUP-RX-WINDOW", cluster.getWakeupRxWindow())
|
|
3866
|
+
self.setChildElementOptionalIntegerValue(child_element, "WAKEUP-TX-ACTIVE", cluster.getWakeupTxActive())
|
|
3867
|
+
self.setChildElementOptionalIntegerValue(child_element, "WAKEUP-TX-IDLE", cluster.getWakeupTxIdle())
|
|
3868
|
+
|
|
3869
|
+
def writeCollectionElementRefs(self, element: ET.Element, collection: Collection):
|
|
3870
|
+
refs = collection.getElementRefs()
|
|
3871
|
+
if len(refs) > 0:
|
|
3872
|
+
child_element = ET.SubElement(element, "ELEMENT-REFS")
|
|
3873
|
+
for ref in refs:
|
|
3874
|
+
self.setChildElementOptionalRefType(child_element, "ELEMENT-REF", ref)
|
|
3323
3875
|
|
|
3324
|
-
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3876
|
+
def writeCollectionSourceElementRefs(self, element: ET.Element, collection: Collection):
|
|
3877
|
+
refs = collection.getSourceElementRefs()
|
|
3878
|
+
if len(refs) > 0:
|
|
3879
|
+
child_element = ET.SubElement(element, "SOURCE-ELEMENT-REFS")
|
|
3880
|
+
for ref in refs:
|
|
3881
|
+
self.setChildElementOptionalRefType(child_element, "SOURCE-ELEMENT-REF", ref)
|
|
3882
|
+
|
|
3883
|
+
def writeCollection(self, element: ET.Element, collection: Collection):
|
|
3884
|
+
if collection is not None:
|
|
3885
|
+
child_element = ET.SubElement(element, "COLLECTION")
|
|
3886
|
+
self.writeARElement(child_element, collection)
|
|
3887
|
+
self.setChildElementOptionalLiteral(child_element, "AUTO-COLLECT", collection.getAutoCollect())
|
|
3888
|
+
self.setChildElementOptionalLiteral(child_element, "ELEMENT-ROLE", collection.getElementRole())
|
|
3889
|
+
self.writeCollectionElementRefs(child_element, collection)
|
|
3890
|
+
self.writeCollectionSourceElementRefs(child_element, collection)
|
|
3891
|
+
|
|
3892
|
+
def writeKeywordClassifications(self, element: ET.Element, keyword: Keyword):
|
|
3893
|
+
classifications = keyword.getClassifications()
|
|
3894
|
+
if len(classifications) > 0:
|
|
3895
|
+
child_element = ET.SubElement(element, "CLASSIFICATIONS")
|
|
3896
|
+
for classification in classifications:
|
|
3897
|
+
self.setChildElementOptionalLiteral(child_element, "CLASSIFICATION", classification)
|
|
3898
|
+
|
|
3899
|
+
def writeKeyword(self, element: ET.Element, keyword: Keyword):
|
|
3900
|
+
if keyword is not None:
|
|
3901
|
+
# self.logger.debug("Write Keyword <%s>" % keyword.getShortName())
|
|
3902
|
+
child_element = ET.SubElement(element, "KEYWORD")
|
|
3903
|
+
self.writeIdentifiable(child_element, keyword)
|
|
3904
|
+
self.setChildElementOptionalLiteral(child_element, "ABBR-NAME", keyword.getAbbrName())
|
|
3905
|
+
self.writeKeywordClassifications(child_element, keyword)
|
|
3906
|
+
|
|
3907
|
+
def writeKeywordSetKeywords(self, element: ET.Element, keyword_set: KeywordSet):
|
|
3908
|
+
keywords = keyword_set.getKeywords()
|
|
3909
|
+
if len(keywords) > 0:
|
|
3910
|
+
child_element = ET.SubElement(element, "KEYWORDS")
|
|
3911
|
+
for keyword in keywords:
|
|
3912
|
+
if isinstance(keyword, Keyword):
|
|
3913
|
+
self.writeKeyword(child_element, keyword)
|
|
3914
|
+
else:
|
|
3915
|
+
self.notImplemented("Unsupported Keyword <%s>" % type(keyword))
|
|
3916
|
+
|
|
3917
|
+
def writeKeywordSet(self, element: ET.Element, keyword_set: KeywordSet):
|
|
3918
|
+
if keyword_set is not None:
|
|
3919
|
+
self.logger.debug("Write KeywordSet <%s>" % keyword_set.getShortName())
|
|
3920
|
+
child_element = ET.SubElement(element, "KEYWORD-SET")
|
|
3921
|
+
self.writeARElement(child_element, keyword_set)
|
|
3922
|
+
self.writeKeywordSetKeywords(child_element, keyword_set)
|
|
3923
|
+
|
|
3924
|
+
def writePortPrototypeBlueprint(self, element: ET.Element, blueprint: PortPrototypeBlueprint):
|
|
3925
|
+
if blueprint is not None:
|
|
3926
|
+
self.logger.debug("Write PortPrototypeBlueprint <%s>" % blueprint.getShortName())
|
|
3927
|
+
child_element = ET.SubElement(element, "PORT-PROTOTYPE-BLUEPRINT")
|
|
3928
|
+
self.writeARElement(child_element, blueprint)
|
|
3929
|
+
self.setChildElementOptionalRefType(child_element, "INTERFACE-REF", blueprint.getInterfaceRef())
|
|
3328
3930
|
|
|
3329
3931
|
def writeMacMulticastGroup(self, element: ET.Element, group: MacMulticastGroup):
|
|
3330
3932
|
if group is not None:
|
|
@@ -3390,27 +3992,28 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3390
3992
|
elif isinstance(port, ISignalPort):
|
|
3391
3993
|
self.writeISignalPort(instances_tag, port)
|
|
3392
3994
|
else:
|
|
3393
|
-
self.
|
|
3995
|
+
self.notImplemented("Unsupported CommConnectorPort <%s>" % type(port))
|
|
3394
3996
|
|
|
3395
3997
|
def writeCommunicationController(self, element: ET.Element, controller: CommunicationController):
|
|
3396
3998
|
self.setChildElementOptionalBooleanValue(element, "WAKE-UP-BY-CONTROLLER-SUPPORTED", controller.getWakeUpByControllerSupported())
|
|
3397
3999
|
|
|
3398
4000
|
def setCanControllerFdConfiguration(self, element: ET.Element, key: str, configuration: CanControllerFdConfiguration):
|
|
3399
4001
|
if configuration is not None:
|
|
3400
|
-
|
|
3401
|
-
#
|
|
4002
|
+
pass
|
|
4003
|
+
# child_element = ET.SubElement(element, key)
|
|
4004
|
+
# TODO: need to implemented
|
|
3402
4005
|
|
|
3403
4006
|
def setCanControllerFdConfigurationRequirements(self, element: ET.Element, key: str, requirements: CanControllerFdConfigurationRequirements):
|
|
3404
4007
|
if requirements is not None:
|
|
3405
4008
|
child_element = ET.SubElement(element, key)
|
|
3406
|
-
self.setChildElementOptionalIntegerValue(child_element, "MAX-NUMBER-OF-TIME-QUANTA-PER-BIT", requirements.getMaxNumberOfTimeQuantaPerBit())
|
|
4009
|
+
self.setChildElementOptionalIntegerValue(child_element, "MAX-NUMBER-OF-TIME-QUANTA-PER-BIT", requirements.getMaxNumberOfTimeQuantaPerBit()) # noqa E501
|
|
3407
4010
|
self.setChildElementOptionalFloatValue(child_element, "MAX-SAMPLE-POINT", requirements.getMaxSamplePoint())
|
|
3408
4011
|
self.setChildElementOptionalFloatValue(child_element, "MAX-SYNC-JUMP-WIDTH", requirements.getMaxSyncJumpWidth())
|
|
3409
|
-
self.setChildElementOptionalTimeValue(child_element, "MAX-TRCV-DELAY-COMPENSATION-OFFSET", requirements.getMaxTrcvDelayCompensationOffset())
|
|
3410
|
-
self.setChildElementOptionalIntegerValue(child_element, "MIN-NUMBER-OF-TIME-QUANTA-PER-BIT", requirements.getMinNumberOfTimeQuantaPerBit())
|
|
4012
|
+
self.setChildElementOptionalTimeValue(child_element, "MAX-TRCV-DELAY-COMPENSATION-OFFSET", requirements.getMaxTrcvDelayCompensationOffset()) # noqa E501
|
|
4013
|
+
self.setChildElementOptionalIntegerValue(child_element, "MIN-NUMBER-OF-TIME-QUANTA-PER-BIT", requirements.getMinNumberOfTimeQuantaPerBit()) # noqa E501
|
|
3411
4014
|
self.setChildElementOptionalFloatValue(child_element, "MIN-SAMPLE-POINT", requirements.getMinSamplePoint())
|
|
3412
4015
|
self.setChildElementOptionalFloatValue(child_element, "MIN-SYNC-JUMP-WIDTH", requirements.getMinSyncJumpWidth())
|
|
3413
|
-
self.setChildElementOptionalTimeValue(child_element, "MIN-TRCV-DELAY-COMPENSATION-OFFSET", requirements.getMinTrcvDelayCompensationOffset())
|
|
4016
|
+
self.setChildElementOptionalTimeValue(child_element, "MIN-TRCV-DELAY-COMPENSATION-OFFSET", requirements.getMinTrcvDelayCompensationOffset()) # noqa E501
|
|
3414
4017
|
self.setChildElementOptionalBooleanValue(child_element, "TX-BIT-RATE-SWITCH", requirements.getTxBitRateSwitch())
|
|
3415
4018
|
|
|
3416
4019
|
def writeAbstractCanCommunicationControllerAttributes(self, element: ET.Element, attributes: AbstractCanCommunicationControllerAttributes):
|
|
@@ -3421,10 +4024,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3421
4024
|
if requirements is not None:
|
|
3422
4025
|
child_element = ET.SubElement(element, "CAN-CONTROLLER-CONFIGURATION-REQUIREMENTS")
|
|
3423
4026
|
self.writeAbstractCanCommunicationControllerAttributes(child_element, requirements)
|
|
3424
|
-
self.setChildElementOptionalIntegerValue(child_element, "MAX-NUMBER-OF-TIME-QUANTA-PER-BIT", requirements.getMaxNumberOfTimeQuantaPerBit())
|
|
4027
|
+
self.setChildElementOptionalIntegerValue(child_element, "MAX-NUMBER-OF-TIME-QUANTA-PER-BIT", requirements.getMaxNumberOfTimeQuantaPerBit()) # noqa E501
|
|
3425
4028
|
self.setChildElementOptionalFloatValue(child_element, "MAX-SAMPLE-POINT", requirements.getMaxSamplePoint())
|
|
3426
4029
|
self.setChildElementOptionalFloatValue(child_element, "MAX-SYNC-JUMP-WIDTH", requirements.getMaxSyncJumpWidth())
|
|
3427
|
-
self.setChildElementOptionalIntegerValue(child_element, "MIN-NUMBER-OF-TIME-QUANTA-PER-BIT", requirements.getMinNumberOfTimeQuantaPerBit())
|
|
4030
|
+
self.setChildElementOptionalIntegerValue(child_element, "MIN-NUMBER-OF-TIME-QUANTA-PER-BIT", requirements.getMinNumberOfTimeQuantaPerBit()) # noqa E501
|
|
3428
4031
|
self.setChildElementOptionalFloatValue(child_element, "MIN-SAMPLE-POINT", requirements.getMinSamplePoint())
|
|
3429
4032
|
self.setChildElementOptionalFloatValue(child_element, "MIN-SYNC-JUMP-WIDTH", requirements.getMinSyncJumpWidth())
|
|
3430
4033
|
|
|
@@ -3435,7 +4038,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3435
4038
|
if isinstance(attributes, CanControllerConfigurationRequirements):
|
|
3436
4039
|
self.writeCanControllerConfigurationRequirements(child_element, attributes)
|
|
3437
4040
|
else:
|
|
3438
|
-
self.notImplemented("Unsupported CanControllerAttributes <%s>" % type(attributes))
|
|
4041
|
+
self.notImplemented("Unsupported CanControllerAttributes <%s>" % type(attributes))
|
|
3439
4042
|
|
|
3440
4043
|
def writeAbstractCanCommunicationController(self, element: ET.Element, controller: AbstractCanCommunicationController):
|
|
3441
4044
|
self.writeCommunicationController(element, controller)
|
|
@@ -3494,10 +4097,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3494
4097
|
|
|
3495
4098
|
def setCouplingPortDetails(self, element: ET.Element, key: str, details: CouplingPortDetails):
|
|
3496
4099
|
if details is not None:
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
|
|
3500
|
-
|
|
4100
|
+
child_element = ET.SubElement(element, key)
|
|
4101
|
+
self.writeCouplingPortDetailsCouplingPortStructuralElements(child_element, details)
|
|
4102
|
+
self.writeCouplingPortDetailsEthernetPriorityRegenerations(child_element, details)
|
|
4103
|
+
self.setChildElementOptionalRefType(child_element, "LAST-EGRESS-SCHEDULER-REF", details.getLastEgressSchedulerRef())
|
|
3501
4104
|
|
|
3502
4105
|
def writeVlanMembership(self, element: ET.Element, membership: VlanMembership):
|
|
3503
4106
|
if membership is not None:
|
|
@@ -3519,7 +4122,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3519
4122
|
child_element = ET.SubElement(element, "COUPLING-PORT")
|
|
3520
4123
|
self.writeIdentifiable(child_element, port)
|
|
3521
4124
|
self.setCouplingPortDetails(child_element, "COUPLING-PORT-DETAILS", port.getCouplingPortDetails())
|
|
3522
|
-
self.setChildElementOptionalLiteral(child_element, "MAC-LAYER-TYPE", port.
|
|
4125
|
+
self.setChildElementOptionalLiteral(child_element, "MAC-LAYER-TYPE", port.getMacLayerType())
|
|
3523
4126
|
self.writeCouplingPortVlanMemberships(child_element, port)
|
|
3524
4127
|
|
|
3525
4128
|
def writeEthernetCommunicationControllerCouplingPorts(self, element: ET.Element, controller: EthernetCommunicationController):
|
|
@@ -3552,6 +4155,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3552
4155
|
self.writeEthernetCommunicationController(child_element, controller)
|
|
3553
4156
|
elif isinstance(controller, LinMaster):
|
|
3554
4157
|
self.writeLinMaster(child_element, controller)
|
|
4158
|
+
elif isinstance(controller, FlexrayCommunicationController):
|
|
4159
|
+
self.writeFlexrayCommunicationController(child_element, controller)
|
|
3555
4160
|
else:
|
|
3556
4161
|
self.notImplemented("Unsupported Communication Controller <%s>" % type(controller))
|
|
3557
4162
|
|
|
@@ -3582,6 +4187,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3582
4187
|
self.logger.debug("Write LinCommunicationConnector %s" % connector.getShortName())
|
|
3583
4188
|
self.writeCommunicationConnector(element, connector)
|
|
3584
4189
|
|
|
4190
|
+
def writeFlexrayCommunicationConnector(self, element: ET.Element, connector: FlexrayCommunicationConnector):
|
|
4191
|
+
self.logger.debug("Write FlexrayCommunicationConnector %s" % connector.getShortName())
|
|
4192
|
+
self.writeCommunicationConnector(element, connector)
|
|
4193
|
+
|
|
3585
4194
|
def writeEcuInstanceConnectors(self, element: ET.Element, instance: EcuInstance):
|
|
3586
4195
|
connectors = instance.getConnectors()
|
|
3587
4196
|
if len(connectors) > 0:
|
|
@@ -3596,8 +4205,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3596
4205
|
elif isinstance(connector, LinCommunicationConnector):
|
|
3597
4206
|
child_element = ET.SubElement(connectors_tag, "LIN-COMMUNICATION-CONNECTOR")
|
|
3598
4207
|
self.writeLinCommunicationConnector(child_element, connector)
|
|
4208
|
+
elif isinstance(connector, FlexrayCommunicationConnector):
|
|
4209
|
+
child_element = ET.SubElement(connectors_tag, "FLEXRAY-COMMUNICATION-CONNECTOR")
|
|
4210
|
+
self.writeFlexrayCommunicationConnector(child_element, connector)
|
|
3599
4211
|
else:
|
|
3600
|
-
self.
|
|
4212
|
+
self.notImplemented("Unsupported Communication connector <%s>" % type(connector))
|
|
3601
4213
|
|
|
3602
4214
|
def writeEcuInstanceAssociatedComIPduGroupRefs(self, element: ET.Element, instance: EcuInstance):
|
|
3603
4215
|
refs = instance.getAssociatedComIPduGroupRefs()
|
|
@@ -3614,7 +4226,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3614
4226
|
self.setChildElementOptionalTimeValue(child_element, "COM-CONFIGURATION-GW-TIME-BASE", instance.getComConfigurationGwTimeBase())
|
|
3615
4227
|
self.setChildElementOptionalTimeValue(child_element, "COM-CONFIGURATION-RX-TIME-BASE", instance.getComConfigurationRxTimeBase())
|
|
3616
4228
|
self.setChildElementOptionalTimeValue(child_element, "COM-CONFIGURATION-TX-TIME-BASE", instance.getComConfigurationTxTimeBase())
|
|
3617
|
-
self.setChildElementOptionalBooleanValue(child_element, "COM-ENABLE-MDT-FOR-CYCLIC-TRANSMISSION", instance.getComEnableMDTForCyclicTransmission())
|
|
4229
|
+
self.setChildElementOptionalBooleanValue(child_element, "COM-ENABLE-MDT-FOR-CYCLIC-TRANSMISSION", instance.getComEnableMDTForCyclicTransmission()) # noqa E501
|
|
3618
4230
|
self.writeEcuInstanceCommControllers(child_element, instance)
|
|
3619
4231
|
self.writeEcuInstanceConnectors(child_element, instance)
|
|
3620
4232
|
self.setChildElementOptionalIntegerValue(child_element, "DIAGNOSTIC-ADDRESS", instance.getDiagnosticAddress())
|
|
@@ -3631,16 +4243,53 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3631
4243
|
for signal_ref in signal_refs:
|
|
3632
4244
|
self.setChildElementOptionalRefType(signal_refs_tag, "SYSTEM-SIGNAL-REF", signal_ref)
|
|
3633
4245
|
|
|
3634
|
-
def
|
|
4246
|
+
def writeSenderReceiverToSignalMapping(self, element: ET.Element, mapping: SenderReceiverToSignalMapping):
|
|
3635
4247
|
child_element = ET.SubElement(element, "SENDER-RECEIVER-TO-SIGNAL-MAPPING")
|
|
3636
4248
|
self.setChildElementOptionalLiteral(child_element, "COMMUNICATION-DIRECTION", mapping.getCommunicationDirection())
|
|
3637
4249
|
self.setVariableDataPrototypeInSystemInstanceRef(child_element, "DATA-ELEMENT-IREF", mapping.getDataElementIRef())
|
|
3638
4250
|
self.setChildElementOptionalRefType(child_element, "SYSTEM-SIGNAL-REF", mapping.getSystemSignalRef())
|
|
3639
4251
|
|
|
3640
|
-
def
|
|
4252
|
+
def writeSenderRecCompositeTypeMapping(self, element: ET.Element, mapping: SenderRecCompositeTypeMapping):
|
|
4253
|
+
self.writeARObjectAttributes(element, mapping)
|
|
4254
|
+
|
|
4255
|
+
def writeSenderRecRecordElementMapping(self, element: ET.Element, mapping: SenderRecRecordElementMapping):
|
|
4256
|
+
if mapping is not None:
|
|
4257
|
+
child_element = ET.SubElement(element, "SENDER-REC-RECORD-ELEMENT-MAPPING")
|
|
4258
|
+
self.writeARObjectAttributes(child_element, mapping)
|
|
4259
|
+
self.setChildElementOptionalRefType(child_element, "APPLICATION-RECORD-ELEMENT-REF", mapping.getApplicationRecordElementRef())
|
|
4260
|
+
self.setChildElementOptionalRefType(child_element, "IMPLEMENTATION-RECORD-ELEMENT-REF", mapping.getImplementationRecordElementRef())
|
|
4261
|
+
self.setChildElementOptionalRefType(child_element, "SYSTEM-SIGNAL-REF", mapping.getSystemSignalRef())
|
|
4262
|
+
|
|
4263
|
+
def writeSenderRecArrayTypeMappingRecordElementMapping(self, element: ET.Element, mapping: SenderRecRecordTypeMapping):
|
|
4264
|
+
record_element_mappings = mapping.getRecordElementMappings()
|
|
4265
|
+
if len(record_element_mappings) > 0:
|
|
4266
|
+
child_element = ET.SubElement(element, "RECORD-ELEMENT-MAPPINGS")
|
|
4267
|
+
for record_element_mapping in record_element_mappings:
|
|
4268
|
+
if isinstance(record_element_mapping, SenderRecRecordElementMapping):
|
|
4269
|
+
self.writeSenderRecRecordElementMapping(child_element, record_element_mapping)
|
|
4270
|
+
else:
|
|
4271
|
+
self.notImplemented("Unsupported RecordElementMapping %s" % type(record_element_mapping))
|
|
4272
|
+
|
|
4273
|
+
def writeSenderRecRecordTypeMapping(self, element: ET.Element, mapping: SenderRecRecordTypeMapping):
|
|
4274
|
+
if mapping is not None:
|
|
4275
|
+
child_element = ET.SubElement(element, "SENDER-REC-RECORD-TYPE-MAPPING")
|
|
4276
|
+
self.writeSenderRecCompositeTypeMapping(child_element, mapping)
|
|
4277
|
+
self.writeSenderRecArrayTypeMappingRecordElementMapping(child_element, mapping)
|
|
4278
|
+
|
|
4279
|
+
def writeSenderReceiverToSignalGroupMappingTypeMapping(self, element: ET.Element, mapping: SenderReceiverToSignalGroupMapping):
|
|
4280
|
+
type_mapping = mapping.getTypeMapping()
|
|
4281
|
+
if type_mapping is not None:
|
|
4282
|
+
child_element = ET.SubElement(element, "TYPE-MAPPING")
|
|
4283
|
+
if isinstance(type_mapping, SenderRecRecordTypeMapping):
|
|
4284
|
+
self.writeSenderRecRecordTypeMapping(child_element, type_mapping)
|
|
4285
|
+
else:
|
|
4286
|
+
self.notImplemented("Unsupported Type Mapping %s" % type(type_mapping))
|
|
4287
|
+
|
|
4288
|
+
def writeSenderReceiverToSignalGroupMapping(self, element: ET.Element, mapping: SenderReceiverToSignalGroupMapping):
|
|
3641
4289
|
child_element = ET.SubElement(element, "SENDER-RECEIVER-TO-SIGNAL-GROUP-MAPPING")
|
|
3642
4290
|
self.setVariableDataPrototypeInSystemInstanceRef(child_element, "DATA-ELEMENT-IREF", mapping.getDataElementIRef())
|
|
3643
4291
|
self.setChildElementOptionalRefType(child_element, "SIGNAL-GROUP-REF", mapping.getSignalGroupRef())
|
|
4292
|
+
self.writeSenderReceiverToSignalGroupMappingTypeMapping(child_element, mapping)
|
|
3644
4293
|
|
|
3645
4294
|
def writeSystemMappingDataMappings(self, element: ET.Element, system_mapping: SystemMapping):
|
|
3646
4295
|
data_mappings = system_mapping.getDataMappings()
|
|
@@ -3648,9 +4297,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3648
4297
|
child_element = ET.SubElement(element, "DATA-MAPPINGS")
|
|
3649
4298
|
for data_mapping in data_mappings:
|
|
3650
4299
|
if isinstance(data_mapping, SenderReceiverToSignalMapping):
|
|
3651
|
-
self.
|
|
4300
|
+
self.writeSenderReceiverToSignalMapping(child_element, data_mapping)
|
|
3652
4301
|
elif isinstance(data_mapping, SenderReceiverToSignalGroupMapping):
|
|
3653
|
-
self.
|
|
4302
|
+
self.writeSenderReceiverToSignalGroupMapping(child_element, data_mapping)
|
|
3654
4303
|
else:
|
|
3655
4304
|
self.notImplemented("Unsupported Data Mapping %s" % type(data_mapping))
|
|
3656
4305
|
|
|
@@ -3767,6 +4416,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3767
4416
|
self.setChildElementOptionalNumericalValue(child_element, "LENGTH-EXP", dimension.getLengthExp())
|
|
3768
4417
|
self.setChildElementOptionalNumericalValue(child_element, "LUMINOUS-INTENSITY-EXP", dimension.getLuminousIntensityExp())
|
|
3769
4418
|
self.setChildElementOptionalNumericalValue(child_element, "MASS-EXP", dimension.getMassExp())
|
|
4419
|
+
self.setChildElementOptionalNumericalValue(child_element, "MOLAR-AMOUNT-EXP", dimension.getMolarAmountExp())
|
|
3770
4420
|
self.setChildElementOptionalNumericalValue(child_element, "TEMPERATURE-EXP", dimension.getTemperatureExp())
|
|
3771
4421
|
self.setChildElementOptionalNumericalValue(child_element, "TIME-EXP", dimension.getTimeExp())
|
|
3772
4422
|
self.setChildElementOptionalNumericalValue(child_element, "CURRENT-EXP", dimension.getCurrentExp())
|
|
@@ -3805,19 +4455,43 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3805
4455
|
for mapping in mappings:
|
|
3806
4456
|
self.setDataPrototypeMapping(child_element, mapping)
|
|
3807
4457
|
|
|
3808
|
-
def
|
|
3809
|
-
self.logger.debug("
|
|
4458
|
+
def writeVariableAndParameterInterfaceMapping(self, element: ET.Element, mapping: VariableAndParameterInterfaceMapping):
|
|
4459
|
+
# self.logger.debug("Write VariableAndParameterInterfaceMapping %s" % mapping.getShortName())
|
|
3810
4460
|
child_element = ET.SubElement(element, "VARIABLE-AND-PARAMETER-INTERFACE-MAPPING")
|
|
3811
4461
|
self.writeIdentifiable(child_element, mapping)
|
|
3812
4462
|
self.setDataPrototypeMappings(child_element, "DATA-MAPPINGS", mapping.getDataMappings())
|
|
3813
4463
|
|
|
4464
|
+
def writeClientServerOperationMapping(self, element: ET.Element, mapping: ClientServerOperationMapping):
|
|
4465
|
+
child_element = ET.SubElement(element, "CLIENT-SERVER-OPERATION-MAPPING")
|
|
4466
|
+
self.setChildElementOptionalRefType(child_element, "FIRST-OPERATION-REF", mapping.getFirstOperationRef())
|
|
4467
|
+
self.setChildElementOptionalRefType(child_element, "SECOND-OPERATION-REF", mapping.getSecondOperationRef())
|
|
4468
|
+
|
|
4469
|
+
def writeClientServerInterfaceMappingOperationMappings(self, element: ET.Element, mapping: ClientServerInterfaceMapping):
|
|
4470
|
+
operation_mappings = mapping.getOperationMappings()
|
|
4471
|
+
if len(operation_mappings) > 0:
|
|
4472
|
+
child_element = ET.SubElement(element, "OPERATION-MAPPINGS")
|
|
4473
|
+
for operation_mapping in operation_mappings:
|
|
4474
|
+
if isinstance(operation_mapping, ClientServerOperationMapping):
|
|
4475
|
+
self.writeClientServerOperationMapping(child_element, operation_mapping)
|
|
4476
|
+
else:
|
|
4477
|
+
self.notImplemented("Unsupported Operation Mapping <%s>" % type(operation_mapping))
|
|
4478
|
+
|
|
4479
|
+
def writeClientServerInterfaceMapping(self, element: ET.Element, mapping: ClientServerInterfaceMapping):
|
|
4480
|
+
# self.logger.debug("Read ClientServerInterfaceMapping %s" % mapping.getShortName())
|
|
4481
|
+
if mapping is not None:
|
|
4482
|
+
child_element = ET.SubElement(element, "CLIENT-SERVER-INTERFACE-MAPPING")
|
|
4483
|
+
self.writeIdentifiable(child_element, mapping)
|
|
4484
|
+
self.writeClientServerInterfaceMappingOperationMappings(child_element, mapping)
|
|
4485
|
+
|
|
3814
4486
|
def writePortInterfaceMappings(self, element: ET.Element, mapping_set: PortInterfaceMappingSet):
|
|
3815
4487
|
mappings = mapping_set.getPortInterfaceMappings()
|
|
3816
4488
|
if len(mappings) > 0:
|
|
3817
4489
|
child_element = ET.SubElement(element, "PORT-INTERFACE-MAPPINGS")
|
|
3818
4490
|
for mapping in mappings:
|
|
3819
4491
|
if isinstance(mapping, VariableAndParameterInterfaceMapping):
|
|
3820
|
-
self.
|
|
4492
|
+
self.writeVariableAndParameterInterfaceMapping(child_element, mapping)
|
|
4493
|
+
elif isinstance(mapping, ClientServerInterfaceMapping):
|
|
4494
|
+
self.writeClientServerInterfaceMapping(child_element, mapping)
|
|
3821
4495
|
else:
|
|
3822
4496
|
self.notImplemented("Unsupported PortInterfaceMapping <%s>" % type(mapping))
|
|
3823
4497
|
|
|
@@ -3873,7 +4547,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3873
4547
|
ecuc_values_tag = ET.SubElement(element, "ECUC-VALUES")
|
|
3874
4548
|
for value_ref in value_refs:
|
|
3875
4549
|
child_element = ET.SubElement(ecuc_values_tag, "ECUC-MODULE-CONFIGURATION-VALUES-REF-CONDITIONAL")
|
|
3876
|
-
self.setChildElementOptionalRefType(child_element, "ECUC-MODULE-CONFIGURATION-VALUES-REF", value_ref)
|
|
4550
|
+
self.setChildElementOptionalRefType(child_element, "ECUC-MODULE-CONFIGURATION-VALUES-REF", value_ref)
|
|
3877
4551
|
|
|
3878
4552
|
def writeEcucValueCollection(self, element: ET.Element, collection: EcucValueCollection):
|
|
3879
4553
|
self.logger.debug("EcucValueCollection %s" % collection.getShortName())
|
|
@@ -3890,7 +4564,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3890
4564
|
if isinstance(sub_container, EcucContainerValue):
|
|
3891
4565
|
self.writeEcucContainValue(sub_containers_tag, sub_container)
|
|
3892
4566
|
else:
|
|
3893
|
-
self.notImplemented("Unsupported Sub Container %s" % type(container))
|
|
4567
|
+
self.notImplemented("Unsupported Sub Container %s" % type(container))
|
|
3894
4568
|
|
|
3895
4569
|
def writeEcucParameterValue(self, element: ET.Element, param_value: EcucParameterValue):
|
|
3896
4570
|
self.setChildElementOptionalRefType(element, "DEFINITION-REF", param_value.getDefinitionRef())
|
|
@@ -3909,7 +4583,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3909
4583
|
def writeEcucContainerValueParameterValues(self, element: ET.Element, container_value: EcucContainerValue):
|
|
3910
4584
|
param_values = container_value.getParameterValues()
|
|
3911
4585
|
if len(param_values) > 0:
|
|
3912
|
-
child_element
|
|
4586
|
+
child_element = ET.SubElement(element, "PARAMETER-VALUES")
|
|
3913
4587
|
for param_value in param_values:
|
|
3914
4588
|
if isinstance(param_value, EcucTextualParamValue):
|
|
3915
4589
|
self.setEcucTextualParamValue(child_element, param_value)
|
|
@@ -3922,7 +4596,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3922
4596
|
self.setChildElementOptionalRefType(element, "DEFINITION-REF", value.getDefinitionRef())
|
|
3923
4597
|
self.setAnnotations(element, value.getAnnotations())
|
|
3924
4598
|
|
|
3925
|
-
def setEcucReferenceValue(self, element: ET.Element, value
|
|
4599
|
+
def setEcucReferenceValue(self, element: ET.Element, value=EcucReferenceValue()):
|
|
3926
4600
|
child_element = ET.SubElement(element, "ECUC-REFERENCE-VALUE")
|
|
3927
4601
|
self.writeEcucAbstractReferenceValue(child_element, value)
|
|
3928
4602
|
self.setChildElementOptionalRefType(child_element, "VALUE-REF", value.getValueRef())
|
|
@@ -3931,13 +4605,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3931
4605
|
def setAnyInstanceRef(self, element: ET.Element, key, instance_ref: AnyInstanceRef):
|
|
3932
4606
|
if instance_ref is not None:
|
|
3933
4607
|
child_element = ET.SubElement(element, key)
|
|
3934
|
-
self.setChildElementOptionalRefType(child_element, "BASE-REF", instance_ref.getBaseRef())
|
|
4608
|
+
self.setChildElementOptionalRefType(child_element, "BASE-REF", instance_ref.getBaseRef())
|
|
3935
4609
|
for ref in instance_ref.getContextElementRefs():
|
|
3936
4610
|
self.setChildElementOptionalRefType(child_element, "CONTEXT-ELEMENT-REF", ref)
|
|
3937
4611
|
self.setChildElementOptionalRefType(child_element, "TARGET-REF", instance_ref.getTargetRef())
|
|
3938
4612
|
return instance_ref
|
|
3939
4613
|
|
|
3940
|
-
def setEcucInstanceReferenceValue(self, element: ET.Element, value
|
|
4614
|
+
def setEcucInstanceReferenceValue(self, element: ET.Element, value: EcucInstanceReferenceValue):
|
|
3941
4615
|
child_element = ET.SubElement(element, "ECUC-INSTANCE-REFERENCE-VALUE")
|
|
3942
4616
|
self.writeEcucAbstractReferenceValue(child_element, value)
|
|
3943
4617
|
self.setAnyInstanceRef(child_element, "VALUE-IREF", value.getValueIRef())
|
|
@@ -3946,7 +4620,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3946
4620
|
def writeEcucContainerValueReferenceValues(self, element: ET.Element, container_value: EcucContainerValue):
|
|
3947
4621
|
reference_values = container_value.getReferenceValues()
|
|
3948
4622
|
if len(reference_values) > 0:
|
|
3949
|
-
child_element
|
|
4623
|
+
child_element = ET.SubElement(element, "REFERENCE-VALUES")
|
|
3950
4624
|
for reference_value in reference_values:
|
|
3951
4625
|
if isinstance(reference_value, EcucReferenceValue):
|
|
3952
4626
|
self.setEcucReferenceValue(child_element, reference_value)
|
|
@@ -3972,7 +4646,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3972
4646
|
if isinstance(container, EcucContainerValue):
|
|
3973
4647
|
self.writeEcucContainValue(containers_tag, container)
|
|
3974
4648
|
else:
|
|
3975
|
-
self.notImplemented("Unsupported Container %s" % type(container))
|
|
4649
|
+
self.notImplemented("Unsupported Container %s" % type(container))
|
|
3976
4650
|
|
|
3977
4651
|
def writeEcucModuleConfigurationValues(self, element: ET.Element, values: EcucModuleConfigurationValues):
|
|
3978
4652
|
self.logger.debug("EcucModuleConfigurationValues %s" % values.getShortName())
|
|
@@ -3983,16 +4657,58 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3983
4657
|
self.setChildElementOptionalRefType(child_element, "MODULE-DESCRIPTION-REF", values.getModuleDescriptionRef())
|
|
3984
4658
|
self.writeEcucModuleConfigurationValuesContainers(child_element, values)
|
|
3985
4659
|
|
|
4660
|
+
def writeISignalGroupISignalRef(self, element: ET.Element, group: ISignalGroup):
|
|
4661
|
+
signal_refs = group.getISignalRefs()
|
|
4662
|
+
if len(signal_refs) > 0:
|
|
4663
|
+
child_element = ET.SubElement(element, "I-SIGNAL-REFS")
|
|
4664
|
+
for signal_ref in signal_refs:
|
|
4665
|
+
self.setChildElementOptionalRefType(child_element, "I-SIGNAL-REF", signal_ref)
|
|
4666
|
+
|
|
4667
|
+
def writeISignalGroupComBasedSignalGroupTransformation(self, element: ET.Element, group: ISignalGroup):
|
|
4668
|
+
refs = group.getComBasedSignalGroupTransformationRefs()
|
|
4669
|
+
if len(refs) > 0:
|
|
4670
|
+
com_based_element = ET.SubElement(element, "COM-BASED-SIGNAL-GROUP-TRANSFORMATIONS")
|
|
4671
|
+
cond_element = ET.SubElement(com_based_element, "DATA-TRANSFORMATION-REF-CONDITIONAL")
|
|
4672
|
+
for ref in refs:
|
|
4673
|
+
self.setChildElementOptionalRefType(cond_element, "DATA-TRANSFORMATION-REF", ref)
|
|
4674
|
+
|
|
4675
|
+
def writeTransformationISignalProps(self, element: ET.Element, props: TransformationISignalProps):
|
|
4676
|
+
self.writeDescribable(element, props)
|
|
4677
|
+
|
|
4678
|
+
def writeEndToEndTransformationISignalPropsDataIds(self, element: ET.Element, props: EndToEndTransformationISignalProps):
|
|
4679
|
+
ids = props.getDataIds()
|
|
4680
|
+
if len(ids) > 0:
|
|
4681
|
+
child_element = ET.SubElement(element, "DATA-IDS")
|
|
4682
|
+
for id in ids:
|
|
4683
|
+
self.setChildElementOptionalPositiveInteger(child_element, "DATA-ID", id)
|
|
4684
|
+
|
|
4685
|
+
def writeEndToEndTransformationISignalProps(self, element: ET.Element, props: EndToEndTransformationISignalProps):
|
|
4686
|
+
if props is not None:
|
|
4687
|
+
props_element = ET.SubElement(element, "END-TO-END-TRANSFORMATION-I-SIGNAL-PROPS")
|
|
4688
|
+
variant_element = ET.SubElement(props_element, "END-TO-END-TRANSFORMATION-I-SIGNAL-PROPS-VARIANTS")
|
|
4689
|
+
child_element = ET.SubElement(variant_element, "END-TO-END-TRANSFORMATION-I-SIGNAL-PROPS-CONDITIONAL")
|
|
4690
|
+
self.writeTransformationISignalProps(child_element, props)
|
|
4691
|
+
self.setChildElementOptionalRefType(child_element, "TRANSFORMER-REF", props.getTransformerRef())
|
|
4692
|
+
self.writeEndToEndTransformationISignalPropsDataIds(child_element, props)
|
|
4693
|
+
self.setChildElementOptionalPositiveInteger(child_element, "DATA-LENGTH", props.getDataLength())
|
|
4694
|
+
|
|
4695
|
+
def writeISignalGroupTransformationISignalProps(self, element: ET.Element, group: ISignalGroup):
|
|
4696
|
+
props = group.getTransformationISignalProps()
|
|
4697
|
+
if props is not None:
|
|
4698
|
+
child_element = ET.SubElement(element, "TRANSFORMATION-I-SIGNAL-PROPSS")
|
|
4699
|
+
if isinstance(props, EndToEndTransformationISignalProps):
|
|
4700
|
+
self.writeEndToEndTransformationISignalProps(child_element, props)
|
|
4701
|
+
else:
|
|
4702
|
+
self.notImplemented("Unsupported TransformationISignalProps %s" % type(props))
|
|
4703
|
+
|
|
3986
4704
|
def writeISignalGroup(self, element: ET.Element, group: ISignalGroup):
|
|
3987
4705
|
self.logger.debug("ISignalGroup %s" % group.getShortName())
|
|
3988
4706
|
child_element = ET.SubElement(element, "I-SIGNAL-GROUP")
|
|
3989
4707
|
self.writeIdentifiable(child_element, group)
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
signal_refs_tag = ET.SubElement(child_element, "I-SIGNAL-REFS")
|
|
3993
|
-
for signal_ref in signal_refs:
|
|
3994
|
-
self.setChildElementOptionalRefType(signal_refs_tag, "I-SIGNAL-REF", signal_ref)
|
|
4708
|
+
self.writeISignalGroupComBasedSignalGroupTransformation(child_element, group)
|
|
4709
|
+
self.writeISignalGroupISignalRef(child_element, group)
|
|
3995
4710
|
self.setChildElementOptionalRefType(child_element, "SYSTEM-SIGNAL-GROUP-REF", group.getSystemSignalGroupRef())
|
|
4711
|
+
self.writeISignalGroupTransformationISignalProps(child_element, group)
|
|
3996
4712
|
|
|
3997
4713
|
def writeISignalIPduGroup(self, element: ET.Element, group: ISignalIPduGroup):
|
|
3998
4714
|
self.logger.debug("Set ISignalIPduGroup %s" % group.getShortName())
|
|
@@ -4024,10 +4740,47 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
4024
4740
|
child_element = ET.SubElement(element, "ETHERNET-FRAME")
|
|
4025
4741
|
self.writeFrame(child_element, frame)
|
|
4026
4742
|
|
|
4027
|
-
def
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4743
|
+
def setLifeCyclePeriod(self, element: ET.Element, key: str, period: LifeCyclePeriod):
|
|
4744
|
+
if period is not None:
|
|
4745
|
+
child_element = ET.SubElement(element, key)
|
|
4746
|
+
self.setChildElementOptionalRevisionLabelString(child_element, "AR-RELEASE-VERSION", period.getArReleaseVersion())
|
|
4747
|
+
|
|
4748
|
+
def writeLifeCycleInfoUseInsteadRefs(self, element: ET.Element, info: LifeCycleInfo):
|
|
4749
|
+
refs = info.getUseInsteadRefs()
|
|
4750
|
+
if len(refs) > 0:
|
|
4751
|
+
child_element = ET.SubElement(element, "USE-INSTEAD-REFS")
|
|
4752
|
+
for ref in refs:
|
|
4753
|
+
self.setChildElementOptionalRefType(child_element, "USE-INSTEAD-REF", ref)
|
|
4754
|
+
|
|
4755
|
+
def writeLifeCycleInfo(self, element: ET.Element, info: LifeCycleInfo):
|
|
4756
|
+
if info is not None:
|
|
4757
|
+
child_element = ET.SubElement(element, "LIFE-CYCLE-INFO")
|
|
4758
|
+
self.writeARObjectAttributes(child_element, info)
|
|
4759
|
+
self.setChildElementOptionalRefType(child_element, "LC-OBJECT-REF", info.getLcObjectRef())
|
|
4760
|
+
self.setChildElementOptionalRefType(child_element, "LC-STATE-REF", info.getLcStateRef())
|
|
4761
|
+
self.setLifeCyclePeriod(child_element, "PERIOD-BEGIN", info.getPeriodBegin())
|
|
4762
|
+
self.writeDocumentationBlock(child_element, "REMARK", info.getRemark())
|
|
4763
|
+
self.writeLifeCycleInfoUseInsteadRefs(child_element, info)
|
|
4764
|
+
|
|
4765
|
+
def writeLifeCycleInfoSetLifeCycleInfos(self, element: ET.Element, info_set: LifeCycleInfoSet):
|
|
4766
|
+
infos = info_set.getLifeCycleInfos()
|
|
4767
|
+
if len(infos) > 0:
|
|
4768
|
+
child_element = ET.SubElement(element, "LIFE-CYCLE-INFOS")
|
|
4769
|
+
for info in infos:
|
|
4770
|
+
if isinstance(info, LifeCycleInfo):
|
|
4771
|
+
self.writeLifeCycleInfo(child_element, info)
|
|
4772
|
+
else:
|
|
4773
|
+
self.notImplemented("Unsupported Life Cycle Info <%s>" % type(info))
|
|
4774
|
+
|
|
4775
|
+
def writeLifeCycleInfoSet(self, element: ET.Element, info_set: LifeCycleInfoSet):
|
|
4776
|
+
if info_set is not None:
|
|
4777
|
+
self.logger.debug("Write LifeCycleInfoSet %s" % info_set.getShortName())
|
|
4778
|
+
child_element = ET.SubElement(element, "LIFE-CYCLE-INFO-SET")
|
|
4779
|
+
self.writeIdentifiable(child_element, info_set)
|
|
4780
|
+
self.setChildElementOptionalRefType(child_element, "DEFAULT-LC-STATE-REF", info_set.getDefaultLcStateRef())
|
|
4781
|
+
self.writeLifeCycleInfoSetLifeCycleInfos(child_element, info_set)
|
|
4782
|
+
self.setChildElementOptionalRefType(child_element, "USED-LIFE-CYCLE-STATE-DEFINITION-GROUP-REF",
|
|
4783
|
+
info_set.getUsedLifeCycleStateDefinitionGroupRef())
|
|
4031
4784
|
|
|
4032
4785
|
def writeDiagnosticConnectionFunctionalRequestRefs(self, element: ET.Element, connection: DiagnosticConnection):
|
|
4033
4786
|
refs = connection.getFunctionalRequestRefs()
|
|
@@ -4252,6 +5005,66 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
4252
5005
|
self.writeDoIpTpConfigDoIpLogicAddresses(child_element, config)
|
|
4253
5006
|
self.writeDoIpTpConfigTpConnections(child_element, config)
|
|
4254
5007
|
|
|
5008
|
+
def writeHwDescriptionEntityHwCategoryRefs(self, element: ET.Element, entity: HwDescriptionEntity):
|
|
5009
|
+
refs = entity.getHwCategoryRefs()
|
|
5010
|
+
if len(refs) > 0:
|
|
5011
|
+
child_element = ET.SubElement(element, "HW-CATEGORY-REFS")
|
|
5012
|
+
for ref in refs:
|
|
5013
|
+
self.setChildElementOptionalRefType(child_element, "HW-CATEGORY-REF", ref)
|
|
5014
|
+
|
|
5015
|
+
def writeHwDescriptionEntity(self, element: ET.Element, entity: HwDescriptionEntity):
|
|
5016
|
+
self.writeARElement(element, entity)
|
|
5017
|
+
self.writeHwDescriptionEntityHwCategoryRefs(element, entity)
|
|
5018
|
+
|
|
5019
|
+
def writeHwPinGroup(self, element: ET.SubElement, pin_group: HwPinGroup):
|
|
5020
|
+
if pin_group is not None:
|
|
5021
|
+
child_element = ET.SubElement(element, "HW-PIN-GROUP")
|
|
5022
|
+
self.writeHwDescriptionEntity(child_element, pin_group)
|
|
5023
|
+
|
|
5024
|
+
def writeHwElementHwPinGroups(self, element: ET.Element, hw_element: HwElement):
|
|
5025
|
+
pin_groups = hw_element.getHwPinGroups()
|
|
5026
|
+
if len(pin_groups) > 0:
|
|
5027
|
+
child_element = ET.SubElement(element, "HW-PIN-GROUPS")
|
|
5028
|
+
for pin_group in pin_groups:
|
|
5029
|
+
if isinstance(pin_group, HwPinGroup):
|
|
5030
|
+
self.writeHwPinGroup(child_element, pin_group)
|
|
5031
|
+
else:
|
|
5032
|
+
self.notImplemented("Unsupported Hw Pin Group <%s>" % type(pin_group))
|
|
5033
|
+
|
|
5034
|
+
def writeHwElement(self, element: ET.Element, hw_element: HwElement):
|
|
5035
|
+
if hw_element is not None:
|
|
5036
|
+
self.logger.debug("Write HwElement <%s>" % hw_element.getShortName())
|
|
5037
|
+
child_element = ET.SubElement(element, "HW-ELEMENT")
|
|
5038
|
+
self.writeHwDescriptionEntity(child_element, hw_element)
|
|
5039
|
+
self.writeHwElementHwPinGroups(child_element, hw_element)
|
|
5040
|
+
|
|
5041
|
+
def writeHwAttributeDef(self, element: ET.Element, attribute_def: HwAttributeDef):
|
|
5042
|
+
if attribute_def is not None:
|
|
5043
|
+
child_element = ET.SubElement(element, "HW-ATTRIBUTE-DEF")
|
|
5044
|
+
self.writeIdentifiable(child_element, attribute_def)
|
|
5045
|
+
self.setChildElementOptionalRefType(child_element, "UNIT-REF", attribute_def.getUnitRef())
|
|
5046
|
+
|
|
5047
|
+
def writeHwCategoryHwAttributeDef(self, element: ET.Element, hw_category: HwCategory):
|
|
5048
|
+
attribute_defs = hw_category.getHwAttributeDefs()
|
|
5049
|
+
if len(attribute_defs) > 0:
|
|
5050
|
+
child_element = ET.SubElement(element, "HW-ATTRIBUTE-DEFS")
|
|
5051
|
+
for attribute_def in attribute_defs:
|
|
5052
|
+
if isinstance(attribute_def, HwAttributeDef):
|
|
5053
|
+
self.writeHwAttributeDef(child_element, attribute_def)
|
|
5054
|
+
else:
|
|
5055
|
+
self.notImplemented("Unsupported Hw Attribute Defs <%s>" % type(attribute_def))
|
|
5056
|
+
|
|
5057
|
+
def writeHwCategory(self, element: ET.Element, hw_category: HwCategory):
|
|
5058
|
+
self.logger.debug("write HwCategory <%s>" % hw_category.getShortName())
|
|
5059
|
+
child_element = ET.SubElement(element, "HW-CATEGORY")
|
|
5060
|
+
self.writeARElement(child_element, hw_category)
|
|
5061
|
+
self.writeHwCategoryHwAttributeDef(child_element, hw_category)
|
|
5062
|
+
|
|
5063
|
+
def writeHwType(self, element: ET.Element, type: HwType):
|
|
5064
|
+
self.logger.debug("Write HwType <%s>" % type.getShortName())
|
|
5065
|
+
child_element = ET.SubElement(element, "HW-TYPE")
|
|
5066
|
+
self.writeARElement(child_element, type)
|
|
5067
|
+
|
|
4255
5068
|
def writeLinCommunicationController(self, element: ET.Element, controller: LinCommunicationController):
|
|
4256
5069
|
self.writeCommunicationController(element, controller)
|
|
4257
5070
|
self.setChildElementOptionalLiteral(element, "PROTOCOL-VERSION", controller.getProtocolVersion())
|
|
@@ -4296,7 +5109,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
4296
5109
|
self.setChildElementOptionalRefType(child_element, "I-SIGNAL-IN-I-PDU-REF", condition.getISignalInIPduRef())
|
|
4297
5110
|
|
|
4298
5111
|
def setTimeRangeType(self, element: ET.Element, key: str, time_range: TimeRangeType):
|
|
4299
|
-
|
|
5112
|
+
if time_range is not None:
|
|
4300
5113
|
child_element = ET.SubElement(element, key)
|
|
4301
5114
|
self.setChildElementOptionalTimeValue(child_element, "VALUE", time_range.getValue())
|
|
4302
5115
|
|
|
@@ -4305,12 +5118,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
4305
5118
|
child_element = ET.SubElement(element, key)
|
|
4306
5119
|
self.setChildElementOptionalIntegerValue(child_element, "NUMBER-OF-REPETITIONS", timing.getNumberOfRepetitions())
|
|
4307
5120
|
self.setTimeRangeType(child_element, "REPETITION-PERIOD", timing.getRepetitionPeriod())
|
|
4308
|
-
|
|
4309
|
-
def setTimeRangeType(self, element: ET.Element, key: str, time_range: TimeRangeType):
|
|
4310
|
-
if time_range is not None:
|
|
4311
|
-
child_element = ET.SubElement(element, key)
|
|
4312
|
-
self.setChildElementOptionalTimeValue(child_element, "VALUE", time_range.getValue())
|
|
4313
|
-
|
|
5121
|
+
|
|
4314
5122
|
def setCyclicTiming(self, element: ET.Element, key: str, timing: CyclicTiming):
|
|
4315
5123
|
if timing is not None:
|
|
4316
5124
|
child_element = ET.SubElement(element, key)
|
|
@@ -4324,7 +5132,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
4324
5132
|
self.setCyclicTiming(child_element, "CYCLIC-TIMING", timing.getCyclicTiming())
|
|
4325
5133
|
self.setEventControlledTiming(child_element, "EVENT-CONTROLLED-TIMING", timing.getEventControlledTiming())
|
|
4326
5134
|
|
|
4327
|
-
def setTransmissionModeDeclaration(self, element: ET.Element, key: str, decl
|
|
5135
|
+
def setTransmissionModeDeclaration(self, element: ET.Element, key: str, decl: TransmissionModeDeclaration):
|
|
4328
5136
|
if decl is not None:
|
|
4329
5137
|
child_element = ET.SubElement(element, key)
|
|
4330
5138
|
self.setTransmissionModeConditions(child_element, "TRANSMISSION-MODE-CONDITIONS", decl.getTransmissionModeConditions())
|
|
@@ -4347,6 +5155,144 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
4347
5155
|
self.writeISignalToPduMappings(child_element, ipdu)
|
|
4348
5156
|
self.setChildElementOptionalIntegerValue(child_element, "UNUSED-BIT-PATTERN", ipdu.getUnusedBitPattern())
|
|
4349
5157
|
|
|
5158
|
+
def writeFlexrayFrame(self, element: ET.Element, frame: FlexrayFrame):
|
|
5159
|
+
if frame is not None:
|
|
5160
|
+
self.logger.debug("Write FlexrayFrame <%s>" % frame.getShortName())
|
|
5161
|
+
child_element = ET.SubElement(element, "FLEXRAY-FRAME")
|
|
5162
|
+
self.writeFrame(child_element, frame)
|
|
5163
|
+
|
|
5164
|
+
def writeFlexrayCommunicationController(self, element: ET.Element, controller: FlexrayCommunicationController):
|
|
5165
|
+
if controller is not None:
|
|
5166
|
+
self.logger.debug("Write FlexrayCommunicationController <%s>" % controller.getShortName())
|
|
5167
|
+
controller_element = ET.SubElement(element, "FLEXRAY-COMMUNICATION-CONTROLLER")
|
|
5168
|
+
self.writeIdentifiable(controller_element, controller)
|
|
5169
|
+
variant_element = ET.SubElement(controller_element, "FLEXRAY-COMMUNICATION-CONTROLLER-VARIANTS")
|
|
5170
|
+
child_element = ET.SubElement(variant_element, "FLEXRAY-COMMUNICATION-CONTROLLER-CONDITIONAL")
|
|
5171
|
+
self.writeCommunicationController(controller_element, controller)
|
|
5172
|
+
self.setChildElementOptionalIntegerValue(child_element, "ACCEPTED-STARTUP-RANGE", controller.getAcceptedStartupRange())
|
|
5173
|
+
self.setChildElementOptionalBooleanValue(child_element, "ALLOW-HALT-DUE-TO-CLOCK", controller.getAllowHaltDueToClock())
|
|
5174
|
+
self.setChildElementOptionalIntegerValue(child_element, "ALLOW-PASSIVE-TO-ACTIVE", controller.getAllowPassiveToActive())
|
|
5175
|
+
self.setChildElementOptionalIntegerValue(child_element, "CLUSTER-DRIFT-DAMPING", controller.getClusterDriftDamping())
|
|
5176
|
+
self.setChildElementOptionalIntegerValue(child_element, "DECODING-CORRECTION", controller.getDecodingCorrection())
|
|
5177
|
+
self.setChildElementOptionalIntegerValue(child_element, "DELAY-COMPENSATION-A", controller.getDelayCompensationA())
|
|
5178
|
+
self.setChildElementOptionalIntegerValue(child_element, "DELAY-COMPENSATION-B", controller.getDelayCompensationB())
|
|
5179
|
+
self.setChildElementOptionalBooleanValue(child_element, "KEY-SLOT-ONLY-ENABLED", controller.getKeySlotOnlyEnabled())
|
|
5180
|
+
self.setChildElementOptionalBooleanValue(child_element, "KEY-SLOT-USED-FOR-START-UP", controller.getKeySlotUsedForStartUp())
|
|
5181
|
+
self.setChildElementOptionalBooleanValue(child_element, "KEY-SLOT-USED-FOR-SYNC", controller.getKeySlotUsedForSync())
|
|
5182
|
+
self.setChildElementOptionalIntegerValue(child_element, "LATEST-TX", controller.getLatestTX())
|
|
5183
|
+
self.setChildElementOptionalIntegerValue(child_element, "LISTEN-TIMEOUT", controller.getListenTimeout())
|
|
5184
|
+
self.setChildElementOptionalIntegerValue(child_element, "MACRO-INITIAL-OFFSET-A", controller.getMacroInitialOffsetA())
|
|
5185
|
+
self.setChildElementOptionalIntegerValue(child_element, "MACRO-INITIAL-OFFSET-B", controller.getMacroInitialOffsetB())
|
|
5186
|
+
self.setChildElementOptionalIntegerValue(child_element, "MAXIMUM-DYNAMIC-PAYLOAD-LENGTH", controller.getMaximumDynamicPayloadLength())
|
|
5187
|
+
self.setChildElementOptionalIntegerValue(child_element, "MICRO-INITIAL-OFFSET-A", controller.getMicroInitialOffsetA())
|
|
5188
|
+
self.setChildElementOptionalIntegerValue(child_element, "MICRO-INITIAL-OFFSET-B", controller.getMicroInitialOffsetB())
|
|
5189
|
+
self.setChildElementOptionalIntegerValue(child_element, "MICRO-PER-CYCLE", controller.getMicroPerCycle())
|
|
5190
|
+
self.setChildElementOptionalTimeValue(child_element, "MICROTICK-DURATION", controller.getMicrotickDuration())
|
|
5191
|
+
self.setChildElementOptionalIntegerValue(child_element, "OFFSET-CORRECTION-OUT", controller.getOffsetCorrectionOut())
|
|
5192
|
+
self.setChildElementOptionalIntegerValue(child_element, "RATE-CORRECTION-OUT", controller.getRateCorrectionOut())
|
|
5193
|
+
self.setChildElementOptionalIntegerValue(child_element, "SAMPLES-PER-MICROTICK", controller.getSamplesPerMicrotick())
|
|
5194
|
+
self.setChildElementOptionalIntegerValue(child_element, "WAKE-UP-PATTERN", controller.getWakeUpPattern())
|
|
5195
|
+
|
|
5196
|
+
def writeDataTransformationTransformerChainRefs(self, element: ET.Element, dtf: DataTransformation):
|
|
5197
|
+
refs = dtf.getTransformerChainRefs()
|
|
5198
|
+
if len(refs) > 0:
|
|
5199
|
+
child_element = ET.SubElement(element, "TRANSFORMER-CHAIN-REFS")
|
|
5200
|
+
for ref in refs:
|
|
5201
|
+
self.setChildElementOptionalRefType(child_element, "TRANSFORMER-CHAIN-REF", ref)
|
|
5202
|
+
|
|
5203
|
+
def writeDataTransformation(self, element: ET.Element, dtf: DataTransformation):
|
|
5204
|
+
if dtf is not None:
|
|
5205
|
+
child_element = ET.SubElement(element, "DATA-TRANSFORMATION")
|
|
5206
|
+
self.writeIdentifiable(child_element, dtf)
|
|
5207
|
+
self.setChildElementOptionalBooleanValue(child_element, "EXECUTE-DESPITE-DATA-UNAVAILABILITY", dtf.getExecuteDespiteDataUnavailability())
|
|
5208
|
+
self.writeDataTransformationTransformerChainRefs(child_element, dtf)
|
|
5209
|
+
|
|
5210
|
+
def writeDataTransformationSetDataTransformations(self, element: ET.Element, dtf_set: DataTransformationSet):
|
|
5211
|
+
dtfs = dtf_set.getDataTransformations()
|
|
5212
|
+
if len(dtfs) > 0:
|
|
5213
|
+
child_element = ET.SubElement(element, "DATA-TRANSFORMATIONS")
|
|
5214
|
+
for dtf in dtfs:
|
|
5215
|
+
if isinstance(dtf, DataTransformation):
|
|
5216
|
+
self.writeDataTransformation(child_element, dtf)
|
|
5217
|
+
else:
|
|
5218
|
+
self.notImplemented("Unsupported DataTransformation <%s>" % type(dtf))
|
|
5219
|
+
|
|
5220
|
+
def writeDataTransformationSetTransformationTechnologies(self, element: ET.Element, dtf_set: DataTransformationSet):
|
|
5221
|
+
techs = dtf_set.getTransformationTechnologies()
|
|
5222
|
+
if len(techs) > 0:
|
|
5223
|
+
child_element = ET.SubElement(element, "TRANSFORMATION-TECHNOLOGYS")
|
|
5224
|
+
for tech in techs:
|
|
5225
|
+
if isinstance(tech, TransformationTechnology):
|
|
5226
|
+
self.writeTransformationTechnology(child_element, tech)
|
|
5227
|
+
else:
|
|
5228
|
+
self.notImplemented("Unsupported TransformationTechnology <%s>" % type(tech))
|
|
5229
|
+
|
|
5230
|
+
def writeBufferPropertiesBufferComputation(self, element: ET.Element, properties: BufferProperties):
|
|
5231
|
+
computation = properties.getBufferComputation()
|
|
5232
|
+
if computation is not None:
|
|
5233
|
+
self.setCompuScale(element, "BUFFER-COMPUTATION", computation)
|
|
5234
|
+
|
|
5235
|
+
def setBufferProperties(self, element: ET.Element, key: str, properties: BufferProperties):
|
|
5236
|
+
if properties is not None:
|
|
5237
|
+
child_element = ET.SubElement(element, key)
|
|
5238
|
+
self.writeBufferPropertiesBufferComputation(child_element, properties)
|
|
5239
|
+
self.setChildElementOptionalIntegerValue(child_element, "HEADER-LENGTH", properties.getHeaderLength())
|
|
5240
|
+
self.setChildElementOptionalBooleanValue(child_element, "IN-PLACE", properties.getInPlace())
|
|
5241
|
+
|
|
5242
|
+
def writeDescribable(self, element: ET.Element, desc: Describable):
|
|
5243
|
+
self.writeARObjectAttributes(element, desc)
|
|
5244
|
+
|
|
5245
|
+
def writeTransformationDescription(self, element: ET.Element, desc: TransformationDescription):
|
|
5246
|
+
self.writeDescribable(element, desc)
|
|
5247
|
+
|
|
5248
|
+
def writeEndToEndTransformationDescription(self, element: ET.Element, desc: EndToEndTransformationDescription):
|
|
5249
|
+
if desc is not None:
|
|
5250
|
+
child_element = ET.SubElement(element, "END-TO-END-TRANSFORMATION-DESCRIPTION")
|
|
5251
|
+
self.writeTransformationDescription(child_element, desc)
|
|
5252
|
+
self.setChildElementOptionalLiteral(child_element, "DATA-ID-MODE", desc.getDataIdMode())
|
|
5253
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MAX-DELTA-COUNTER", desc.getMaxDeltaCounter())
|
|
5254
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MAX-ERROR-STATE-INIT", desc.getMaxErrorStateInit())
|
|
5255
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MAX-ERROR-STATE-INVALID", desc.getMaxErrorStateInvalid())
|
|
5256
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MAX-ERROR-STATE-VALID", desc.getMaxErrorStateValid())
|
|
5257
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MAX-NO-NEW-OR-REPEATED-DATA", desc.getMaxNoNewOrRepeatedData())
|
|
5258
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MIN-OK-STATE-INIT", desc.getMinOkStateInit())
|
|
5259
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MIN-OK-STATE-INVALID", desc.getMinOkStateInvalid())
|
|
5260
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MIN-OK-STATE-VALID", desc.getMinOkStateValid())
|
|
5261
|
+
self.setChildElementOptionalLiteral(child_element, "PROFILE-BEHAVIOR", desc.getProfileBehavior())
|
|
5262
|
+
self.setChildElementOptionalLiteral(child_element, "PROFILE-NAME", desc.getProfileName())
|
|
5263
|
+
self.setChildElementOptionalPositiveInteger(child_element, "SYNC-COUNTER-INIT", desc.getSyncCounterInit())
|
|
5264
|
+
self.setChildElementOptionalPositiveInteger(child_element, "UPPER-HEADER-BITS-TO-SHIFT", desc.getUpperHeaderBitsToShift())
|
|
5265
|
+
self.setChildElementOptionalPositiveInteger(child_element, "WINDOW-SIZE-INIT", desc.getWindowSizeInit())
|
|
5266
|
+
self.setChildElementOptionalPositiveInteger(child_element, "WINDOW-SIZE-INVALID", desc.getWindowSizeInvalid())
|
|
5267
|
+
self.setChildElementOptionalPositiveInteger(child_element, "WINDOW-SIZE-VALID", desc.getWindowSizeValid())
|
|
5268
|
+
|
|
5269
|
+
def writeTransformationTechnologyTransformationDescriptions(self, element: ET.Element, tech: TransformationTechnology):
|
|
5270
|
+
desc = tech.getTransformationDescription()
|
|
5271
|
+
if desc is not None:
|
|
5272
|
+
child_element = ET.SubElement(element, "TRANSFORMATION-DESCRIPTIONS")
|
|
5273
|
+
if isinstance(desc, EndToEndTransformationDescription):
|
|
5274
|
+
self.writeEndToEndTransformationDescription(child_element, desc)
|
|
5275
|
+
else:
|
|
5276
|
+
self.notImplemented("Unsupported TransformationDescription <%s>" % type(desc))
|
|
5277
|
+
|
|
5278
|
+
def writeTransformationTechnology(self, element: ET.Element, tech: TransformationTechnology):
|
|
5279
|
+
if tech is not None:
|
|
5280
|
+
child_element = ET.SubElement(element, "TRANSFORMATION-TECHNOLOGY")
|
|
5281
|
+
self.writeIdentifiable(child_element, tech)
|
|
5282
|
+
self.setBufferProperties(child_element, "BUFFER-PROPERTIES", tech.getBufferProperties())
|
|
5283
|
+
self.setChildElementOptionalBooleanValue(child_element, "NEEDS-ORIGINAL-DATA", tech.getNeedsOriginalData())
|
|
5284
|
+
self.setChildElementOptionalLiteral(child_element, "PROTOCOL", tech.getProtocol())
|
|
5285
|
+
self.writeTransformationTechnologyTransformationDescriptions(child_element, tech)
|
|
5286
|
+
self.setChildElementOptionalLiteral(child_element, "TRANSFORMER-CLASS", tech.getTransformerClass())
|
|
5287
|
+
self.setChildElementOptionalLiteral(child_element, "VERSION", tech.getVersion())
|
|
5288
|
+
|
|
5289
|
+
def writeDataTransformationSet(self, element: ET.Element, dtf_set: DataTransformationSet):
|
|
5290
|
+
if dtf_set is not None:
|
|
5291
|
+
child_element = ET.SubElement(element, "DATA-TRANSFORMATION-SET")
|
|
5292
|
+
self.writeIdentifiable(child_element, dtf_set)
|
|
5293
|
+
self.writeDataTransformationSetDataTransformations(child_element, dtf_set)
|
|
5294
|
+
self.writeDataTransformationSetTransformationTechnologies(child_element, dtf_set)
|
|
5295
|
+
|
|
4350
5296
|
def writeARPackageElement(self, element: ET.Element, ar_element: ARElement):
|
|
4351
5297
|
if isinstance(ar_element, ComplexDeviceDriverSwComponentType):
|
|
4352
5298
|
self.writeComplexDeviceDriverSwComponentType(element, ar_element)
|
|
@@ -4476,9 +5422,31 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
4476
5422
|
self.writeSoAdRoutingGroup(element, ar_element)
|
|
4477
5423
|
elif isinstance(ar_element, DoIpTpConfig):
|
|
4478
5424
|
self.writeDoIpTpConfig(element, ar_element)
|
|
5425
|
+
elif isinstance(ar_element, HwElement):
|
|
5426
|
+
self.writeHwElement(element, ar_element)
|
|
5427
|
+
elif isinstance(ar_element, HwCategory):
|
|
5428
|
+
self.writeHwCategory(element, ar_element)
|
|
5429
|
+
elif isinstance(ar_element, HwType):
|
|
5430
|
+
self.writeHwType(element, ar_element)
|
|
5431
|
+
elif isinstance(ar_element, DataTransformationSet):
|
|
5432
|
+
self.writeDataTransformationSet(element, ar_element)
|
|
5433
|
+
elif isinstance(ar_element, FlexrayFrame):
|
|
5434
|
+
self.writeFlexrayFrame(element, ar_element)
|
|
5435
|
+
elif isinstance(ar_element, ISignalGroup):
|
|
5436
|
+
self.writeISignalGroup(element, ar_element)
|
|
5437
|
+
elif isinstance(ar_element, SystemSignalGroup):
|
|
5438
|
+
self.writeSystemSignalGroup(element, ar_element)
|
|
5439
|
+
elif isinstance(ar_element, FlexrayCluster):
|
|
5440
|
+
self.writeFlexrayCluster(element, ar_element)
|
|
5441
|
+
elif isinstance(ar_element, Collection):
|
|
5442
|
+
self.writeCollection(element, ar_element)
|
|
5443
|
+
elif isinstance(ar_element, KeywordSet):
|
|
5444
|
+
self.writeKeywordSet(element, ar_element)
|
|
5445
|
+
elif isinstance(ar_element, PortPrototypeBlueprint):
|
|
5446
|
+
self.writePortPrototypeBlueprint(element, ar_element)
|
|
4479
5447
|
else:
|
|
4480
5448
|
self.notImplemented("Unsupported Elements of ARPackage <%s>" % type(ar_element))
|
|
4481
|
-
|
|
5449
|
+
|
|
4482
5450
|
def writeReferenceBases(self, element: ET.Element, bases: List[ReferenceBase]):
|
|
4483
5451
|
self.logger.debug("Write ReferenceBases")
|
|
4484
5452
|
if len(bases) > 0:
|
|
@@ -4488,40 +5456,46 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
4488
5456
|
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", base.getShortLabel())
|
|
4489
5457
|
self.setChildElementOptionalBooleanValue(child_element, "IS-DEFAULT", base.getIsDefault())
|
|
4490
5458
|
self.setChildElementOptionalBooleanValue(child_element, "IS-GLOBAL", base.getIsDefault())
|
|
4491
|
-
self.setChildElementOptionalBooleanValue(child_element,
|
|
5459
|
+
self.setChildElementOptionalBooleanValue(child_element, "BASE-IS-THIS-PACKAGE", base.getBaseIsThisPackage())
|
|
4492
5460
|
self.setChildElementOptionalRefType(child_element, "PACKAGE-REF", base.getPackageRef())
|
|
4493
|
-
|
|
4494
|
-
def writeARPackages(self, element: ET.Element, pkgs: List[ARPackage]):
|
|
4495
|
-
if len(pkgs) > 0:
|
|
4496
|
-
pkgs_tag = ET.SubElement(element, "AR-PACKAGES")
|
|
4497
5461
|
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
self.writeIdentifiable(pkg_tag, pkg)
|
|
4502
|
-
self.logger.debug("writeARPackage %s" % pkg.full_name)
|
|
5462
|
+
def writeARPackage(self, element: ET.Element, pkg: ARPackage):
|
|
5463
|
+
self.logger.debug("Write ARPackage %s" % pkg.getFullName())
|
|
5464
|
+
child_element = ET.SubElement(element, "AR-PACKAGE")
|
|
4503
5465
|
|
|
4504
|
-
|
|
5466
|
+
self.writeIdentifiable(child_element, pkg)
|
|
5467
|
+
self.writeReferenceBases(child_element, pkg.getReferenceBases())
|
|
5468
|
+
self.writeARPackageElements(child_element, pkg)
|
|
5469
|
+
self.writeARPackages(child_element, pkg.getARPackages())
|
|
4505
5470
|
|
|
4506
|
-
|
|
4507
|
-
|
|
5471
|
+
def writeARPackageElements(self, element: ET.Element, pkg: ARPackage):
|
|
5472
|
+
if pkg.getTotalElement() > 0:
|
|
5473
|
+
elements_tag = ET.SubElement(element, "ELEMENTS")
|
|
4508
5474
|
|
|
4509
|
-
|
|
4510
|
-
|
|
4511
|
-
|
|
5475
|
+
for ar_element in pkg.getElements():
|
|
5476
|
+
if not isinstance(ar_element, ARPackage):
|
|
5477
|
+
self.writeARPackageElement(elements_tag, ar_element)
|
|
4512
5478
|
|
|
4513
|
-
|
|
4514
|
-
|
|
5479
|
+
def writeARPackages(self, element: ET.Element, pkgs: List[ARPackage]):
|
|
5480
|
+
if len(pkgs) > 0:
|
|
5481
|
+
child_element = ET.SubElement(element, "AR-PACKAGES")
|
|
5482
|
+
for pkg in pkgs:
|
|
5483
|
+
if isinstance(pkg, ARPackage):
|
|
5484
|
+
self.writeARPackage(child_element, pkg)
|
|
5485
|
+
else:
|
|
5486
|
+
self.notImplemented("Unsupported ARPackage <%s>" % type(pkg))
|
|
4515
5487
|
|
|
4516
5488
|
def save(self, filename, document: AUTOSAR):
|
|
4517
5489
|
self.logger.info("Saving %s ..." % filename)
|
|
4518
5490
|
|
|
4519
5491
|
root = ET.Element("AUTOSAR", self.nsmap)
|
|
4520
5492
|
root.attrib["xmlns:xsi"] = "http://www.w3.org/2001/XMLSchema-instance"
|
|
4521
|
-
|
|
5493
|
+
if document.schema_location is not None:
|
|
5494
|
+
root.attrib["xsi:schemaLocation"] = document.schema_location
|
|
5495
|
+
else:
|
|
5496
|
+
root.attrib["xsi:schemaLocation"] = "http://autosar.org/schema/r4.0 AUTOSAR_4-0-3.xsd"
|
|
4522
5497
|
|
|
4523
5498
|
self.setAdminData(root, document.getAdminData())
|
|
4524
5499
|
self.writeARPackages(root, document.getARPackages())
|
|
4525
5500
|
|
|
4526
5501
|
self.saveToFile(filename, root)
|
|
4527
|
-
|