armodel 1.7.2__py3-none-any.whl → 1.7.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- armodel/cli/arxml_dump_cli.py +1 -1
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +44 -20
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +104 -30
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +12 -16
- armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +70 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +12 -9
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +29 -22
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +33 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +10 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +23 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +93 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +39 -5
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +28 -5
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +48 -6
- armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +5 -5
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +27 -1
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +39 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +17 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +8 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +196 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +31 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +4 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +17 -32
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +4 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +17 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +81 -34
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +10 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +229 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +167 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +225 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +96 -7
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +47 -4
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +18 -5
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +7 -12
- armodel/models/M2/MSR/AsamHdo/BaseTypes.py +0 -1
- armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +16 -1
- armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +34 -3
- armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +7 -0
- armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +33 -0
- armodel/models/__init__.py +6 -0
- armodel/parser/abstract_arxml_parser.py +4 -14
- armodel/parser/arxml_parser.py +567 -224
- armodel/tests/test_armodel/models/test_ar_object.py +6 -2
- armodel/tests/test_armodel/models/test_ar_ref.py +2 -2
- armodel/tests/test_armodel/models/test_port_interface.py +4 -4
- armodel/tests/test_armodel/parser/test_parse_bswmd.py +48 -48
- armodel/writer/abstract_arxml_writer.py +2 -3
- armodel/writer/arxml_writer.py +566 -288
- {armodel-1.7.2.dist-info → armodel-1.7.4.dist-info}/METADATA +30 -2
- {armodel-1.7.2.dist-info → armodel-1.7.4.dist-info}/RECORD +54 -44
- {armodel-1.7.2.dist-info → armodel-1.7.4.dist-info}/LICENSE +0 -0
- {armodel-1.7.2.dist-info → armodel-1.7.4.dist-info}/WHEEL +0 -0
- {armodel-1.7.2.dist-info → armodel-1.7.4.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.2.dist-info → armodel-1.7.4.dist-info}/top_level.txt +0 -0
armodel/writer/arxml_writer.py
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import xml.etree.cElementTree as ET
|
|
2
|
-
|
|
3
2
|
from typing import List
|
|
4
3
|
|
|
5
4
|
from ..models.M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
|
|
6
5
|
from ..models.M2.MSR.AsamHdo.AdminData import AdminData
|
|
7
6
|
from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition, SwBaseType
|
|
8
|
-
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuConstTextContent, CompuMethod, CompuNominatorDenominator, CompuScale, CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
|
|
7
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import Compu, CompuConst, CompuConstContent, CompuConstFormulaContent, CompuConstNumericContent, CompuConstTextContent, CompuMethod, CompuNominatorDenominator, CompuScale, CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
|
|
9
8
|
from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr, InternalConstrs, PhysConstrs
|
|
10
9
|
from ..models.M2.MSR.AsamHdo.SpecialData import Sdg
|
|
11
10
|
from ..models.M2.MSR.AsamHdo.Units import PhysicalDimension, Unit
|
|
@@ -13,8 +12,9 @@ from ..models.M2.MSR.CalibrationData.CalibrationValue import SwValueCont, SwValu
|
|
|
13
12
|
from ..models.M2.MSR.DataDictionary.Axis import SwAxisGrouped, SwAxisIndividual
|
|
14
13
|
from ..models.M2.MSR.DataDictionary.AuxillaryObjects import SwAddrMethod
|
|
15
14
|
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxis, SwCalprmAxisSet
|
|
16
|
-
from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, ValueList
|
|
15
|
+
from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, SwPointerTargetProps, ValueList
|
|
17
16
|
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayout, SwRecordLayoutGroup, SwRecordLayoutV
|
|
17
|
+
from ..models.M2.MSR.DataDictionary.ServiceProcessTask import SwServiceArg
|
|
18
18
|
from ..models.M2.MSR.Documentation.Annotation import Annotation
|
|
19
19
|
from ..models.M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
|
|
20
20
|
from ..models.M2.MSR.Documentation.TextModel.BlockElements.ListElements import ListElement
|
|
@@ -25,20 +25,21 @@ from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
|
25
25
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
26
26
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
|
|
27
27
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
|
|
28
|
-
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswCalledEntity, BswEvent, BswInternalBehavior, BswModeSenderPolicy, BswModuleEntity, BswSchedulableEntity, BswScheduleEvent, BswTimingEvent
|
|
28
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswCalledEntity, BswEvent, BswInternalBehavior, BswInterruptEntity, BswModeSenderPolicy, BswModuleEntity, BswSchedulableEntity, BswScheduleEvent, BswTimingEvent
|
|
29
29
|
from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference, ConstantSpecification, NumericalValueSpecification, RecordValueSpecification, TextValueSpecification, ValueSpecification
|
|
30
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatInstanceDescriptor, FlatMap
|
|
30
31
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Filter import DataFilter
|
|
31
32
|
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping, SwcBswRunnableMapping
|
|
32
33
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import Code, Implementation
|
|
33
34
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming, TimingExtension
|
|
34
35
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import EOCExecutableEntityRef, ExecutionOrderConstraint
|
|
35
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagEventDebounceMonitorInternal, DiagnosticCommunicationManagerNeeds, DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds, NvBlockNeeds, RoleBasedDataAssignment, RoleBasedDataTypeAssignment, ServiceDependency
|
|
36
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagEventDebounceMonitorInternal, DiagnosticCommunicationManagerNeeds, DiagnosticEventInfoNeeds, DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds, EcuStateMgrUserNeeds, NvBlockNeeds, RoleBasedDataAssignment, RoleBasedDataTypeAssignment, ServiceDependency
|
|
36
37
|
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
|
|
37
38
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
|
|
38
39
|
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
|
|
39
40
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclaration, ModeDeclarationGroup, ModeDeclarationGroupPrototype
|
|
40
41
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import ResourceConsumption
|
|
41
|
-
|
|
42
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.StackUsage import RoughEstimateStackUsage, StackUsage
|
|
42
43
|
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
|
|
43
44
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
|
|
44
45
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, MultilanguageReferrable, Referrable
|
|
@@ -46,7 +47,7 @@ from ..models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyI
|
|
|
46
47
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage, ReferenceBase
|
|
47
48
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARLiteral, Limit
|
|
48
49
|
|
|
49
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption
|
|
50
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption, PortDefinedArgumentValue
|
|
50
51
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import AsynchronousServerCallReturnsEvent, DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent, TimingEvent
|
|
51
52
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
52
53
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType, AutosarDataType
|
|
@@ -56,12 +57,13 @@ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import Compo
|
|
|
56
57
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AbstractProvidedPortPrototype, AbstractRequiredPortPrototype, ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, CompositionSwComponentType, EcuAbstractionSwComponentType, PRPortPrototype, PortGroup, SwComponentType, PPortPrototype, PortPrototype, RPortPrototype
|
|
57
58
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import InnerPortGroupInCompositionInstanceRef, PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef, RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
|
|
58
59
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import AsynchronousServerCallPoint, RunnableEntity, RunnableEntityArgument, SwcInternalBehavior, SynchronousServerCallPoint
|
|
60
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AutosarVariableRef import AutosarVariableRef
|
|
59
61
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
|
|
60
62
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
|
|
61
63
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import AssemblySwConnector, DelegationSwConnector, SwComponentPrototype, SwConnector
|
|
62
64
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef, ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef
|
|
63
65
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
|
|
64
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef,
|
|
66
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef, VariableInAtomicSWCTypeInstanceRef
|
|
65
67
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, RPortComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
|
|
66
68
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef
|
|
67
69
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import RoleBasedPortAssignment, SwcServiceDependency
|
|
@@ -69,20 +71,24 @@ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes im
|
|
|
69
71
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ServiceSwComponentType
|
|
70
72
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
|
|
71
73
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
|
|
72
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ClientServerInterface, ClientServerOperation, ModeSwitchInterface, ParameterInterface, PortInterface, SenderReceiverInterface, TriggerInterface
|
|
74
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ClientServerInterface, ClientServerOperation, DataPrototypeMapping, ModeSwitchInterface, ParameterInterface, PortInterface, PortInterfaceMappingSet, SenderReceiverInterface, TriggerInterface, VariableAndParameterInterfaceMapping
|
|
73
75
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
|
|
74
76
|
|
|
75
77
|
from ..models.M2.AUTOSARTemplates.SystemTemplate import SwcToEcuMapping, System, SystemMapping
|
|
76
78
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderReceiverToSignalGroupMapping, SenderReceiverToSignalMapping
|
|
77
79
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FrameTriggering, IPdu, IPduTiming, ISignalGroup, ISignalIPdu, ISignalIPduGroup, ISignalTriggering, PduTriggering, SecuredIPdu, SystemSignal, DcmIPdu, Frame, ISignal, NPdu, NmPdu, SystemSignalGroup
|
|
78
80
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
79
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import EventControlledTiming, TimeRangeType, TransmissionModeCondition, TransmissionModeDeclaration, TransmissionModeTiming
|
|
81
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import CyclicTiming, EventControlledTiming, TimeRangeType, TransmissionModeCondition, TransmissionModeDeclaration, TransmissionModeTiming
|
|
82
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SocketConnection, SocketConnectionBundle, SocketConnectionIpduIdentifier
|
|
80
83
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
|
|
84
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCluster, EthernetCommunicationConnector, EthernetCommunicationController
|
|
85
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import Ipv6Configuration, NetworkEndpoint, NetworkEndpointAddress
|
|
86
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import SoAdConfig
|
|
81
87
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway, ISignalMapping
|
|
82
88
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame, CanFrameTriggering, RxIdentifierRange
|
|
83
89
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
|
|
84
90
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering, LinUnconditionalFrame
|
|
85
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanCluster, CanPhysicalChannel, CommConnectorPort, CommunicationCluster, CommunicationConnector, FramePort, IPduPort, ISignalPort, LinCluster, LinPhysicalChannel, PhysicalChannel
|
|
91
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanCluster, CanPhysicalChannel, CommConnectorPort, CommunicationCluster, CommunicationConnector, EthernetPhysicalChannel, FramePort, IPduPort, ISignalPort, LinCluster, LinPhysicalChannel, PhysicalChannel
|
|
86
92
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef, VariableDataPrototypeInSystemInstanceRef
|
|
87
93
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode
|
|
88
94
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig
|
|
@@ -127,7 +133,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
127
133
|
for sdg in sdgs:
|
|
128
134
|
self.setSdg(sdgs_tag, sdg)
|
|
129
135
|
|
|
130
|
-
def
|
|
136
|
+
def setChildLimitElement(self, element: ET.Element, key: str, limit: Limit):
|
|
131
137
|
if limit is not None:
|
|
132
138
|
limit_tag = ET.SubElement(element, key)
|
|
133
139
|
self.setARObjectAttributes(limit_tag, limit)
|
|
@@ -222,7 +228,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
222
228
|
child_element = ET.SubElement(element, "NONQUEUED-SENDER-COM-SPEC")
|
|
223
229
|
self.setARObjectAttributes(child_element, com_spec)
|
|
224
230
|
self.setSenderComSpec(child_element, com_spec)
|
|
225
|
-
self.
|
|
231
|
+
self.setValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
|
|
226
232
|
|
|
227
233
|
def setServerComSpec(self, element: ET.Element, com_spec: ServerComSpec):
|
|
228
234
|
child_element = ET.SubElement(element, "SERVER-COM-SPEC")
|
|
@@ -297,9 +303,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
297
303
|
if cont is not None:
|
|
298
304
|
child_element = ET.SubElement(element, "SW-VALUE-CONT")
|
|
299
305
|
self.setARObjectAttributes(child_element, cont)
|
|
300
|
-
self.setChildElementOptionalRefType(child_element, "UNIT-REF", cont.
|
|
301
|
-
self.setValueList(child_element, "SW-ARRAYSIZE", cont.
|
|
302
|
-
self.setSwValues(child_element, "SW-VALUES-PHYS", cont.
|
|
306
|
+
self.setChildElementOptionalRefType(child_element, "UNIT-REF", cont.unitRef)
|
|
307
|
+
self.setValueList(child_element, "SW-ARRAYSIZE", cont.swArraysize)
|
|
308
|
+
self.setSwValues(child_element, "SW-VALUES-PHYS", cont.swValuesPhys)
|
|
303
309
|
|
|
304
310
|
def writeValueSpecification(self, element: ET.Element, value_spec: ValueSpecification):
|
|
305
311
|
if value_spec is not None:
|
|
@@ -350,37 +356,34 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
350
356
|
self.writeValueSpecification(value_spec_tag, value_spec)
|
|
351
357
|
self.setChildElementOptionalRefType(value_spec_tag, "CONSTANT-REF", value_spec.getConstantRef())
|
|
352
358
|
|
|
353
|
-
def setValueSpecification(self, element: ET.Element, value_spec: ValueSpecification):
|
|
359
|
+
def setValueSpecification(self, element: ET.Element, key: str, value_spec: ValueSpecification):
|
|
354
360
|
if value_spec is not None:
|
|
361
|
+
child_element = ET.SubElement(element, key)
|
|
355
362
|
if isinstance(value_spec, ApplicationValueSpecification):
|
|
356
|
-
self.setApplicationValueSpecification(
|
|
363
|
+
self.setApplicationValueSpecification(child_element, value_spec)
|
|
357
364
|
elif isinstance(value_spec, TextValueSpecification):
|
|
358
|
-
self.setTextValueSpecification(
|
|
365
|
+
self.setTextValueSpecification(child_element, value_spec)
|
|
359
366
|
elif isinstance(value_spec, ConstantReference):
|
|
360
|
-
self.setConstantReference(
|
|
367
|
+
self.setConstantReference(child_element, value_spec)
|
|
361
368
|
elif isinstance(value_spec, NumericalValueSpecification):
|
|
362
|
-
self.setNumericalValueSpecification(
|
|
369
|
+
self.setNumericalValueSpecification(child_element, value_spec)
|
|
363
370
|
elif isinstance(value_spec, ArrayValueSpecification):
|
|
364
|
-
self.setArrayValueSpecification(
|
|
371
|
+
self.setArrayValueSpecification(child_element, value_spec)
|
|
365
372
|
elif isinstance(value_spec, RecordValueSpecification):
|
|
366
|
-
self.setRecordValueSpecification(
|
|
373
|
+
self.setRecordValueSpecification(child_element, value_spec)
|
|
367
374
|
else:
|
|
368
375
|
self.notImplemented("Unsupported ValueSpecification %s" % type(value_spec))
|
|
369
376
|
|
|
370
|
-
def setInitValue(self, element: ET.Element, init_value: ValueSpecification):
|
|
371
|
-
if init_value is not None:
|
|
372
|
-
child_element = ET.SubElement(element, "INIT-VALUE")
|
|
373
|
-
self.setValueSpecification(child_element, init_value)
|
|
374
|
-
|
|
375
377
|
def writeNonqueuedReceiverComSpec(self, element: ET.Element, com_spec: NonqueuedReceiverComSpec):
|
|
376
378
|
child_element = ET.SubElement(element, "NONQUEUED-RECEIVER-COM-SPEC")
|
|
377
379
|
self.setARObjectAttributes(child_element, com_spec)
|
|
378
380
|
self.writeReceiverComSpec(child_element, com_spec)
|
|
379
|
-
self.setChildElementOptionalFloatValue(child_element, "ALIVE-TIMEOUT", com_spec.
|
|
380
|
-
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-UPDATE", com_spec.
|
|
381
|
-
self.
|
|
382
|
-
self.
|
|
383
|
-
self.
|
|
381
|
+
self.setChildElementOptionalFloatValue(child_element, "ALIVE-TIMEOUT", com_spec.getAliveTimeout())
|
|
382
|
+
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-UPDATE", com_spec.getEnableUpdated())
|
|
383
|
+
self.setDataFilter(child_element, "FILTER", com_spec.getFilter())
|
|
384
|
+
self.setChildElementOptionalBooleanValue(child_element, "HANDLE-NEVER-RECEIVED", com_spec.getHandleNeverReceived())
|
|
385
|
+
self.setChildElementOptionalLiteral(child_element, "HANDLE-TIMEOUT-TYPE", com_spec.getHandleTimeoutType())
|
|
386
|
+
self.setValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
|
|
384
387
|
|
|
385
388
|
def writeQueuedReceiverComSpec(self, element: ET.Element, com_spec: QueuedReceiverComSpec):
|
|
386
389
|
child_element = ET.SubElement(element, "QUEUED-RECEIVER-COM-SPEC")
|
|
@@ -398,14 +401,16 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
398
401
|
self.logger.debug("writeParameterRequireComSpec")
|
|
399
402
|
child_element = ET.SubElement(element, "PARAMETER-REQUIRE-COM-SPEC")
|
|
400
403
|
self.setARObjectAttributes(child_element, com_spec)
|
|
401
|
-
self.setChildElementOptionalRefType(child_element, "PARAMETER-REF", com_spec.
|
|
402
|
-
self.
|
|
404
|
+
self.setChildElementOptionalRefType(child_element, "PARAMETER-REF", com_spec.getParameterRef())
|
|
405
|
+
self.setValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
|
|
403
406
|
|
|
404
|
-
def
|
|
407
|
+
def setModeSwitchReceiverComSpec(self, element: ET.Element, com_spec: ModeSwitchReceiverComSpec):
|
|
405
408
|
self.logger.debug("writeModeSwitchReceiverComSpec")
|
|
406
409
|
child_element = ET.SubElement(element, "MODE-SWITCH-RECEIVER-COM-SPEC")
|
|
407
410
|
self.setARObjectAttributes(child_element, com_spec)
|
|
408
|
-
self.
|
|
411
|
+
self.setChildElementOptionalBooleanValue(child_element, "ENHANCED-MODE-API", com_spec.getEnhancedModeApi())
|
|
412
|
+
self.setChildElementOptionalRefType(child_element, "MODE-GROUP-REF", com_spec.getModeGroupRef())
|
|
413
|
+
self.setChildElementOptionalBooleanValue(child_element, "SUPPORTS-ASYNCHRONOUS-MODE-SWITCH", com_spec.getSupportsAsynchronousModeSwitch())
|
|
409
414
|
|
|
410
415
|
def writeRPortComSpec(self, element: ET.Element, com_spec: RPortComSpec):
|
|
411
416
|
if isinstance(com_spec, NonqueuedReceiverComSpec):
|
|
@@ -415,7 +420,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
415
420
|
elif isinstance(com_spec, ClientComSpec):
|
|
416
421
|
self.writeClientComSpec(element, com_spec)
|
|
417
422
|
elif isinstance(com_spec, ModeSwitchReceiverComSpec):
|
|
418
|
-
self.
|
|
423
|
+
self.setModeSwitchReceiverComSpec(element, com_spec)
|
|
419
424
|
elif isinstance(com_spec, ParameterRequireComSpec):
|
|
420
425
|
self.writeParameterRequireComSpec(element, com_spec)
|
|
421
426
|
else:
|
|
@@ -432,7 +437,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
432
437
|
prototype_tag = ET.SubElement(ports_tag, "P-PORT-PROTOTYPE")
|
|
433
438
|
|
|
434
439
|
self.setIdentifiable(prototype_tag, prototype)
|
|
435
|
-
self.logger.debug("write PPortPrototype %s" % prototype.
|
|
440
|
+
self.logger.debug("write PPortPrototype %s" % prototype.getShortName())
|
|
436
441
|
self.setAbstractProvidedPortPrototype(prototype_tag, prototype)
|
|
437
442
|
self.setChildElementOptionalRefType(prototype_tag, "PROVIDED-INTERFACE-TREF", prototype.getProvidedInterfaceTRef())
|
|
438
443
|
|
|
@@ -444,14 +449,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
444
449
|
self.writeRPortComSpec(com_specs_tag, com_spec)
|
|
445
450
|
|
|
446
451
|
def writeRPortPrototype(self, ports_tag: ET.Element, prototype: RPortPrototype):
|
|
447
|
-
self.logger.debug("write RPortPrototype %s" % prototype.
|
|
452
|
+
self.logger.debug("write RPortPrototype %s" % prototype.getShortName())
|
|
448
453
|
prototype_tag = ET.SubElement(ports_tag, "R-PORT-PROTOTYPE")
|
|
449
454
|
self.setIdentifiable(prototype_tag, prototype)
|
|
450
455
|
self.setAbstractRequiredPortPrototype(prototype_tag, prototype)
|
|
451
456
|
self.setChildElementOptionalRefType(prototype_tag, "REQUIRED-INTERFACE-TREF", prototype.getRequiredInterfaceTRef())
|
|
452
457
|
|
|
453
458
|
def writePRPortPrototype(self, ports_tag: ET.Element, prototype: PRPortPrototype):
|
|
454
|
-
self.logger.debug("write PRPortPrototype %s" % prototype.
|
|
459
|
+
self.logger.debug("write PRPortPrototype %s" % prototype.getShortName())
|
|
455
460
|
prototype_tag = ET.SubElement(ports_tag, "PR-PORT-PROTOTYPE")
|
|
456
461
|
self.setIdentifiable(prototype_tag, prototype)
|
|
457
462
|
self.setAbstractProvidedPortPrototype(prototype_tag, prototype)
|
|
@@ -490,7 +495,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
490
495
|
self.setChildElementOptionalRefType(child_element, "PORT-PROTOTYPE-REF", ref)
|
|
491
496
|
|
|
492
497
|
def writePortGroup(self, element: ET.Element, port_group: PortGroup):
|
|
493
|
-
self.logger.debug("writePortGroup %s" % port_group.
|
|
498
|
+
self.logger.debug("writePortGroup %s" % port_group.getShortName())
|
|
494
499
|
child_element = ET.SubElement(element, "PORT-GROUP")
|
|
495
500
|
self.setIdentifiable(child_element, port_group)
|
|
496
501
|
self.writePortGroupInnerGroupIRefs(child_element, port_group)
|
|
@@ -524,18 +529,19 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
524
529
|
self.writeSwComponentPrototype(components_tag, prototype)
|
|
525
530
|
|
|
526
531
|
def writeAssemblySwConnector(self, element: ET.Element, sw_connector: AssemblySwConnector):
|
|
527
|
-
|
|
528
|
-
self.setIdentifiable(
|
|
532
|
+
child_element = ET.SubElement(element, "ASSEMBLY-SW-CONNECTOR")
|
|
533
|
+
self.setIdentifiable(child_element, sw_connector)
|
|
534
|
+
self.setChildElementOptionalRefType(child_element, "MAPPING-REF", sw_connector.getMappingRef())
|
|
529
535
|
|
|
530
536
|
if sw_connector.getProviderIRef() is not None:
|
|
531
|
-
provider_iref_tag = ET.SubElement(
|
|
537
|
+
provider_iref_tag = ET.SubElement(child_element, "PROVIDER-IREF")
|
|
532
538
|
provider_iref = sw_connector.getProviderIRef()
|
|
533
539
|
self.setARObjectAttributes(provider_iref_tag, provider_iref)
|
|
534
540
|
self.setChildElementOptionalRefType(provider_iref_tag, "CONTEXT-COMPONENT-REF", provider_iref.getContextComponentRef())
|
|
535
541
|
self.setChildElementOptionalRefType(provider_iref_tag, "TARGET-P-PORT-REF", provider_iref.getTargetPPortRef())
|
|
536
542
|
|
|
537
543
|
if sw_connector.getRequesterIRef() is not None:
|
|
538
|
-
requester_iref_tag = ET.SubElement(
|
|
544
|
+
requester_iref_tag = ET.SubElement(child_element, "REQUESTER-IREF")
|
|
539
545
|
requester_iref = sw_connector.getRequesterIRef()
|
|
540
546
|
self.setARObjectAttributes(requester_iref_tag, requester_iref)
|
|
541
547
|
self.setChildElementOptionalRefType(requester_iref_tag, "CONTEXT-COMPONENT-REF", requester_iref.getContextComponentRef())
|
|
@@ -650,11 +656,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
650
656
|
def setSwAxisIndividual(self, element: ET.Element, props: SwAxisIndividual):
|
|
651
657
|
child_element = ET.SubElement(element, "SW-AXIS-INDIVIDUAL")
|
|
652
658
|
self.setARObjectAttributes(child_element, props)
|
|
653
|
-
self.setChildElementOptionalRefType(child_element, "INPUT-VARIABLE-TYPE-REF", props.
|
|
654
|
-
self.setChildElementOptionalRefType(child_element, "COMPU-METHOD-REF", props.
|
|
655
|
-
self.setChildElementOptionalNumericalValue(child_element, "SW-MAX-AXIS-POINTS", props.
|
|
656
|
-
self.setChildElementOptionalNumericalValue(child_element, "SW-MIN-AXIS-POINTS", props.
|
|
657
|
-
self.setChildElementOptionalRefType(child_element, "DATA-CONSTR-REF", props.
|
|
659
|
+
self.setChildElementOptionalRefType(child_element, "INPUT-VARIABLE-TYPE-REF", props.getInputVariableTypeRef())
|
|
660
|
+
self.setChildElementOptionalRefType(child_element, "COMPU-METHOD-REF", props.getCompuMethodRef())
|
|
661
|
+
self.setChildElementOptionalNumericalValue(child_element, "SW-MAX-AXIS-POINTS", props.getSwMaxAxisPoints())
|
|
662
|
+
self.setChildElementOptionalNumericalValue(child_element, "SW-MIN-AXIS-POINTS", props.getSwMinAxisPoints())
|
|
663
|
+
self.setChildElementOptionalRefType(child_element, "DATA-CONSTR-REF", props.getDataConstrRef())
|
|
658
664
|
|
|
659
665
|
def setSwAxisGrouped(self, element: ET.Element, props: SwAxisGrouped):
|
|
660
666
|
child_element = ET.SubElement(element, "SW-AXIS-GROUPED")
|
|
@@ -681,32 +687,36 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
681
687
|
for axis in axises:
|
|
682
688
|
self.setSwCalprmAxis(child_element, axis)
|
|
683
689
|
|
|
684
|
-
def
|
|
685
|
-
if props
|
|
686
|
-
child_element = ET.SubElement(element,
|
|
687
|
-
self.
|
|
690
|
+
def setSwPointerTargetProps(self, element: ET.Element, key: str, props: SwPointerTargetProps):
|
|
691
|
+
if props is not None:
|
|
692
|
+
child_element = ET.SubElement(element, key)
|
|
693
|
+
self.setChildElementOptionalLiteral(child_element, "TARGET-CATEGORY", props.getTargetCategory())
|
|
694
|
+
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", props.getSwDataDefProps())
|
|
688
695
|
|
|
689
|
-
def setSwDataDefProps(self, element: ET.Element, key: str,
|
|
690
|
-
if
|
|
696
|
+
def setSwDataDefProps(self, element: ET.Element, key: str, props: SwDataDefProps):
|
|
697
|
+
if props is not None:
|
|
691
698
|
child_element = ET.SubElement(element, key)
|
|
692
|
-
self.setARObjectAttributes(child_element,
|
|
699
|
+
self.setARObjectAttributes(child_element, props)
|
|
693
700
|
sw_data_def_props_variants_tag = ET.SubElement(child_element, "SW-DATA-DEF-PROPS-VARIANTS")
|
|
694
|
-
|
|
695
|
-
self.setARObjectAttributes(
|
|
696
|
-
self.setAnnotations(
|
|
697
|
-
self.setChildElementOptionalRefType(
|
|
698
|
-
self.
|
|
699
|
-
|
|
700
|
-
self.
|
|
701
|
-
self.setChildElementOptionalRefType(
|
|
702
|
-
self.
|
|
703
|
-
self.setChildElementOptionalRefType(
|
|
704
|
-
self.setChildElementOptionalLiteral(
|
|
705
|
-
self.
|
|
706
|
-
self.
|
|
707
|
-
self.
|
|
708
|
-
self.
|
|
709
|
-
self.
|
|
701
|
+
conditional_tag = ET.SubElement(sw_data_def_props_variants_tag, "SW-DATA-DEF-PROPS-CONDITIONAL")
|
|
702
|
+
self.setARObjectAttributes(conditional_tag, props.conditional)
|
|
703
|
+
self.setAnnotations(conditional_tag, props.getAnnotations())
|
|
704
|
+
self.setChildElementOptionalRefType(conditional_tag, "BASE-TYPE-REF", props.getBaseTypeRef())
|
|
705
|
+
self.setChildElementOptionalRefType(conditional_tag, "COMPU-METHOD-REF", props.getCompuMethodRef())
|
|
706
|
+
|
|
707
|
+
self.setValueSpecification(conditional_tag, "INVALID-VALUE", props.getInvalidValue())
|
|
708
|
+
self.setChildElementOptionalRefType(conditional_tag, "IMPLEMENTATION-DATA-TYPE-REF", props.getImplementationDataTypeRef())
|
|
709
|
+
self.setChildElementOptionalFloatValue(conditional_tag, "STEP-SIZE", props.getStepSize())
|
|
710
|
+
self.setChildElementOptionalRefType(conditional_tag, "SW-ADDR-METHOD-REF", props.getSwAddrMethodRef())
|
|
711
|
+
self.setChildElementOptionalLiteral(conditional_tag, "SW-CALIBRATION-ACCESS", props.getSwCalibrationAccess())
|
|
712
|
+
self.setChildElementOptionalRefType(conditional_tag, "DATA-CONSTR-REF", props.getDataConstrRef())
|
|
713
|
+
self.setSwCalprmAxisSet(conditional_tag, "SW-CALPRM-AXIS-SET", props.getSwCalprmAxisSet())
|
|
714
|
+
self.setChildElementOptionalLiteral(conditional_tag, "SW-IMPL-POLICY", props.getSwImplPolicy())
|
|
715
|
+
self.setChildElementOptionalNumericalValue(conditional_tag, "SW-INTENDED-RESOLUTION", props.getSwIntendedResolution())
|
|
716
|
+
self.setSwPointerTargetProps(conditional_tag, "SW-POINTER-TARGET-PROPS", props.getSwPointerTargetProps())
|
|
717
|
+
self.setChildElementOptionalRefType(conditional_tag, "SW-RECORD-LAYOUT-REF", props.getSwRecordLayoutRef())
|
|
718
|
+
self.setChildElementOptionalRefType(conditional_tag, "VALUE-AXIS-DATA-TYPE-REF", props.getValueAxisDataTypeRef())
|
|
719
|
+
self.setChildElementOptionalRefType(conditional_tag, "UNIT-REF", props.getUnitRef())
|
|
710
720
|
|
|
711
721
|
def setApplicationDataType(self, element: ET.Element, data_type: ApplicationDataType):
|
|
712
722
|
self.setAutosarDataType(element, data_type)
|
|
@@ -727,6 +737,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
727
737
|
self.setSwDataDefProps(element, "SW-DATA-DEF-PROPS", prototype.getSwDataDefProps())
|
|
728
738
|
|
|
729
739
|
def setApplicationCompositeElementDataPrototype(self, element: ET.Element, prototype: ApplicationCompositeElementDataPrototype):
|
|
740
|
+
self.setIdentifiable(element, prototype)
|
|
730
741
|
self.setDataPrototype(element, prototype)
|
|
731
742
|
self.setChildElementOptionalRefType(element, "TYPE-TREF", prototype.typeTRef)
|
|
732
743
|
|
|
@@ -755,16 +766,17 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
755
766
|
else:
|
|
756
767
|
self.notImplemented("Unsupported ApplicationDataType <%s>" % type(data_type))
|
|
757
768
|
|
|
758
|
-
def
|
|
759
|
-
self.setChildElementOptionalNumericalValue(element, "BASE-TYPE-SIZE", base_type_definition.
|
|
760
|
-
self.setChildElementOptionalLiteral(element, "BASE-TYPE-ENCODING", base_type_definition.
|
|
761
|
-
self.
|
|
762
|
-
self.
|
|
769
|
+
def setBaseTypeDirectDefinition(self, element: ET.Element, base_type_definition: BaseTypeDirectDefinition):
|
|
770
|
+
self.setChildElementOptionalNumericalValue(element, "BASE-TYPE-SIZE", base_type_definition.getBaseTypeSize())
|
|
771
|
+
self.setChildElementOptionalLiteral(element, "BASE-TYPE-ENCODING", base_type_definition.getBaseTypeEncoding())
|
|
772
|
+
self.setChildElementOptionalLiteral(element, "BYTE-ORDER", base_type_definition.getByteOrder())
|
|
773
|
+
self.setChildElementOptionalNumericalValue(element, "MEM-ALIGNMENT", base_type_definition.getMemAlignment())
|
|
774
|
+
self.setChildElementOptionalLiteral(element, "NATIVE-DECLARATION", base_type_definition.getNativeDeclaration())
|
|
763
775
|
|
|
764
776
|
def writeSwBaseType(self, element: ET.Element, base_type: SwBaseType):
|
|
765
777
|
data_type_tag = ET.SubElement(element, "SW-BASE-TYPE")
|
|
766
778
|
self.setIdentifiable(data_type_tag, base_type)
|
|
767
|
-
self.
|
|
779
|
+
self.setBaseTypeDirectDefinition(data_type_tag, base_type.getBaseTypeDefinition())
|
|
768
780
|
|
|
769
781
|
def writeCompuScaleConstantContents(self, element: ET.Element, contents: CompuScaleConstantContents):
|
|
770
782
|
compu_const_tag = ET.SubElement(element, "COMPU-CONST")
|
|
@@ -793,48 +805,49 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
793
805
|
else:
|
|
794
806
|
self.notImplemented("Unsupported CompuScaleContents %s" % type(compu_scale.compuScaleContents))
|
|
795
807
|
|
|
796
|
-
def
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
def
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
808
|
+
def setCompuConstContent(self, element: ET.Element, content: CompuConstContent):
|
|
809
|
+
if content is not None:
|
|
810
|
+
if isinstance(content, CompuConstFormulaContent):
|
|
811
|
+
self.setChildElementOptionalLiteral(element, "VF", content.getVf())
|
|
812
|
+
elif isinstance(content, CompuConstNumericContent):
|
|
813
|
+
self.setChildElementOptionalNumericalValue(element, "V", content.getV())
|
|
814
|
+
elif isinstance(content, CompuConstTextContent):
|
|
815
|
+
self.setChildElementOptionalLiteral(element, "VT", content.getVt())
|
|
816
|
+
else:
|
|
817
|
+
self.notImplemented("Unsupported CompuConstContent <%s>" % type(content))
|
|
818
|
+
|
|
819
|
+
def setCompuScales(self, element: ET.Element, compu_scales: CompuScales):
|
|
820
|
+
if compu_scales is not None:
|
|
821
|
+
compu_scales_tag = ET.SubElement(element, "COMPU-SCALES")
|
|
822
|
+
for compu_scale in compu_scales.getCompuScales():
|
|
823
|
+
child_element = ET.SubElement(compu_scales_tag, "COMPU-SCALE")
|
|
824
|
+
self.setARObjectAttributes(child_element, compu_scale)
|
|
825
|
+
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", compu_scale.getShortLabel())
|
|
826
|
+
self.setChildElementOptionalLiteral(child_element, "SYMBOL", compu_scale.getSymbol())
|
|
827
|
+
self.setChildLimitElement(child_element, "LOWER-LIMIT", compu_scale.getLowerLimit())
|
|
828
|
+
self.setChildLimitElement(child_element, "UPPER-LIMIT", compu_scale.getUpperLimit())
|
|
829
|
+
self.writeCompuScaleContents(child_element, compu_scale)
|
|
830
|
+
|
|
831
|
+
def setCompuConst(self, element: ET.Element, key: str, compu_const: CompuConst):
|
|
832
|
+
if compu_const is not None:
|
|
833
|
+
child_element = ET.SubElement(element, key)
|
|
834
|
+
self.setARObjectAttributes(child_element, compu_const)
|
|
835
|
+
self.setCompuConstContent(child_element, compu_const.getCompuConstContentType())
|
|
818
836
|
|
|
819
|
-
def
|
|
820
|
-
compu = compu_method.getCompuPhysToInternal()
|
|
837
|
+
def setCompu(self, element: ET.Element, key: str, compu: Compu):
|
|
821
838
|
if compu is not None:
|
|
822
|
-
child_element = ET.SubElement(element,
|
|
839
|
+
child_element = ET.SubElement(element, key)
|
|
823
840
|
self.setARObjectAttributes(child_element, compu)
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
if isinstance(compu_content, CompuScales):
|
|
827
|
-
self.writeCompuScales(child_element, compu_content)
|
|
828
|
-
else:
|
|
829
|
-
self.notImplemented("Unsupported CompuContent <%s>" % type(compu_content))
|
|
841
|
+
self.setCompuScales(child_element, compu.getCompuContent())
|
|
842
|
+
self.setCompuConst(child_element, "COMPU-DEFAULT-VALUE", compu.getCompuDefaultValue())
|
|
830
843
|
|
|
831
844
|
def writeCompuMethod(self, element: ET.Element, compu_method: CompuMethod):
|
|
832
845
|
child_element = ET.SubElement(element, "COMPU-METHOD")
|
|
833
|
-
self.logger.debug("
|
|
846
|
+
self.logger.debug("write CompuMethods %s" % compu_method.getShortName())
|
|
834
847
|
self.setIdentifiable(child_element, compu_method)
|
|
835
848
|
self.setChildElementOptionalRefType(child_element, "UNIT-REF", compu_method.getUnitRef())
|
|
836
|
-
self.
|
|
837
|
-
self.
|
|
849
|
+
self.setCompu(child_element, "COMPU-INTERNAL-TO-PHYS", compu_method.getCompuInternalToPhys())
|
|
850
|
+
self.setCompu(child_element, "COMPU-PHYS-TO-INTERNAL", compu_method.getCompuPhysToInternal())
|
|
838
851
|
|
|
839
852
|
def setApplicationValueSpecification(self, element: ET.Element, spec: ApplicationValueSpecification):
|
|
840
853
|
spec_tag = ET.SubElement(element, "APPLICATION-VALUE-SPECIFICATION")
|
|
@@ -868,26 +881,25 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
868
881
|
self.setIdentifiable(spec_tag, spec)
|
|
869
882
|
|
|
870
883
|
if spec.getValueSpec() is not None:
|
|
871
|
-
|
|
872
|
-
self.setValueSpecification(value_spec_tag, spec.getValueSpec())
|
|
884
|
+
self.setValueSpecification(spec_tag, "VALUE-SPEC", spec.getValueSpec())
|
|
873
885
|
|
|
874
886
|
def setInternalConstrs(self, element: ET.Element, constrs: InternalConstrs):
|
|
875
887
|
if constrs is not None:
|
|
876
888
|
constrs_tag = ET.SubElement(element, "INTERNAL-CONSTRS")
|
|
877
889
|
self.setARObjectAttributes(constrs_tag, constrs)
|
|
878
890
|
if constrs.lower_limit is not None:
|
|
879
|
-
self.
|
|
891
|
+
self.setChildLimitElement(constrs_tag, "LOWER-LIMIT", constrs.lower_limit)
|
|
880
892
|
if constrs.upper_limit is not None:
|
|
881
|
-
self.
|
|
893
|
+
self.setChildLimitElement(constrs_tag, "UPPER-LIMIT", constrs.upper_limit)
|
|
882
894
|
|
|
883
895
|
def setPhysConstrs(self, element: ET.Element, constrs: PhysConstrs):
|
|
884
896
|
if constrs is not None:
|
|
885
897
|
child_element = ET.SubElement(element, "PHYS-CONSTRS")
|
|
886
898
|
self.setARObjectAttributes(child_element, constrs)
|
|
887
899
|
if constrs.lower_limit is not None:
|
|
888
|
-
self.
|
|
900
|
+
self.setChildLimitElement(child_element, "LOWER-LIMIT", constrs.lower_limit)
|
|
889
901
|
if constrs.upper_limit is not None:
|
|
890
|
-
self.
|
|
902
|
+
self.setChildLimitElement(child_element, "UPPER-LIMIT", constrs.upper_limit)
|
|
891
903
|
self.setChildElementOptionalRefType(child_element, "UNIT-REF", constrs.unit_ref)
|
|
892
904
|
|
|
893
905
|
def writeDataConstrRules(self, element: ET.Element, parent: DataConstr):
|
|
@@ -907,7 +919,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
907
919
|
self.writeDataConstrRules(child_element, constr)
|
|
908
920
|
|
|
909
921
|
def writeUnit(self, element: ET.Element, unit: Unit):
|
|
910
|
-
self.logger.debug("writeUnit %s" % unit.
|
|
922
|
+
self.logger.debug("writeUnit %s" % unit.getShortName())
|
|
911
923
|
child_element = ET.SubElement(element, "UNIT")
|
|
912
924
|
self.setIdentifiable(child_element, unit)
|
|
913
925
|
self.setChildElementOptionalLiteral(child_element, "DISPLAY-NAME", unit.getDisplayName())
|
|
@@ -1027,22 +1039,15 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1027
1039
|
for ref in refs:
|
|
1028
1040
|
self.setChildElementOptionalRefType(refs_tag, "DATA-TYPE-MAPPING-REF", ref)
|
|
1029
1041
|
|
|
1030
|
-
def writeInternalBehaviorConstantMemories(self, element: ET.Element, behavior: InternalBehavior):
|
|
1031
|
-
memories = behavior.getConstantMemorys()
|
|
1032
|
-
if len(memories) > 0:
|
|
1033
|
-
child_element = ET.SubElement(element, "CONSTANT-MEMORYS")
|
|
1034
|
-
for memory in memories:
|
|
1035
|
-
self.writeParameterDataPrototype(child_element, memory)
|
|
1036
|
-
|
|
1037
1042
|
def writeInternalBehavior(self, element: ET.Element, behavior: InternalBehavior):
|
|
1038
1043
|
self.setIdentifiable(element, behavior)
|
|
1039
|
-
self.
|
|
1044
|
+
self.setParameterDataPrototypes(element, "CONSTANT-MEMORYS", behavior.getConstantMemories())
|
|
1040
1045
|
self.writeDataTypeMappingRefs(element, behavior)
|
|
1041
1046
|
self.writeExclusiveAreas(element, behavior)
|
|
1042
1047
|
|
|
1043
|
-
def setAutosarVariableRef(self, element: ET.Element, ref: AutosarVariableRef):
|
|
1048
|
+
def setAutosarVariableRef(self, element: ET.Element, key: str, ref: AutosarVariableRef):
|
|
1044
1049
|
if ref is not None:
|
|
1045
|
-
child_element = ET.SubElement(element,
|
|
1050
|
+
child_element = ET.SubElement(element, key)
|
|
1046
1051
|
self.setARObjectAttributes(child_element, ref)
|
|
1047
1052
|
if ref.getAutosarVariableIRef() is not None:
|
|
1048
1053
|
child_element = ET.SubElement(child_element, "AUTOSAR-VARIABLE-IREF")
|
|
@@ -1062,21 +1067,17 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1062
1067
|
def setVariableAccess(self, element: ET.Element, access: VariableAccess):
|
|
1063
1068
|
child_element = ET.SubElement(element, "VARIABLE-ACCESS")
|
|
1064
1069
|
self.setIdentifiable(child_element, access)
|
|
1065
|
-
self.setAutosarVariableRef(child_element, access.getAccessedVariableRef())
|
|
1066
|
-
|
|
1067
|
-
def writeDataReadAccesses(self, element: ET.Element, entity: RunnableEntity):
|
|
1068
|
-
#accesses = entity.getDataReadAccesses():
|
|
1069
|
-
pass
|
|
1070
|
+
self.setAutosarVariableRef(child_element, "ACCESSED-VARIABLE", access.getAccessedVariableRef())
|
|
1070
1071
|
|
|
1071
1072
|
def setAutosarParameterRef(self, element: ET.Element, key: str, parameter_ref: AutosarParameterRef):
|
|
1072
1073
|
if parameter_ref is not None:
|
|
1073
1074
|
child_element = ET.SubElement(element, key)
|
|
1074
|
-
self.setChildElementOptionalRefType(child_element, "LOCAL-PARAMETER-REF", parameter_ref.
|
|
1075
|
+
self.setChildElementOptionalRefType(child_element, "LOCAL-PARAMETER-REF", parameter_ref.getLocalParameterRef())
|
|
1075
1076
|
|
|
1076
1077
|
def writeParameterAccess(self, element: ET.Element, parameter_access: ParameterAccess):
|
|
1077
1078
|
child_element = ET.SubElement(element, "PARAMETER-ACCESS")
|
|
1078
1079
|
self.setIdentifiable(child_element, parameter_access)
|
|
1079
|
-
self.setAutosarParameterRef(child_element, "ACCESSED-PARAMETER", parameter_access.
|
|
1080
|
+
self.setAutosarParameterRef(child_element, "ACCESSED-PARAMETER", parameter_access.getAccessedParameter())
|
|
1080
1081
|
|
|
1081
1082
|
def writeParameterAccesses(self, element: ET.Element, entity: RunnableEntity):
|
|
1082
1083
|
parameter_accesses = entity.getParameterAccesses()
|
|
@@ -1099,12 +1100,19 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1099
1100
|
for point in points:
|
|
1100
1101
|
self.setVariableAccess(child_element, point)
|
|
1101
1102
|
|
|
1103
|
+
def writeDataReadAccesses(self, element: ET.Element, entity: RunnableEntity):
|
|
1104
|
+
accesses = entity.getDataReadAccesses()
|
|
1105
|
+
if len(accesses) > 0:
|
|
1106
|
+
child_element = ET.SubElement(element, "DATA-READ-ACCESSS")
|
|
1107
|
+
for access in accesses:
|
|
1108
|
+
self.setVariableAccess(child_element, access)
|
|
1109
|
+
|
|
1102
1110
|
def writeDataWriteAccesses(self, element: ET.Element, entity: RunnableEntity):
|
|
1103
|
-
|
|
1104
|
-
if len(
|
|
1111
|
+
accesses = entity.getDataWriteAccesses()
|
|
1112
|
+
if len(accesses) > 0:
|
|
1105
1113
|
child_element = ET.SubElement(element, "DATA-WRITE-ACCESSS")
|
|
1106
|
-
for
|
|
1107
|
-
self.setVariableAccess(child_element,
|
|
1114
|
+
for access in accesses:
|
|
1115
|
+
self.setVariableAccess(child_element, access)
|
|
1108
1116
|
|
|
1109
1117
|
def writeReadLocalVariables(self, element: ET.Element, entity: RunnableEntity):
|
|
1110
1118
|
variables = entity.getReadLocalVariables()
|
|
@@ -1213,12 +1221,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1213
1221
|
self.writeRunnableEntityArguments(child_element, entity)
|
|
1214
1222
|
self.writeAsynchronousServerCallResultPoint(child_element, entity)
|
|
1215
1223
|
self.setChildElementOptionalBooleanValue(child_element, "CAN-BE-INVOKED-CONCURRENTLY", entity.getCanBeInvokedConcurrently())
|
|
1216
|
-
self.
|
|
1224
|
+
self.writeDataReadAccesses(child_element, entity)
|
|
1217
1225
|
self.writeDataReceivePointByArguments(child_element, entity)
|
|
1218
1226
|
self.writeDataSendPoints(child_element, entity)
|
|
1219
1227
|
self.writeDataWriteAccesses(child_element, entity)
|
|
1220
1228
|
self.writeModeAccessPoints(child_element, entity)
|
|
1221
1229
|
self.writeModeSwitchPoints(child_element, entity)
|
|
1230
|
+
self.writeParameterAccesses(child_element, entity)
|
|
1222
1231
|
self.writeReadLocalVariables(child_element, entity)
|
|
1223
1232
|
self.writeServerCallPoints(child_element, entity)
|
|
1224
1233
|
self.setChildElementOptionalLiteral(child_element, "SYMBOL", entity.symbol)
|
|
@@ -1233,6 +1242,16 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1233
1242
|
self.writeRunnableEntity(runnables_tag, entity)
|
|
1234
1243
|
else:
|
|
1235
1244
|
self.notImplemented("Unsupported RunnableEntity <%s>" % type(entity))
|
|
1245
|
+
|
|
1246
|
+
def writeSwcInternalBehaviorArTypedPerInstanceMemories(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1247
|
+
prototypes = behavior.getArTypedPerInstanceMemories()
|
|
1248
|
+
if len(prototypes) > 0:
|
|
1249
|
+
child_element = ET.SubElement(element, "AR-TYPED-PER-INSTANCE-MEMORYS")
|
|
1250
|
+
for prototype in prototypes:
|
|
1251
|
+
if isinstance(prototype, VariableDataPrototype):
|
|
1252
|
+
self.writeVariableDataPrototype(child_element, prototype)
|
|
1253
|
+
else:
|
|
1254
|
+
self._raiseError("Unsupported ArTypedPerInstanceMemories <%s>" % type(prototype))
|
|
1236
1255
|
|
|
1237
1256
|
def writeExplicitInterRunnableVariables(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1238
1257
|
prototypes = behavior.getExplicitInterRunnableVariables()
|
|
@@ -1256,29 +1275,26 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1256
1275
|
self.setChildElementOptionalLiteral(child_element, "TYPE", memory.getType())
|
|
1257
1276
|
self.setChildElementOptionalLiteral (child_element, "TYPE-DEFINITION", memory.getTypeDefinition())
|
|
1258
1277
|
|
|
1259
|
-
def
|
|
1278
|
+
def setParameterDataPrototype(self, element: ET.Element, prototype: ParameterDataPrototype):
|
|
1260
1279
|
child_element = ET.SubElement(element, "PARAMETER-DATA-PROTOTYPE")
|
|
1261
1280
|
self.setIdentifiable(child_element, prototype)
|
|
1262
1281
|
self.setAutosarDataPrototype(child_element, prototype)
|
|
1263
|
-
self.
|
|
1282
|
+
self.setValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
|
|
1264
1283
|
|
|
1265
|
-
def
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
self.writeParameterDataPrototype(child_element, prototype)
|
|
1284
|
+
def setParameterDataPrototypes(self, element: ET.Element, key: str, parameters: List[ParameterDataPrototype]):
|
|
1285
|
+
if len(parameters) > 0:
|
|
1286
|
+
child_element = ET.SubElement(element, key)
|
|
1287
|
+
for parameter in parameters:
|
|
1288
|
+
self.setParameterDataPrototype(child_element, parameter)
|
|
1271
1289
|
|
|
1272
|
-
def writePortDefinedArgumentValues(self, element: ET.Element,
|
|
1273
|
-
argument_values = option.getPortArgValues()
|
|
1290
|
+
def writePortDefinedArgumentValues(self, element: ET.Element, argument_values: List[PortDefinedArgumentValue]) :
|
|
1274
1291
|
if len(argument_values) > 0:
|
|
1275
1292
|
child_element = ET.SubElement(element, "PORT-ARG-VALUES")
|
|
1276
1293
|
for argument_value in argument_values:
|
|
1277
1294
|
child_element = ET.SubElement(child_element, "PORT-DEFINED-ARGUMENT-VALUE")
|
|
1278
|
-
if argument_value.
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
self.setChildElementOptionalRefType(child_element, "VALUE-TYPE-TREF", argument_value.valueTypeTRef)
|
|
1295
|
+
if argument_value.getValue() is not None:
|
|
1296
|
+
self.setValueSpecification(child_element, "VALUE", argument_value.getValue())
|
|
1297
|
+
self.setChildElementOptionalRefType(child_element, "VALUE-TYPE-TREF", argument_value.getValueTypeTRef())
|
|
1282
1298
|
|
|
1283
1299
|
def writePortAPIOptions(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1284
1300
|
options = behavior.getPortAPIOptions()
|
|
@@ -1286,10 +1302,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1286
1302
|
port_api_options_tag = ET.SubElement(element, "PORT-API-OPTIONS")
|
|
1287
1303
|
for option in options:
|
|
1288
1304
|
child_element = ET.SubElement(port_api_options_tag, "PORT-API-OPTION")
|
|
1289
|
-
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS", option.
|
|
1290
|
-
self.
|
|
1291
|
-
self.
|
|
1292
|
-
self.
|
|
1305
|
+
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS", option.getEnableTakeAddress())
|
|
1306
|
+
self.setChildElementOptionalLiteral(child_element, "ERROR-HANDLING", option.getErrorHandling())
|
|
1307
|
+
self.setChildElementOptionalBooleanValue(child_element, "INDIRECT-API", option.getIndirectAPI())
|
|
1308
|
+
self.writePortDefinedArgumentValues(child_element, option.getPortArgValues())
|
|
1309
|
+
self.setChildElementOptionalRefType(child_element, "PORT-REF", option.getPortRef())
|
|
1293
1310
|
|
|
1294
1311
|
def writeRoleBasedDataTypeAssignment(self, element: ET.Element, assignment: RoleBasedDataTypeAssignment):
|
|
1295
1312
|
child_element = ET.SubElement(element, "ROLE-BASED-DATA-TYPE-ASSIGNMENT")
|
|
@@ -1313,6 +1330,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1313
1330
|
def writeRoleBasedDataAssignment(self, element: ET.Element, assignment: RoleBasedDataAssignment):
|
|
1314
1331
|
child_element = ET.SubElement(element, "ROLE-BASED-DATA-ASSIGNMENT")
|
|
1315
1332
|
self.setChildElementOptionalLiteral(child_element, "ROLE", assignment.role)
|
|
1333
|
+
self.setAutosarVariableRef(child_element, "USED-DATA-ELEMENT", assignment.getUsedDataElement())
|
|
1316
1334
|
self.setAutosarParameterRef(child_element, "USED-PARAMETER-ELEMENT", assignment.getUsedParameterElement())
|
|
1317
1335
|
self.setChildElementOptionalRefType(child_element, "USED-PIM-REF", assignment.getUsedPimRef())
|
|
1318
1336
|
|
|
@@ -1341,9 +1359,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1341
1359
|
else:
|
|
1342
1360
|
self._raiseError("Unsupported Assigned Data <%s>" % type(data))
|
|
1343
1361
|
|
|
1344
|
-
def
|
|
1362
|
+
def setNvBlockNeeds(self, element: ET.Element, needs: NvBlockNeeds):
|
|
1345
1363
|
child_element = ET.SubElement(element, "NV-BLOCK-NEEDS")
|
|
1346
|
-
self.logger.debug("write NvBlockNeeds %s" % needs.
|
|
1364
|
+
self.logger.debug("write NvBlockNeeds %s" % needs.getShortName())
|
|
1347
1365
|
self.setIdentifiable(child_element, needs)
|
|
1348
1366
|
self.setChildElementOptionalBooleanValue(child_element, "CALC-RAM-BLOCK-CRC", needs.getCalcRamBlockCrc())
|
|
1349
1367
|
self.setChildElementOptionalBooleanValue(child_element, "CHECK-STATIC-BLOCK-ID", needs.getCheckStaticBlockId())
|
|
@@ -1362,24 +1380,25 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1362
1380
|
self.setChildElementOptionalBooleanValue(child_element, "USE-CRC-COMP-MECHANISM", needs.getUseCRCCompMechanism())
|
|
1363
1381
|
self.setChildElementOptionalBooleanValue(child_element, "WRITE-ONLY-ONCE", needs.getWriteOnlyOnce())
|
|
1364
1382
|
self.setChildElementOptionalBooleanValue(child_element, "WRITE-VERIFICATION", needs.getWriteVerification())
|
|
1383
|
+
self.setChildElementOptionalPositiveInteger(child_element, "WRITING-FREQUENCY", needs.getWritingFrequency())
|
|
1365
1384
|
self.setChildElementOptionalLiteral(child_element, "WRITING-PRIORITY", needs.getWritingPriority())
|
|
1366
1385
|
|
|
1367
|
-
def
|
|
1386
|
+
def setDiagnosticCommunicationManagerNeeds(self, element: ET.Element, needs: DiagnosticCommunicationManagerNeeds):
|
|
1368
1387
|
child_element = ET.SubElement(element, "DIAGNOSTIC-COMMUNICATION-MANAGER-NEEDS")
|
|
1369
|
-
self.logger.debug("write DiagnosticCommunicationManagerNeeds %s" % needs.
|
|
1388
|
+
self.logger.debug("write DiagnosticCommunicationManagerNeeds %s" % needs.getShortName())
|
|
1370
1389
|
self.setIdentifiable(child_element, needs)
|
|
1371
1390
|
self.setChildElementOptionalLiteral(child_element, "SERVICE-REQUEST-CALLBACK-TYPE", needs.getServiceRequestCallbackType())
|
|
1372
1391
|
|
|
1373
|
-
def
|
|
1392
|
+
def setDiagnosticRoutineNeeds(self, element: ET.Element, needs: DiagnosticRoutineNeeds):
|
|
1374
1393
|
child_element = ET.SubElement(element, "DIAGNOSTIC-ROUTINE-NEEDS")
|
|
1375
|
-
self.logger.debug("write DiagnosticRoutineNeeds %s" % needs.
|
|
1394
|
+
self.logger.debug("write DiagnosticRoutineNeeds %s" % needs.getShortName())
|
|
1376
1395
|
self.setIdentifiable(child_element, needs)
|
|
1377
1396
|
self.setChildElementOptionalLiteral(child_element, "DIAG-ROUTINE-TYPE", needs.getDiagRoutineType())
|
|
1378
1397
|
self.setChildElementOptionalIntegerValue(child_element, "RID-NUMBER", needs.getRidNumber())
|
|
1379
1398
|
|
|
1380
|
-
def
|
|
1399
|
+
def setDiagnosticValueNeeds(self, element: ET.Element, needs: DiagnosticValueNeeds):
|
|
1381
1400
|
child_element = ET.SubElement(element, "DIAGNOSTIC-VALUE-NEEDS")
|
|
1382
|
-
self.logger.debug("write DiagnosticValueNeeds %s" % needs.
|
|
1401
|
+
self.logger.debug("write DiagnosticValueNeeds %s" % needs.getShortName())
|
|
1383
1402
|
self.setIdentifiable(child_element, needs)
|
|
1384
1403
|
self.setChildElementOptionalPositiveInteger(child_element, "DATA-LENGTH", needs.getDataLength())
|
|
1385
1404
|
self.setChildElementOptionalLiteral(child_element, "DIAGNOSTIC-VALUE-ACCESS", needs.getDiagnosticValueAccess())
|
|
@@ -1400,39 +1419,54 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1400
1419
|
else:
|
|
1401
1420
|
self.notImplemented("Unsupported DiagEventDebounceAlgorithm <%s>" % type(algorithm))
|
|
1402
1421
|
|
|
1403
|
-
def
|
|
1422
|
+
def setDiagnosticEventNeeds(self, element: ET.Element, needs: DiagnosticEventNeeds):
|
|
1404
1423
|
child_element = ET.SubElement(element, "DIAGNOSTIC-EVENT-NEEDS")
|
|
1405
|
-
self.logger.debug("write DiagnosticEventNeeds %s" % needs.
|
|
1424
|
+
self.logger.debug("write DiagnosticEventNeeds %s" % needs.getShortName())
|
|
1406
1425
|
self.setIdentifiable(child_element, needs)
|
|
1407
1426
|
self.writeDiagEventDebounceAlgorithm(child_element, needs)
|
|
1408
1427
|
self.setChildElementOptionalLiteral(child_element, "DTC-KIND", needs.getDtcKind())
|
|
1409
1428
|
self.setChildElementOptionalIntegerValue(child_element, "UDS-DTC-NUMBER", needs.getUdsDtcNumber())
|
|
1429
|
+
|
|
1430
|
+
def setDiagnosticEventInfoNeeds(self, element: ET.Element, needs: DiagnosticEventInfoNeeds):
|
|
1431
|
+
child_element = ET.SubElement(element, "DIAGNOSTIC-EVENT-INFO-NEEDS")
|
|
1432
|
+
self.logger.debug("write DiagnosticEventNeeds %s" % needs.getShortName())
|
|
1433
|
+
self.setIdentifiable(child_element, needs)
|
|
1434
|
+
self.setChildElementOptionalPositiveInteger(child_element, "UDS-DTC-NUMBER", needs.getUdsDtcNumber())
|
|
1410
1435
|
|
|
1411
|
-
def
|
|
1436
|
+
def setCryptoServiceNeeds(self, element: ET.Element, needs: CryptoServiceNeeds):
|
|
1412
1437
|
child_element = ET.SubElement(element, "CRYPTO-SERVICE-NEEDS")
|
|
1413
|
-
self.logger.debug("write CryptoServiceNeeds %s" % needs.
|
|
1438
|
+
self.logger.debug("write CryptoServiceNeeds %s" % needs.getShortName())
|
|
1414
1439
|
self.setIdentifiable(child_element, needs)
|
|
1415
1440
|
self.setChildElementOptionalPositiveInteger(child_element, "MAXIMUM-KEY-LENGTH", needs.getMaximumKeyLength())
|
|
1416
1441
|
|
|
1442
|
+
def setEcuStateMgrUserNeeds(self, element: ET.Element, needs: EcuStateMgrUserNeeds):
|
|
1443
|
+
child_element = ET.SubElement(element, "ECU-STATE-MGR-USER-NEEDS")
|
|
1444
|
+
self.logger.debug("write EcuStateMgrUserNeeds %s" % needs.getShortName())
|
|
1445
|
+
self.setIdentifiable(child_element, needs)
|
|
1446
|
+
|
|
1417
1447
|
def writeSwcServiceDependencyServiceNeeds(self, element: ET.Element, parent: SwcServiceDependency):
|
|
1418
1448
|
needs = parent.getServiceNeeds()
|
|
1419
1449
|
if len(needs) > 0:
|
|
1420
1450
|
child_element = ET.SubElement(element, "SERVICE-NEEDS")
|
|
1421
1451
|
for need in needs:
|
|
1422
1452
|
if isinstance(need, NvBlockNeeds):
|
|
1423
|
-
self.
|
|
1453
|
+
self.setNvBlockNeeds(child_element, need)
|
|
1424
1454
|
elif isinstance(need, DiagnosticCommunicationManagerNeeds):
|
|
1425
|
-
self.
|
|
1455
|
+
self.setDiagnosticCommunicationManagerNeeds(child_element, need)
|
|
1426
1456
|
elif isinstance(need, DiagnosticRoutineNeeds):
|
|
1427
|
-
self.
|
|
1457
|
+
self.setDiagnosticRoutineNeeds(child_element, need)
|
|
1428
1458
|
elif isinstance(need, DiagnosticValueNeeds):
|
|
1429
|
-
self.
|
|
1459
|
+
self.setDiagnosticValueNeeds(child_element, need)
|
|
1430
1460
|
elif isinstance(need, DiagnosticEventNeeds):
|
|
1431
|
-
self.
|
|
1461
|
+
self.setDiagnosticEventNeeds(child_element, need)
|
|
1462
|
+
elif isinstance(need, DiagnosticEventInfoNeeds):
|
|
1463
|
+
self.setDiagnosticEventInfoNeeds(child_element, need)
|
|
1432
1464
|
elif isinstance(need, CryptoServiceNeeds):
|
|
1433
|
-
self.
|
|
1465
|
+
self.setCryptoServiceNeeds(child_element, need)
|
|
1466
|
+
elif isinstance(need, EcuStateMgrUserNeeds):
|
|
1467
|
+
self.setEcuStateMgrUserNeeds(child_element, need)
|
|
1434
1468
|
else:
|
|
1435
|
-
self.
|
|
1469
|
+
self.notImplemented("Unsupported service needs <%s>" % type(need))
|
|
1436
1470
|
|
|
1437
1471
|
def writeSwcServiceDependency(self, element: ET.Element, dependency: SwcServiceDependency):
|
|
1438
1472
|
child_element = ET.SubElement(element, "SWC-SERVICE-DEPENDENCY")
|
|
@@ -1463,21 +1497,24 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1463
1497
|
for type_ref in type_refs:
|
|
1464
1498
|
self.setChildElementOptionalRefType(data_type_refs_tag, "DATA-TYPE-REF", type_ref)
|
|
1465
1499
|
|
|
1500
|
+
|
|
1466
1501
|
def writeSwcInternalBehavior(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1467
|
-
self.logger.debug("writeSwInternalBehavior %s" % behavior.
|
|
1502
|
+
self.logger.debug("writeSwInternalBehavior %s" % behavior.getShortName())
|
|
1468
1503
|
|
|
1469
1504
|
child_element = ET.SubElement(element, "SWC-INTERNAL-BEHAVIOR")
|
|
1470
1505
|
self.writeInternalBehavior(child_element, behavior)
|
|
1506
|
+
self.writeSwcInternalBehaviorArTypedPerInstanceMemories(child_element, behavior)
|
|
1471
1507
|
self.writeRTEEvents(child_element, behavior)
|
|
1472
1508
|
self.writeExplicitInterRunnableVariables(child_element, behavior)
|
|
1473
|
-
self.setChildElementOptionalLiteral(child_element, "HANDLE-TERMINATION-AND-RESTART", behavior.
|
|
1509
|
+
self.setChildElementOptionalLiteral(child_element, "HANDLE-TERMINATION-AND-RESTART", behavior.getHandleTerminationAndRestart())
|
|
1474
1510
|
self.setIncludedDataTypeSets(child_element, behavior.getIncludedDataTypeSets())
|
|
1475
1511
|
self.writePerInstanceMemories(child_element, behavior)
|
|
1476
|
-
self.
|
|
1512
|
+
self.setParameterDataPrototypes(child_element, "PER-INSTANCE-PARAMETERS", behavior.getPerInstanceParameters())
|
|
1477
1513
|
self.writePortAPIOptions(child_element, behavior)
|
|
1478
1514
|
self.writeSwcInternalBehaviorRunnableEntities(child_element, behavior)
|
|
1479
1515
|
self.writeSwcInternalBehaviorServiceDependencies(child_element, behavior)
|
|
1480
|
-
self.
|
|
1516
|
+
self.setParameterDataPrototypes(child_element, "SHARED-PARAMETERS", behavior.getSharedParameters())
|
|
1517
|
+
self.setChildElementOptionalBooleanValue(child_element, "SUPPORTS-MULTIPLE-INSTANTIATION", behavior.getSupportsMultipleInstantiation())
|
|
1481
1518
|
|
|
1482
1519
|
def writeAtomicSwComponentTypeInternalBehaviors(self, element: ET.Element, behavior: InternalBehavior):
|
|
1483
1520
|
if behavior is not None:
|
|
@@ -1492,7 +1529,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1492
1529
|
self.writeAtomicSwComponentTypeInternalBehaviors(element, sw_component.internal_behavior)
|
|
1493
1530
|
|
|
1494
1531
|
def writeComplexDeviceDriverSwComponentType(self, element: ET.Element, sw_component: ComplexDeviceDriverSwComponentType):
|
|
1495
|
-
self.logger.debug("writeComplexDeviceDriverSwComponentType %s" % sw_component.
|
|
1532
|
+
self.logger.debug("writeComplexDeviceDriverSwComponentType %s" % sw_component.getShortName())
|
|
1496
1533
|
child_element = ET.SubElement(element, "COMPLEX-DEVICE-DRIVER-SW-COMPONENT-TYPE")
|
|
1497
1534
|
self.writeAtomicSwComponentType(child_element, sw_component)
|
|
1498
1535
|
|
|
@@ -1508,7 +1545,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1508
1545
|
self.setChildElementOptionalLiteral(artifact_desc_tag, "CATEGORY", artifact_desc.category)
|
|
1509
1546
|
|
|
1510
1547
|
def setCode(self, element: ET.SubElement, code_desc: Code):
|
|
1511
|
-
self.logger.debug("setCode %s" % code_desc.
|
|
1548
|
+
self.logger.debug("setCode %s" % code_desc.getShortName())
|
|
1512
1549
|
child_element = ET.SubElement(element, "CODE")
|
|
1513
1550
|
self.setIdentifiable(child_element, code_desc)
|
|
1514
1551
|
self.writeArtifactDescriptor(child_element, code_desc)
|
|
@@ -1542,13 +1579,33 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1542
1579
|
self.setChildElementOptionalNumericalValue(child_element, "SIZE", memory_section.getSize())
|
|
1543
1580
|
self.setChildElementOptionalRefType(child_element, "SW-ADDRMETHOD-REF", memory_section.getSwAddrMethodRef())
|
|
1544
1581
|
self.setChildElementOptionalLiteral(child_element, "SYMBOL", memory_section.getSymbol())
|
|
1545
|
-
self.logger.debug("
|
|
1582
|
+
self.logger.debug("Write MemorySection %s" % memory_section.getShortName())
|
|
1583
|
+
|
|
1584
|
+
def setStackUsage(self, element: ET.Element, usage: StackUsage):
|
|
1585
|
+
self.logger.debug("Write StackUsage %s" % usage.getShortName())
|
|
1586
|
+
self.setIdentifiable(element, usage)
|
|
1587
|
+
|
|
1588
|
+
def setRoughEstimateStackUsage(self, element: ET.Element, usage: RoughEstimateStackUsage):
|
|
1589
|
+
if usage is not None:
|
|
1590
|
+
child_element = ET.SubElement(element, "ROUGH-ESTIMATE-STACK-USAGE")
|
|
1591
|
+
self.setStackUsage(child_element, usage)
|
|
1592
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MEMORY-CONSUMPTION", usage.getMemoryConsumption())
|
|
1593
|
+
|
|
1594
|
+
def writeStackUsages(self, element: ET.Element, usages: List[StackUsage]):
|
|
1595
|
+
if len(usages) > 0:
|
|
1596
|
+
child_element = ET.SubElement(element, "STACK-USAGES")
|
|
1597
|
+
for usage in usages:
|
|
1598
|
+
if isinstance(usage, RoughEstimateStackUsage):
|
|
1599
|
+
self.setRoughEstimateStackUsage(child_element, usage)
|
|
1600
|
+
else:
|
|
1601
|
+
self.notImplemented("Unsupported Stack Usages: <%s>" % type(usage))
|
|
1546
1602
|
|
|
1547
1603
|
def setResourceConsumption(self, element: ET.Element, consumption: ResourceConsumption):
|
|
1548
1604
|
if consumption is not None:
|
|
1549
1605
|
child_element = ET.SubElement(element, "RESOURCE-CONSUMPTION")
|
|
1550
1606
|
self.setIdentifiable(child_element, consumption)
|
|
1551
1607
|
self.writeMemorySections(child_element, consumption)
|
|
1608
|
+
self.writeStackUsages(child_element, consumption.getStackUsages())
|
|
1552
1609
|
|
|
1553
1610
|
def writeImplementation(self, element: ET.Element, impl: Implementation):
|
|
1554
1611
|
self.setIdentifiable(element, impl)
|
|
@@ -1561,7 +1618,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1561
1618
|
self.setChildElementOptionalNumericalValue(element, "VENDOR-ID", impl.getVendorId())
|
|
1562
1619
|
|
|
1563
1620
|
def writeSwcImplementation(self, element: ET.Element, impl: SwcImplementation):
|
|
1564
|
-
self.logger.debug("writeSwcImplementation %s" % impl.
|
|
1621
|
+
self.logger.debug("writeSwcImplementation %s" % impl.getShortName())
|
|
1565
1622
|
child_element = ET.SubElement(element, "SWC-IMPLEMENTATION")
|
|
1566
1623
|
self.writeImplementation(child_element, impl)
|
|
1567
1624
|
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.getBehaviorRef())
|
|
@@ -1627,7 +1684,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1627
1684
|
self.setEndToEndProtection(child_element, protection)
|
|
1628
1685
|
|
|
1629
1686
|
def writeEndToEndProtectionSet(self, element: ET.Element, protection_set: EndToEndProtectionSet):
|
|
1630
|
-
self.logger.debug("writeEndToEndProtectionSet %s" % protection_set.
|
|
1687
|
+
self.logger.debug("writeEndToEndProtectionSet %s" % protection_set.getShortName())
|
|
1631
1688
|
child_element = ET.SubElement(element, "END-TO-END-PROTECTION-SET")
|
|
1632
1689
|
self.setIdentifiable(child_element, protection_set)
|
|
1633
1690
|
self.writeEndToEndProtections(child_element, protection_set)
|
|
@@ -1637,11 +1694,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1637
1694
|
self.setChildElementOptionalRefType(element, "TYPE-TREF", prototype.typeTRef)
|
|
1638
1695
|
|
|
1639
1696
|
def writeVariableDataPrototype(self, element: ET.Element, prototype: VariableDataPrototype):
|
|
1640
|
-
self.logger.debug("writeVariableDataPrototype %s" % prototype.
|
|
1697
|
+
self.logger.debug("writeVariableDataPrototype %s" % prototype.getShortName())
|
|
1641
1698
|
child_element = ET.SubElement(element, "VARIABLE-DATA-PROTOTYPE")
|
|
1642
1699
|
self.setIdentifiable(child_element, prototype)
|
|
1643
1700
|
self.setAutosarDataPrototype(child_element, prototype)
|
|
1644
|
-
self.
|
|
1701
|
+
self.setValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
|
|
1645
1702
|
|
|
1646
1703
|
def writeSenderReceiverInterfaceDataElements(self, element: ET.Element, sr_interface: SenderReceiverInterface):
|
|
1647
1704
|
data_elements = sr_interface.getDataElements()
|
|
@@ -1663,7 +1720,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1663
1720
|
self.setChildElementOptionalLiteral(child_element, "HANDLE-INVALID", policy.getHandleInvalid())
|
|
1664
1721
|
|
|
1665
1722
|
def writeSenderReceiverInterface(self, element: ET.Element, sr_interface: SenderReceiverInterface):
|
|
1666
|
-
self.logger.debug("writeSenderReceiverInterface %s" % sr_interface.
|
|
1723
|
+
self.logger.debug("writeSenderReceiverInterface %s" % sr_interface.getShortName())
|
|
1667
1724
|
child_element = ET.SubElement(element, "SENDER-RECEIVER-INTERFACE")
|
|
1668
1725
|
self.setIdentifiable(child_element, sr_interface)
|
|
1669
1726
|
self.setChildElementOptionalBooleanValue(child_element, "IS-SERVICE", sr_interface.getIsService())
|
|
@@ -1717,15 +1774,22 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1717
1774
|
self.writeBswModuleEntityManagedModeGroup(element, entity)
|
|
1718
1775
|
|
|
1719
1776
|
def setBswCalledEntity(self, element: ET.Element, entity: BswCalledEntity):
|
|
1720
|
-
self.logger.debug("setBswCalledEntity %s" % entity.
|
|
1777
|
+
self.logger.debug("setBswCalledEntity %s" % entity.getShortName())
|
|
1721
1778
|
child_element = ET.SubElement(element, "BSW-CALLED-ENTITY")
|
|
1722
1779
|
self.setBswModuleEntity(child_element, entity)
|
|
1723
1780
|
|
|
1724
1781
|
def setBswSchedulableEntity(self, element: ET.Element, entity: BswSchedulableEntity):
|
|
1725
|
-
self.logger.debug("
|
|
1782
|
+
self.logger.debug("set BswSchedulableEntity %s" % entity.getShortName())
|
|
1726
1783
|
child_element = ET.SubElement(element, "BSW-SCHEDULABLE-ENTITY")
|
|
1727
1784
|
self.setBswModuleEntity(child_element, entity)
|
|
1728
1785
|
|
|
1786
|
+
def setBswInterruptEntity(self, element: ET.Element, entity: BswInterruptEntity):
|
|
1787
|
+
self.logger.debug("read BswInterruptEntity %s" % entity.getShortName())
|
|
1788
|
+
child_element = ET.SubElement(element, "BSW-INTERRUPT-ENTITY")
|
|
1789
|
+
self.setBswModuleEntity(child_element, entity)
|
|
1790
|
+
self.setChildElementOptionalLiteral(child_element, "INTERRUPT-CATEGORY", entity.getInterruptCategory())
|
|
1791
|
+
self.setChildElementOptionalLiteral(child_element, "INTERRUPT-SOURCE", entity.getInterruptSource())
|
|
1792
|
+
|
|
1729
1793
|
def writeBswInternalBehaviorBswModuleEntities(self, element: ET.Element, parent: BswInternalBehavior):
|
|
1730
1794
|
entities = parent.getBswModuleEntities()
|
|
1731
1795
|
if len(entities) > 0:
|
|
@@ -1735,8 +1799,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1735
1799
|
self.setBswCalledEntity(child_element, entity)
|
|
1736
1800
|
elif isinstance(entity, BswSchedulableEntity):
|
|
1737
1801
|
self.setBswSchedulableEntity(child_element, entity)
|
|
1802
|
+
elif isinstance(entity, BswInterruptEntity):
|
|
1803
|
+
self.setBswInterruptEntity(child_element, entity)
|
|
1738
1804
|
else:
|
|
1739
|
-
self.
|
|
1805
|
+
self.notImplemented("Unsupported BswModuleEntity <%s>" % type(entity))
|
|
1740
1806
|
|
|
1741
1807
|
def setBswEvent(self, element: ET.Element, event: BswEvent):
|
|
1742
1808
|
self.setIdentifiable(element, event)
|
|
@@ -1746,7 +1812,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1746
1812
|
self.setBswEvent(element, event)
|
|
1747
1813
|
|
|
1748
1814
|
def setBswTimingEvent(self, element: ET.Element, event: BswTimingEvent):
|
|
1749
|
-
self.logger.debug("setBswTimingEvent %s" % event.
|
|
1815
|
+
self.logger.debug("setBswTimingEvent %s" % event.getShortName())
|
|
1750
1816
|
child_element = ET.SubElement(element, "BSW-TIMING-EVENT")
|
|
1751
1817
|
self.setBswScheduleEvent(child_element, event)
|
|
1752
1818
|
self.setChildElementOptionalTimeValue(child_element, "PERIOD", event.getPeriod())
|
|
@@ -1804,10 +1870,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1804
1870
|
self._raiseError("Unsupported BswInternalBehavior <%s>" % type(behavior))
|
|
1805
1871
|
|
|
1806
1872
|
def writeBswModuleDescription(self, element: ET.Element, desc: BswModuleDescription):
|
|
1807
|
-
self.logger.debug("writeBswModuleDescription %s" % desc.
|
|
1873
|
+
self.logger.debug("writeBswModuleDescription %s" % desc.getShortName())
|
|
1808
1874
|
child_element = ET.SubElement(element, "BSW-MODULE-DESCRIPTION")
|
|
1809
1875
|
self.setIdentifiable(child_element, desc)
|
|
1810
|
-
self.setChildElementOptionalNumericalValue(child_element, "MODULE-ID", desc.
|
|
1876
|
+
self.setChildElementOptionalNumericalValue(child_element, "MODULE-ID", desc.getModuleId())
|
|
1811
1877
|
self.writerBswModuleDescriptionImplementedEntry(child_element, desc)
|
|
1812
1878
|
self.writeProvidedModeGroup(child_element, desc)
|
|
1813
1879
|
#self.readRequiredModeGroup(element, bsw_module_description)
|
|
@@ -1821,22 +1887,37 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1821
1887
|
child_element = ET.SubElement(mode_groups_tag, "MODE-DECLARATION-GROUP-PROTOTYPE-REF-CONDITIONAL")
|
|
1822
1888
|
self.setChildElementOptionalRefType(child_element, "MODE-DECLARATION-GROUP-PROTOTYPE-REF", mode_group_ref)
|
|
1823
1889
|
|
|
1890
|
+
def setSwServiceArg(self, element: ET.Element, arg: SwServiceArg):
|
|
1891
|
+
self.logger.debug("Set SwServiceArg <%s>" % arg.getShortName())
|
|
1892
|
+
if arg is not None:
|
|
1893
|
+
child_element = ET.SubElement(element, "SW-SERVICE-ARG")
|
|
1894
|
+
self.setIdentifiable(child_element, arg)
|
|
1895
|
+
self.setChildElementOptionalLiteral(child_element, "DIRECTION", arg.getDirection())
|
|
1896
|
+
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", arg.getSwDataDefProps())
|
|
1897
|
+
|
|
1898
|
+
def writeBswModuleEntryArguments(self, element: ET.Element, entry: BswModuleEntry):
|
|
1899
|
+
arguments = entry.getArguments()
|
|
1900
|
+
if len(arguments) > 0:
|
|
1901
|
+
child_element = ET.SubElement(element, "ARGUMENTS")
|
|
1902
|
+
for argument in arguments:
|
|
1903
|
+
self.setSwServiceArg(child_element, argument)
|
|
1904
|
+
|
|
1824
1905
|
def writeBswModuleEntry(self, element: ET.Element, entry: BswModuleEntry):
|
|
1825
|
-
self.logger.debug("writeBswModuleDescription %s" % entry.
|
|
1906
|
+
self.logger.debug("writeBswModuleDescription %s" % entry.getShortName())
|
|
1826
1907
|
child_element = ET.SubElement(element, "BSW-MODULE-ENTRY")
|
|
1827
1908
|
self.setIdentifiable(child_element, entry)
|
|
1828
|
-
self.setChildElementOptionalNumericalValue(child_element, "SERVICE-ID", entry.
|
|
1829
|
-
self.setChildElementOptionalBooleanValue(child_element, "IS-REENTRANT", entry.
|
|
1830
|
-
self.setChildElementOptionalBooleanValue(child_element, "IS-SYNCHRONOUS", entry.
|
|
1831
|
-
self.setChildElementOptionalLiteral(child_element, "CALL-TYPE", entry.
|
|
1832
|
-
self.setChildElementOptionalLiteral(child_element, "EXECUTION-CONTEXT", entry.
|
|
1833
|
-
self.setChildElementOptionalLiteral(child_element, "SW-SERVICE-IMPL-POLICY", entry.
|
|
1834
|
-
|
|
1909
|
+
self.setChildElementOptionalNumericalValue(child_element, "SERVICE-ID", entry.getServiceId())
|
|
1910
|
+
self.setChildElementOptionalBooleanValue(child_element, "IS-REENTRANT", entry.getIsReentrant())
|
|
1911
|
+
self.setChildElementOptionalBooleanValue(child_element, "IS-SYNCHRONOUS", entry.getIsSynchronous())
|
|
1912
|
+
self.setChildElementOptionalLiteral(child_element, "CALL-TYPE", entry.getCallType())
|
|
1913
|
+
self.setChildElementOptionalLiteral(child_element, "EXECUTION-CONTEXT", entry.getExecutionContext())
|
|
1914
|
+
self.setChildElementOptionalLiteral(child_element, "SW-SERVICE-IMPL-POLICY", entry.getSwServiceImplPolicy())
|
|
1915
|
+
self.writeBswModuleEntryArguments(child_element, entry)
|
|
1835
1916
|
|
|
1836
1917
|
def setSwcBswRunnableMapping(self, element: ET.SubElement, mapping: SwcBswRunnableMapping):
|
|
1837
1918
|
child_element = ET.SubElement(element, "SWC-BSW-RUNNABLE-MAPPING")
|
|
1838
|
-
self.setChildElementOptionalRefType(child_element, "BSW-ENTITY-REF", mapping.
|
|
1839
|
-
self.setChildElementOptionalRefType(child_element, "SWC-RUNNABLE-REF", mapping.
|
|
1919
|
+
self.setChildElementOptionalRefType(child_element, "BSW-ENTITY-REF", mapping.getBswEntityRef())
|
|
1920
|
+
self.setChildElementOptionalRefType(child_element, "SWC-RUNNABLE-REF", mapping.getSwcRunnableRef())
|
|
1840
1921
|
|
|
1841
1922
|
def writeSwcBswRunnableMappings(self, element: ET.Element, parent: SwcBswMapping):
|
|
1842
1923
|
runnable_mappings = parent.getRunnableMappings()
|
|
@@ -1848,13 +1929,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1848
1929
|
else:
|
|
1849
1930
|
self._raiseError("Unsupported Runnable Mapping <%s>" % type(mapping))
|
|
1850
1931
|
|
|
1851
|
-
def
|
|
1852
|
-
self.logger.debug("writeBswModuleDescription %s" % mapping.
|
|
1932
|
+
def writeSwcBswMapping(self, element: ET.Element, mapping: SwcBswMapping):
|
|
1933
|
+
self.logger.debug("writeBswModuleDescription %s" % mapping.getShortName())
|
|
1853
1934
|
child_element = ET.SubElement(element, "SWC-BSW-MAPPING")
|
|
1854
1935
|
self.setIdentifiable(child_element, mapping)
|
|
1855
|
-
self.setChildElementOptionalRefType(child_element, "BSW-BEHAVIOR-REF", mapping.
|
|
1936
|
+
self.setChildElementOptionalRefType(child_element, "BSW-BEHAVIOR-REF", mapping.getBswBehaviorRef())
|
|
1856
1937
|
self.writeSwcBswRunnableMappings(child_element, mapping)
|
|
1857
|
-
self.setChildElementOptionalRefType(child_element, "SWC-BEHAVIOR-REF", mapping.
|
|
1938
|
+
self.setChildElementOptionalRefType(child_element, "SWC-BEHAVIOR-REF", mapping.getSwcBehaviorRef())
|
|
1858
1939
|
|
|
1859
1940
|
def writeEngineeringObject(self, element: ET.Element, engineering_obj: EngineeringObject):
|
|
1860
1941
|
self.setARObjectAttributes(element, engineering_obj)
|
|
@@ -1885,7 +1966,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1885
1966
|
self.setChildElementOptionalRefType(child_element, "VENDOR-SPECIFIC-MODULE-DEF-REF", ref)
|
|
1886
1967
|
|
|
1887
1968
|
def writeBswImplementation(self, element: ET.Element, impl: BswImplementation):
|
|
1888
|
-
self.logger.debug("writeBswModuleDescription %s" % impl.
|
|
1969
|
+
self.logger.debug("writeBswModuleDescription %s" % impl.getShortName())
|
|
1889
1970
|
child_element = ET.SubElement(element, "BSW-IMPLEMENTATION")
|
|
1890
1971
|
self.writeImplementation(child_element, impl)
|
|
1891
1972
|
self.setChildElementOptionalLiteral(child_element, "AR-RELEASE-VERSION", impl.getArReleaseVersion())
|
|
@@ -1906,7 +1987,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1906
1987
|
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", type_element.getSwDataDefProps())
|
|
1907
1988
|
|
|
1908
1989
|
def writeImplementationDataType(self, element: ET.Element, data_type: ImplementationDataType):
|
|
1909
|
-
self.logger.debug("writeImplementationDataType %s" % data_type.
|
|
1990
|
+
self.logger.debug("writeImplementationDataType %s" % data_type.getShortName())
|
|
1910
1991
|
child_element = ET.SubElement(element, "IMPLEMENTATION-DATA-TYPE")
|
|
1911
1992
|
self.setAutosarDataType(child_element, data_type)
|
|
1912
1993
|
self.setChildElementOptionalLiteral(child_element, "DYNAMIC-ARRAY-SIZE-PROFILE", data_type.getDynamicArraySizeProfile())
|
|
@@ -1923,7 +2004,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1923
2004
|
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", prototype.swDataDefProps)
|
|
1924
2005
|
self.setChildElementOptionalRefType(child_element, "TYPE-TREF", prototype.typeTRef)
|
|
1925
2006
|
self.setChildElementOptionalLiteral(child_element, "DIRECTION", prototype.direction)
|
|
1926
|
-
self.setChildElementOptionalLiteral(child_element, "SERVER-ARGUMENT-IMPL-POLICY", prototype.
|
|
2007
|
+
self.setChildElementOptionalLiteral(child_element, "SERVER-ARGUMENT-IMPL-POLICY", prototype.serverArgumentImplPolicy)
|
|
1927
2008
|
|
|
1928
2009
|
def writePossibleErrorRefs(self, element: ET.Element, parent: ClientServerOperation):
|
|
1929
2010
|
error_refs = parent.getPossbileErrorRefs()
|
|
@@ -1933,7 +2014,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1933
2014
|
self.setChildElementOptionalRefType(error_refs_tag, "POSSIBLE-ERROR-REF", error_ref)
|
|
1934
2015
|
|
|
1935
2016
|
def writeClientServerOperation(self, element: ET.Element, operation: ClientServerOperation):
|
|
1936
|
-
self.logger.debug("writeClientServerOperation %s" % operation.
|
|
2017
|
+
self.logger.debug("writeClientServerOperation %s" % operation.getShortName())
|
|
1937
2018
|
child_element = ET.SubElement(element, "CLIENT-SERVER-OPERATION")
|
|
1938
2019
|
self.setIdentifiable(child_element, operation)
|
|
1939
2020
|
self.writeArgumentDataPrototypes(child_element, operation)
|
|
@@ -1950,7 +2031,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1950
2031
|
self._raiseError("Unsupported Operation <%s>" % type(operation))
|
|
1951
2032
|
|
|
1952
2033
|
def writeApplicationError(self, element: ET.Element, error: ApplicationError):
|
|
1953
|
-
self.logger.debug("writeApplicationError %s" % error.
|
|
2034
|
+
self.logger.debug("writeApplicationError %s" % error.getShortName())
|
|
1954
2035
|
child_element = ET.SubElement(element, "APPLICATION-ERROR")
|
|
1955
2036
|
self.setIdentifiable(child_element, error)
|
|
1956
2037
|
self.setChildElementOptionalNumericalValue(child_element, "ERROR-CODE", error.error_code)
|
|
@@ -1970,33 +2051,26 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1970
2051
|
self.setChildElementOptionalBooleanValue(element, "IS-SERVICE", port_interface.isService)
|
|
1971
2052
|
self.setChildElementOptionalLiteral(element, "SERVICE-KIND", port_interface.serviceKind)
|
|
1972
2053
|
|
|
1973
|
-
def writeParameterInterfaceParameters(self, element: ET.Element, param_interface: ParameterInterface):
|
|
1974
|
-
parameters = param_interface.getParameters()
|
|
1975
|
-
if len(parameters) > 0:
|
|
1976
|
-
child_element = ET.SubElement(element, "PARAMETERS")
|
|
1977
|
-
for prototype in parameters:
|
|
1978
|
-
self.writeParameterDataPrototype(child_element, prototype)
|
|
1979
|
-
|
|
1980
2054
|
def writeParameterInterface(self, element: ET.Element, param_interface: ParameterInterface):
|
|
1981
|
-
self.logger.debug("Write ParameterInterface %s" % param_interface.
|
|
2055
|
+
self.logger.debug("Write ParameterInterface %s" % param_interface.getShortName())
|
|
1982
2056
|
child_element = ET.SubElement(element, "PARAMETER-INTERFACE")
|
|
1983
2057
|
self.setPortInterface(child_element, param_interface)
|
|
1984
|
-
self.
|
|
2058
|
+
self.setParameterDataPrototypes(child_element, "PARAMETERS", param_interface.getParameters())
|
|
1985
2059
|
|
|
1986
2060
|
def writeClientServerInterface(self, element: ET.Element, cs_interface: ClientServerInterface):
|
|
1987
|
-
self.logger.debug("writeClientServerInterface %s" % cs_interface.
|
|
2061
|
+
self.logger.debug("writeClientServerInterface %s" % cs_interface.getShortName())
|
|
1988
2062
|
child_element = ET.SubElement(element, "CLIENT-SERVER-INTERFACE")
|
|
1989
2063
|
self.setPortInterface(child_element, cs_interface)
|
|
1990
2064
|
self.writeOperations(child_element, cs_interface)
|
|
1991
2065
|
self.writePossibleErrors(child_element, cs_interface)
|
|
1992
2066
|
|
|
1993
2067
|
def writeApplicationSwComponentType(self, element: ET.Element, sw_component: ApplicationSwComponentType):
|
|
1994
|
-
self.logger.debug("writeApplicationSwComponentType %s" % sw_component.
|
|
2068
|
+
self.logger.debug("writeApplicationSwComponentType %s" % sw_component.getShortName())
|
|
1995
2069
|
child_element = ET.SubElement(element, "APPLICATION-SW-COMPONENT-TYPE")
|
|
1996
2070
|
self.writeAtomicSwComponentType(child_element, sw_component)
|
|
1997
2071
|
|
|
1998
2072
|
def writeEcuAbstractionSwComponentType(self, element: ET.Element, sw_component: EcuAbstractionSwComponentType):
|
|
1999
|
-
self.logger.debug("writeEcuAbstractionSwComponentType %s" % sw_component.
|
|
2073
|
+
self.logger.debug("writeEcuAbstractionSwComponentType %s" % sw_component.getShortName())
|
|
2000
2074
|
child_element = ET.SubElement(element, "ECU-ABSTRACTION-SW-COMPONENT-TYPE")
|
|
2001
2075
|
self.writeAtomicSwComponentType(child_element, sw_component)
|
|
2002
2076
|
|
|
@@ -2008,7 +2082,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2008
2082
|
self.setChildElementOptionalNumericalValue(child_element, "MAX-NUMBER-OF-ELEMENTS", prototype.maxNumberOfElements)
|
|
2009
2083
|
|
|
2010
2084
|
def writeApplicationArrayDataType(self, element: ET.Element, data_type: ApplicationArrayDataType):
|
|
2011
|
-
self.logger.debug("writeApplicationArrayDataType %s" % data_type.
|
|
2085
|
+
self.logger.debug("writeApplicationArrayDataType %s" % data_type.getShortName())
|
|
2012
2086
|
child_element = ET.SubElement(element, "APPLICATION-ARRAY-DATA-TYPE")
|
|
2013
2087
|
self.setApplicationCompositeDataType(child_element, data_type)
|
|
2014
2088
|
self.setApplicationArrayElement(child_element, data_type.element)
|
|
@@ -2037,13 +2111,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2037
2111
|
return group
|
|
2038
2112
|
|
|
2039
2113
|
def writeSwRecordLayout(self, element: ET.Element, layout: SwRecordLayout):
|
|
2040
|
-
self.logger.debug("writeSwRecordLayout %s" % layout.
|
|
2114
|
+
self.logger.debug("writeSwRecordLayout %s" % layout.getShortName())
|
|
2041
2115
|
child_element = ET.SubElement(element, "SW-RECORD-LAYOUT")
|
|
2042
2116
|
self.setIdentifiable(child_element, layout)
|
|
2043
2117
|
self.setSwRecordLayoutGroup(child_element, "SW-RECORD-LAYOUT-GROUP", layout.getSwRecordLayoutGroup())
|
|
2044
2118
|
|
|
2045
2119
|
def writeSwAddrMethod(self, element: ET.Element, method: SwAddrMethod):
|
|
2046
|
-
self.logger.debug("writeSwAddrMethod %s" % method.
|
|
2120
|
+
self.logger.debug("writeSwAddrMethod %s" % method.getShortName())
|
|
2047
2121
|
child_element = ET.SubElement(element, "SW-ADDR-METHOD")
|
|
2048
2122
|
self.setIdentifiable(child_element, method)
|
|
2049
2123
|
self.setChildElementOptionalLiteral(child_element, "MEMORY-ALLOCATION-KEYWORD-POLICY", method.getMemoryAllocationKeywordPolicy())
|
|
@@ -2056,11 +2130,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2056
2130
|
self.setChildElementOptionalLiteral(child_element, "SECTION-TYPE", method.getSectionType())
|
|
2057
2131
|
|
|
2058
2132
|
def writeTriggerInterface(self, element: ET.Element, trigger_if: TriggerInterface):
|
|
2059
|
-
self.logger.debug("writeTriggerInterface %s" % trigger_if.
|
|
2133
|
+
self.logger.debug("writeTriggerInterface %s" % trigger_if.getShortName())
|
|
2060
2134
|
child_element = ET.SubElement(element, "TRIGGER-INTERFACE")
|
|
2061
2135
|
|
|
2062
2136
|
def writeServiceSwComponentType(self, element: ET.Element, sw_component: ServiceSwComponentType):
|
|
2063
|
-
self.logger.debug("writeServiceSwComponentType %s" % sw_component.
|
|
2137
|
+
self.logger.debug("writeServiceSwComponentType %s" % sw_component.getShortName())
|
|
2064
2138
|
child_element = ET.SubElement(element, "SERVICE-SW-COMPONENT-TYPE")
|
|
2065
2139
|
self.writeAtomicSwComponentType(child_element, sw_component)
|
|
2066
2140
|
|
|
@@ -2085,7 +2159,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2085
2159
|
self.setChildElementOptionalRefType(child_element, "MODE-GROUP-REF", map.getModeGroupRef())
|
|
2086
2160
|
|
|
2087
2161
|
def writeDataTypeMappingSet(self, element: ET.Element, mapping_set: DataTypeMappingSet):
|
|
2088
|
-
self.logger.debug("writeDataTypeMappingSet %s" % mapping_set.
|
|
2162
|
+
self.logger.debug("writeDataTypeMappingSet %s" % mapping_set.getShortName())
|
|
2089
2163
|
child_element = ET.SubElement(element, "DATA-TYPE-MAPPING-SET")
|
|
2090
2164
|
self.setIdentifiable(child_element, mapping_set)
|
|
2091
2165
|
self.writeDataTypeMaps(child_element, mapping_set)
|
|
@@ -2104,7 +2178,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2104
2178
|
self.setModeDeclaration(child_element, mode_declaration)
|
|
2105
2179
|
|
|
2106
2180
|
def writeModeDeclarationGroup(self, element: ET.Element, group: ModeDeclarationGroup):
|
|
2107
|
-
self.logger.debug("writeModeDeclarationGroup %s" % group.
|
|
2181
|
+
self.logger.debug("writeModeDeclarationGroup %s" % group.getShortName())
|
|
2108
2182
|
child_element = ET.SubElement(element, "MODE-DECLARATION-GROUP")
|
|
2109
2183
|
self.setIdentifiable(child_element, group)
|
|
2110
2184
|
self.setChildElementOptionalRefType(child_element, "INITIAL-MODE-REF", group.initialModeRef)
|
|
@@ -2120,7 +2194,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2120
2194
|
self.setChildElementOptionalRefType(child_element, "TYPE-TREF", mode_group.type_tref)
|
|
2121
2195
|
|
|
2122
2196
|
def writeModeSwitchInterface(self, element: ET.Element, mode_interface: ModeSwitchInterface):
|
|
2123
|
-
self.logger.debug("writeModeSwitchInterface %s" % mode_interface.
|
|
2197
|
+
self.logger.debug("writeModeSwitchInterface %s" % mode_interface.getShortName())
|
|
2124
2198
|
child_element = ET.SubElement(element, "MODE-SWITCH-INTERFACE")
|
|
2125
2199
|
self.setPortInterface(child_element, mode_interface)
|
|
2126
2200
|
self.writeModeSwitchInterfaceModeGroup(child_element, mode_interface)
|
|
@@ -2147,7 +2221,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2147
2221
|
self._raiseError("Unsupported order element <%s>" % type(order_element))
|
|
2148
2222
|
|
|
2149
2223
|
def writeExecutionOrderConstraint(self, element: ET.Element, constraint: ExecutionOrderConstraint):
|
|
2150
|
-
self.logger.debug("writeExecutionOrderConstraint %s" % constraint.
|
|
2224
|
+
self.logger.debug("writeExecutionOrderConstraint %s" % constraint.getShortName())
|
|
2151
2225
|
child_element = ET.SubElement(element, "EXECUTION-ORDER-CONSTRAINT")
|
|
2152
2226
|
self.setIdentifiable(child_element, constraint)
|
|
2153
2227
|
self.writeExecutionOrderConstraintOrderedElement(child_element, constraint)
|
|
@@ -2166,7 +2240,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2166
2240
|
self.writeTimingRequirements(element, extension)
|
|
2167
2241
|
|
|
2168
2242
|
def writeSwcTiming(self, element: ET.Element, timing: SwcTiming):
|
|
2169
|
-
self.logger.debug("writeSWcTiming %s" % timing.
|
|
2243
|
+
self.logger.debug("writeSWcTiming %s" % timing.getShortName())
|
|
2170
2244
|
child_element = ET.SubElement(element, "SWC-TIMING")
|
|
2171
2245
|
self.setIdentifiable(child_element, timing)
|
|
2172
2246
|
self.writeTimingExtension(child_element, timing)
|
|
@@ -2188,7 +2262,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2188
2262
|
self.writePduToFrameMappings(element, frame)
|
|
2189
2263
|
|
|
2190
2264
|
def writeLinUnconditionalFrame(self, element: ET.Element, frame: LinUnconditionalFrame):
|
|
2191
|
-
self.logger.debug("LinUnconditionalFrame %s" % frame.
|
|
2265
|
+
self.logger.debug("LinUnconditionalFrame %s" % frame.getShortName())
|
|
2192
2266
|
child_element = ET.SubElement(element, "LIN-UNCONDITIONAL-FRAME")
|
|
2193
2267
|
self.writeFrame(child_element, frame)
|
|
2194
2268
|
|
|
@@ -2210,7 +2284,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2210
2284
|
self.setChildElementOptionalRefType(refs_tag, "TX-NM-PDU-REF", ref)
|
|
2211
2285
|
|
|
2212
2286
|
def writeCanNmNode(self, element: ET.Element, nm_node: CanNmNode):
|
|
2213
|
-
self.logger.debug("writeCanNmNode %s" % nm_node.
|
|
2287
|
+
self.logger.debug("writeCanNmNode %s" % nm_node.getShortName())
|
|
2214
2288
|
child_element = ET.SubElement(element, "CAN-NM-NODE")
|
|
2215
2289
|
self.setIdentifiable(child_element, nm_node)
|
|
2216
2290
|
self.writeNmNode(child_element, nm_node)
|
|
@@ -2259,7 +2333,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2259
2333
|
self.setChildElementOptionalBooleanValue(element, "NM-SYNCHRONIZING-NETWORK", cluster.getNmSynchronizingNetwork())
|
|
2260
2334
|
|
|
2261
2335
|
def writeCanNmCluster(self, element: ET.Element, cluster: CanNmCluster):
|
|
2262
|
-
self.logger.debug("WriteCanNmCluster %s" % cluster.
|
|
2336
|
+
self.logger.debug("WriteCanNmCluster %s" % cluster.getShortName())
|
|
2263
2337
|
child_element = ET.SubElement(element, "CAN-NM-CLUSTER")
|
|
2264
2338
|
self.setIdentifiable(child_element, cluster)
|
|
2265
2339
|
self.writeNmCluster(child_element, cluster)
|
|
@@ -2290,20 +2364,20 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2290
2364
|
self._raiseError("Unsupported Nm Cluster <%s>" % type(cluster))
|
|
2291
2365
|
|
|
2292
2366
|
def writeNmConfig(self, element: ET.Element, config: NmConfig):
|
|
2293
|
-
self.logger.debug("WriteNmConfig %s" % config.
|
|
2367
|
+
self.logger.debug("WriteNmConfig %s" % config.getShortName())
|
|
2294
2368
|
child_element = ET.SubElement(element, "NM-CONFIG")
|
|
2295
2369
|
self.setIdentifiable(child_element, config)
|
|
2296
2370
|
self.writeNmConfigNmClusters(child_element, config)
|
|
2297
2371
|
self.writeNmConfigNmClusterCouplings(child_element, config)
|
|
2298
2372
|
|
|
2299
2373
|
def writeNmPdu(self, element: ET.Element, pdu: NmPdu):
|
|
2300
|
-
self.logger.debug("NmPdu %s" % pdu.
|
|
2374
|
+
self.logger.debug("NmPdu %s" % pdu.getShortName())
|
|
2301
2375
|
child_element = ET.SubElement(element, "NM-PDU")
|
|
2302
2376
|
self.setIdentifiable(child_element, pdu)
|
|
2303
2377
|
self.writeIPdu(child_element, pdu)
|
|
2304
2378
|
|
|
2305
2379
|
def writeNPdu(self, element: ET.Element, pdu: NPdu):
|
|
2306
|
-
self.logger.debug("NPdu %s" % pdu.
|
|
2380
|
+
self.logger.debug("NPdu %s" % pdu.getShortName())
|
|
2307
2381
|
child_element = ET.SubElement(element, "N-PDU")
|
|
2308
2382
|
self.setIdentifiable(child_element, pdu)
|
|
2309
2383
|
self.writeIPdu(child_element, pdu)
|
|
@@ -2312,20 +2386,20 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2312
2386
|
self.setChildElementOptionalLiteral(element, "LENGTH", pdu.getLength())
|
|
2313
2387
|
|
|
2314
2388
|
def writeDcmIPdu(self, element: ET.Element, pdu: DcmIPdu):
|
|
2315
|
-
self.logger.debug("DcmIPdu %s" % pdu.
|
|
2389
|
+
self.logger.debug("DcmIPdu %s" % pdu.getShortName())
|
|
2316
2390
|
child_element = ET.SubElement(element, "DCM-I-PDU")
|
|
2317
2391
|
self.setIdentifiable(child_element, pdu)
|
|
2318
2392
|
self.writeIPdu(child_element, pdu)
|
|
2319
2393
|
self.setChildElementOptionalLiteral(child_element, "DIAG-PDU-TYPE", pdu.getDiagPduType())
|
|
2320
2394
|
|
|
2321
2395
|
def writeSecuredIPdu(self, element: ET.Element, pdu: DcmIPdu):
|
|
2322
|
-
self.logger.debug("SecuredIPdu %s" % pdu.
|
|
2396
|
+
self.logger.debug("SecuredIPdu %s" % pdu.getShortName())
|
|
2323
2397
|
child_element = ET.SubElement(element, "SECURED-I-PDU")
|
|
2324
2398
|
self.setIdentifiable(child_element, pdu)
|
|
2325
2399
|
self.writeIPdu(child_element, pdu)
|
|
2326
2400
|
|
|
2327
2401
|
def writeCanTpConfig(self, element: ET.Element, config: CanTpConfig):
|
|
2328
|
-
self.logger.debug("CanTpConfig %s" % config.
|
|
2402
|
+
self.logger.debug("CanTpConfig %s" % config.getShortName())
|
|
2329
2403
|
child_element = ET.SubElement(element, "CAN-TP-CONFIG")
|
|
2330
2404
|
self.setIdentifiable(child_element, config)
|
|
2331
2405
|
|
|
@@ -2431,27 +2505,129 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2431
2505
|
else:
|
|
2432
2506
|
self.notImplemented("Unsupported PduTriggering <%s>" % type(triggering))
|
|
2433
2507
|
|
|
2434
|
-
def
|
|
2435
|
-
self.logger.debug("CanPhysicalChannel %s" % channel.
|
|
2508
|
+
def setCanPhysicalChannel(self, element: ET.Element, channel: CanPhysicalChannel):
|
|
2509
|
+
self.logger.debug("Set CanPhysicalChannel %s" % channel.getShortName())
|
|
2436
2510
|
child_element = ET.SubElement(element, "CAN-PHYSICAL-CHANNEL")
|
|
2437
2511
|
self.setIdentifiable(child_element, channel)
|
|
2438
2512
|
self.writePhysicalChannel(child_element, channel)
|
|
2439
2513
|
|
|
2440
2514
|
def writeLinPhysicalChannel(self, element: ET.Element, channel: LinPhysicalChannel):
|
|
2441
|
-
self.logger.debug("LinPhysicalChannel %s" % channel.
|
|
2515
|
+
self.logger.debug("Set LinPhysicalChannel %s" % channel.getShortName())
|
|
2442
2516
|
child_element = ET.SubElement(element, "LIN-PHYSICAL-CHANNEL")
|
|
2443
2517
|
self.setIdentifiable(child_element, channel)
|
|
2444
2518
|
self.writePhysicalChannel(child_element, channel)
|
|
2445
2519
|
|
|
2520
|
+
def setIpv6Configuration(self, element: ET.Element, configuration: Ipv6Configuration):
|
|
2521
|
+
if configuration is not None:
|
|
2522
|
+
child_element = ET.SubElement(element, "IPV-6-CONFIGURATION")
|
|
2523
|
+
self.setChildElementOptionalPositiveInteger(child_element, "ASSIGNMENT-PRIORITY", configuration.getAssignmentPriority())
|
|
2524
|
+
self.setChildElementOptionalLiteral(child_element, "DEFAULT-ROUTER", configuration.getDefaultRouter())
|
|
2525
|
+
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-ANYCAST", configuration.getEnableAnycast())
|
|
2526
|
+
self.setChildElementOptionalPositiveInteger(child_element, "HOP-COUNT", configuration.getHopCount())
|
|
2527
|
+
self.setChildElementOptionalPositiveInteger(child_element, "IP-ADDRESS-PREFIX-LENGTH", configuration.getIpAddressPrefixLength())
|
|
2528
|
+
self.setChildElementOptionalLiteral(child_element, "IPV-6-ADDRESS", configuration.getIpv6Address())
|
|
2529
|
+
self.setChildElementOptionalLiteral(child_element, "IPV-6-ADDRESS-SOURCE", configuration.getIpv6AddressSource())
|
|
2530
|
+
|
|
2531
|
+
def writeNetworkEndPointNetworkEndPointAddresses(self, element: ET.Element, addresses: List[NetworkEndpointAddress]):
|
|
2532
|
+
if len(addresses) > 0:
|
|
2533
|
+
child_element = ET.SubElement(element, "NETWORK-ENDPOINT-ADDRESSES")
|
|
2534
|
+
for address in addresses:
|
|
2535
|
+
if isinstance(address, Ipv6Configuration):
|
|
2536
|
+
self.setIpv6Configuration(child_element, address)
|
|
2537
|
+
else:
|
|
2538
|
+
self.notImplemented("Unsupported Network EndPoint Address <%s>" % type(address))
|
|
2539
|
+
|
|
2540
|
+
def writeNetworkEndPoint(self, element: ET.Element, end_point: NetworkEndpoint):
|
|
2541
|
+
self.logger.debug("Set NetworkEndpoint %s" % end_point.getShortName())
|
|
2542
|
+
child_element = ET.SubElement(element, "NETWORK-ENDPOINT")
|
|
2543
|
+
self.setIdentifiable(child_element, end_point)
|
|
2544
|
+
self.writeNetworkEndPointNetworkEndPointAddresses(child_element, end_point.getNetworkEndpointAddresses())
|
|
2545
|
+
self.setChildElementOptionalPositiveInteger(child_element, "PRIORITY", end_point.getPriority())
|
|
2546
|
+
|
|
2547
|
+
def writeEthernetPhysicalChannelNetworkEndPoints(self, element: ET.Element, end_points: List[NetworkEndpoint]):
|
|
2548
|
+
if len(end_points) > 0:
|
|
2549
|
+
child_element = ET.SubElement(element, "NETWORK-ENDPOINTS")
|
|
2550
|
+
for end_point in end_points:
|
|
2551
|
+
self.writeNetworkEndPoint(child_element, end_point)
|
|
2552
|
+
|
|
2553
|
+
def setSocketConnectionIpduIdentifier(self, element: ET.Element,identifier: SocketConnectionIpduIdentifier):
|
|
2554
|
+
if identifier is not None:
|
|
2555
|
+
child_element = ET.SubElement(element, "SOCKET-CONNECTION-IPDU-IDENTIFIER")
|
|
2556
|
+
self.setChildElementOptionalPositiveInteger(child_element, "HEADER-ID", identifier.getHeaderId())
|
|
2557
|
+
self.setChildElementOptionalLiteral(child_element, "PDU-COLLECTION-SEMANTICS", identifier.getPduCollectionSemantics())
|
|
2558
|
+
self.setChildElementOptionalLiteral(child_element, "PDU-COLLECTION-TRIGGER", identifier.getPduCollectionTrigger())
|
|
2559
|
+
self.setChildElementOptionalRefType(child_element, "PDU-REF", identifier.getPduRef())
|
|
2560
|
+
self.setChildElementOptionalRefType(child_element, "PDU-TRIGGERING-REF", identifier.getPduTriggeringRef())
|
|
2561
|
+
|
|
2562
|
+
def setSocketConnectionPdus(self, element: ET.Element, key: str, pdus: List[SocketConnectionIpduIdentifier]):
|
|
2563
|
+
if len(pdus) > 0:
|
|
2564
|
+
child_element = ET.SubElement(element, key)
|
|
2565
|
+
for pdu in pdus:
|
|
2566
|
+
if isinstance(pdu, SocketConnectionIpduIdentifier):
|
|
2567
|
+
self.setSocketConnectionIpduIdentifier(child_element, pdu)
|
|
2568
|
+
else:
|
|
2569
|
+
self.notImplemented("Unsupported Pdu <%s>" % type(pdu))
|
|
2570
|
+
|
|
2571
|
+
def setSocketConnection(self, element: ET.Element, connection: SocketConnection):
|
|
2572
|
+
if connection is not None:
|
|
2573
|
+
child_element = ET.SubElement(element, "SOCKET-CONNECTION")
|
|
2574
|
+
self.setChildElementOptionalRefType(child_element, "CLIENT-PORT-REF", connection.getClientPortRef())
|
|
2575
|
+
self.setSocketConnectionPdus(child_element, "PDUS", connection.getPdus())
|
|
2576
|
+
self.setChildElementOptionalPositiveInteger(child_element, "PDU-COLLECTION-MAX-BUFFER-SIZE", connection.getPduCollectionMaxBufferSize())
|
|
2577
|
+
self.setChildElementOptionalTimeValue(child_element, "PDU-COLLECTION-TIMEOUT", connection.getPduCollectionTimeout())
|
|
2578
|
+
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", connection.getShortLabel())
|
|
2579
|
+
|
|
2580
|
+
def writeSocketConnectionBundleConnections(self, element: ET.Element, bundle: SocketConnectionBundle):
|
|
2581
|
+
connections = bundle.getBundledConnections()
|
|
2582
|
+
if len(connections) > 0:
|
|
2583
|
+
child_element = ET.SubElement(element, "BUNDLED-CONNECTIONS")
|
|
2584
|
+
for connection in connections:
|
|
2585
|
+
if isinstance(connection, SocketConnection):
|
|
2586
|
+
self.setSocketConnection(child_element, connection)
|
|
2587
|
+
else:
|
|
2588
|
+
self.notImplemented("Unsupported Bundled Connection <%s>" % type(connection))
|
|
2589
|
+
|
|
2590
|
+
def writeSocketConnectionBundle(self, element: ET.Element, bundle: SocketConnectionBundle):
|
|
2591
|
+
if bundle is not None:
|
|
2592
|
+
child_element = ET.SubElement(element, "SOCKET-CONNECTION-BUNDLE")
|
|
2593
|
+
self.setReferable(child_element, bundle)
|
|
2594
|
+
self.writeSocketConnectionBundleConnections(child_element, bundle)
|
|
2595
|
+
self.setChildElementOptionalRefType(child_element, "SERVER-PORT-REF", bundle.getServerPortRef())
|
|
2596
|
+
|
|
2597
|
+
def writeSoAdConfigConnectionBundles(self, element: ET.Element, config: SoAdConfig):
|
|
2598
|
+
bundles = config.getConnectionBundles()
|
|
2599
|
+
if len(bundles) > 0:
|
|
2600
|
+
child_element = ET.SubElement(element, "CONNECTION-BUNDLES")
|
|
2601
|
+
for bundle in bundles:
|
|
2602
|
+
if isinstance(bundle, SocketConnectionBundle):
|
|
2603
|
+
self.writeSocketConnectionBundle(child_element, bundle)
|
|
2604
|
+
else:
|
|
2605
|
+
self.notImplemented("Unsupported Connection Bundle <%s>" % type(bundle))
|
|
2606
|
+
|
|
2607
|
+
def setSoAdConfig(self, element: ET.Element, key: str, config: SoAdConfig):
|
|
2608
|
+
if config is not None:
|
|
2609
|
+
child_element = ET.SubElement(element, key)
|
|
2610
|
+
self.writeSoAdConfigConnectionBundles(child_element, config)
|
|
2611
|
+
|
|
2612
|
+
def setEthernetPhysicalChannel(self, element: ET.Element, channel: EthernetPhysicalChannel):
|
|
2613
|
+
self.logger.debug("Set EthernetPhysicalChannel %s" % channel.getShortName())
|
|
2614
|
+
child_element = ET.SubElement(element, "ETHERNET-PHYSICAL-CHANNEL")
|
|
2615
|
+
self.setIdentifiable(child_element, channel)
|
|
2616
|
+
self.writePhysicalChannel(child_element, channel)
|
|
2617
|
+
self.writeEthernetPhysicalChannelNetworkEndPoints(child_element, channel.getNetworkEndpoints())
|
|
2618
|
+
self.setSoAdConfig(child_element, "SO-AD-CONFIG", channel.getSoAdConfig())
|
|
2619
|
+
|
|
2446
2620
|
def writeCommunicationClusterPhysicalChannels(self, element: ET.Element, cluster: CommunicationCluster):
|
|
2447
2621
|
channels = cluster.getPhysicalChannels()
|
|
2448
2622
|
if len(channels) > 0:
|
|
2449
2623
|
child_element = ET.SubElement(element, "PHYSICAL-CHANNELS")
|
|
2450
2624
|
for channel in channels:
|
|
2451
2625
|
if isinstance(channel, CanPhysicalChannel):
|
|
2452
|
-
self.
|
|
2626
|
+
self.setCanPhysicalChannel(child_element, channel)
|
|
2453
2627
|
elif isinstance(channel, LinPhysicalChannel):
|
|
2454
2628
|
self.writeLinPhysicalChannel(child_element, channel)
|
|
2629
|
+
elif isinstance(channel, EthernetPhysicalChannel):
|
|
2630
|
+
self.setEthernetPhysicalChannel(child_element, channel)
|
|
2455
2631
|
else:
|
|
2456
2632
|
self.notImplemented("Unsupported Physical Channel <%s>" % type(channel))
|
|
2457
2633
|
|
|
@@ -2466,7 +2642,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2466
2642
|
self.setChildElementOptionalNumericalValue(element, "SPEED", cluster.getSpeed())
|
|
2467
2643
|
|
|
2468
2644
|
def writeLinCluster(self, element: ET.Element, cluster: LinCluster):
|
|
2469
|
-
self.logger.debug("LinCluster %s" % cluster.
|
|
2645
|
+
self.logger.debug("LinCluster %s" % cluster.getShortName())
|
|
2470
2646
|
child_element = ET.SubElement(element, "LIN-CLUSTER")
|
|
2471
2647
|
self.setIdentifiable(child_element, cluster)
|
|
2472
2648
|
child_element = ET.SubElement(child_element, "LIN-CLUSTER-VARIANTS")
|
|
@@ -2474,7 +2650,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2474
2650
|
self.writeCommunicationCluster(child_element, cluster)
|
|
2475
2651
|
|
|
2476
2652
|
def writeCanCluster(self, element: ET.Element, cluster: CanCluster):
|
|
2477
|
-
self.logger.debug("CanCluster %s" % cluster.
|
|
2653
|
+
self.logger.debug("CanCluster %s" % cluster.getShortName())
|
|
2478
2654
|
child_element = ET.SubElement(element, "CAN-CLUSTER")
|
|
2479
2655
|
self.setIdentifiable(child_element, cluster)
|
|
2480
2656
|
|
|
@@ -2483,8 +2659,17 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2483
2659
|
self.writeCommunicationCluster(child_element, cluster)
|
|
2484
2660
|
self.readAbstractCanCluster(child_element, cluster)
|
|
2485
2661
|
|
|
2662
|
+
def writeEthernetCluster(self, element: ET.Element, cluster: EthernetCluster):
|
|
2663
|
+
self.logger.debug("Set EthernetCluster %s" % cluster.getShortName())
|
|
2664
|
+
child_element = ET.SubElement(element, "ETHERNET-CLUSTER")
|
|
2665
|
+
self.setARElement(child_element, cluster)
|
|
2666
|
+
|
|
2667
|
+
child_element = ET.SubElement(child_element, "ETHERNET-CLUSTER-VARIANTS")
|
|
2668
|
+
child_element = ET.SubElement(child_element, "ETHERNET-CLUSTER-CONDITIONAL")
|
|
2669
|
+
self.writeCommunicationCluster(child_element, cluster)
|
|
2670
|
+
|
|
2486
2671
|
def writeCanFrame(self, element: ET.Element, frame: CanFrame):
|
|
2487
|
-
self.logger.debug("Write CanFrame %s" % frame.
|
|
2672
|
+
self.logger.debug("Write CanFrame %s" % frame.getShortName())
|
|
2488
2673
|
child_element = ET.SubElement(element, "CAN-FRAME")
|
|
2489
2674
|
self.writeFrame(child_element, frame)
|
|
2490
2675
|
|
|
@@ -2519,10 +2704,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2519
2704
|
else:
|
|
2520
2705
|
self._raiseError("Unsupported CommConnectorPort <%s>" % type(port))
|
|
2521
2706
|
|
|
2522
|
-
def
|
|
2707
|
+
def setCanCommunicationController(self, element: ET.Element, controller: CanCommunicationController):
|
|
2523
2708
|
self.logger.debug("Write CanCommunicationController %s" % controller.getShortName())
|
|
2524
2709
|
self.setIdentifiable(element, controller)
|
|
2525
2710
|
|
|
2711
|
+
def setEthernetCommunicationController(self, element: ET.Element, controller: EthernetCommunicationController):
|
|
2712
|
+
self.logger.debug("Write EthernetCommunicationController %s" % controller.getShortName())
|
|
2713
|
+
self.setIdentifiable(element, controller)
|
|
2714
|
+
|
|
2526
2715
|
def writeEcuInstanceCommControllers(self, element: ET.Element, instance: EcuInstance):
|
|
2527
2716
|
controllers = instance.getCommControllers()
|
|
2528
2717
|
if len(controllers) > 0:
|
|
@@ -2530,19 +2719,25 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2530
2719
|
for controller in controllers:
|
|
2531
2720
|
if isinstance(controller, CanCommunicationController):
|
|
2532
2721
|
child_element = ET.SubElement(controllers_tag, "CAN-COMMUNICATION-CONTROLLER")
|
|
2533
|
-
self.
|
|
2722
|
+
self.setCanCommunicationController(child_element, controller)
|
|
2723
|
+
elif isinstance(controller, EthernetCommunicationController):
|
|
2724
|
+
child_element = ET.SubElement(controllers_tag, "ETHERNET-COMMUNICATION-CONTROLLER")
|
|
2725
|
+
self.setEthernetCommunicationController(child_element, controller)
|
|
2534
2726
|
else:
|
|
2535
|
-
self.
|
|
2727
|
+
self.notImplemented("Unsupported Communication Controller <%s>" % type(controller))
|
|
2536
2728
|
|
|
2537
2729
|
def writeCommunicationConnector(self, element: ET.Element, connector: CommunicationConnector):
|
|
2538
2730
|
self.setIdentifiable(element, connector)
|
|
2539
2731
|
self.setChildElementOptionalRefType(element, "COMM-CONTROLLER-REF", connector.getCommControllerRef())
|
|
2540
2732
|
self.writeCommunicationConnectorEcuCommPortInstances(element, connector)
|
|
2541
2733
|
|
|
2542
|
-
|
|
2543
2734
|
def writeCanCommunicationConnector(self, element: ET.Element, connector: CanCommunicationConnector):
|
|
2544
2735
|
self.logger.debug("Write CanCommunicationConnector %s" % connector.getShortName())
|
|
2545
|
-
self.writeCommunicationConnector(element, connector)
|
|
2736
|
+
self.writeCommunicationConnector(element, connector)
|
|
2737
|
+
|
|
2738
|
+
def writeEthernetCommunicationConnector(self, element: ET.Element, connector: EthernetCommunicationConnector):
|
|
2739
|
+
self.logger.debug("Write EthernetCommunicationConnector %s" % connector.getShortName())
|
|
2740
|
+
self.writeCommunicationConnector(element, connector)
|
|
2546
2741
|
|
|
2547
2742
|
def writeEcuInstanceConnectors(self, element: ET.Element, instance: EcuInstance):
|
|
2548
2743
|
connectors = instance.getConnectors()
|
|
@@ -2552,11 +2747,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2552
2747
|
if isinstance(connector, CanCommunicationConnector):
|
|
2553
2748
|
child_element = ET.SubElement(connectors_tag, "CAN-COMMUNICATION-CONNECTOR")
|
|
2554
2749
|
self.writeCanCommunicationConnector(child_element, connector)
|
|
2750
|
+
elif isinstance(connector, EthernetCommunicationConnector):
|
|
2751
|
+
child_element = ET.SubElement(connectors_tag, "ETHERNET-COMMUNICATION-CONNECTOR")
|
|
2752
|
+
self.writeEthernetCommunicationConnector(child_element, connector)
|
|
2555
2753
|
else:
|
|
2556
2754
|
self._raiseError("Unsupported Communication connector <%s>" % type(connector))
|
|
2557
2755
|
|
|
2558
2756
|
def writeEcuInstance(self, element: ET.Element, instance: EcuInstance):
|
|
2559
|
-
self.logger.debug("EcuInstance %s" % instance.
|
|
2757
|
+
self.logger.debug("EcuInstance %s" % instance.getShortName())
|
|
2560
2758
|
child_element = ET.SubElement(element, "ECU-INSTANCE")
|
|
2561
2759
|
self.setIdentifiable(child_element, instance)
|
|
2562
2760
|
self.setChildElementOptionalTimeValue(child_element, "COM-CONFIGURATION-GW-TIME-BASE", instance.getComConfigurationGwTimeBase())
|
|
@@ -2569,7 +2767,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2569
2767
|
self.setChildElementOptionalBooleanValue(child_element, "WAKE-UP-OVER-BUS-SUPPORTED", instance.getWakeUpOverBusSupported())
|
|
2570
2768
|
|
|
2571
2769
|
def writeSystemSignalGroup(self, element: ET.Element, group: SystemSignalGroup):
|
|
2572
|
-
self.logger.debug("Write SystemSignalGroup %s" % group.
|
|
2770
|
+
self.logger.debug("Write SystemSignalGroup %s" % group.getShortName())
|
|
2573
2771
|
child_element = ET.SubElement(element, "SYSTEM-SIGNAL-GROUP")
|
|
2574
2772
|
self.setIdentifiable(child_element, group)
|
|
2575
2773
|
signal_refs = group.getSystemSignalRefs()
|
|
@@ -2580,6 +2778,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2580
2778
|
|
|
2581
2779
|
def setSenderReceiverToSignalMapping(self, element: ET.Element, mapping: SenderReceiverToSignalMapping):
|
|
2582
2780
|
child_element = ET.SubElement(element, "SENDER-RECEIVER-TO-SIGNAL-MAPPING")
|
|
2781
|
+
self.setChildElementOptionalLiteral(child_element, "COMMUNICATION-DIRECTION", mapping.getCommunicationDirection())
|
|
2583
2782
|
self.setVariableDataPrototypeInSystemInstanceRef(child_element, "DATA-ELEMENT-IREF", mapping.getDataElementIRef())
|
|
2584
2783
|
self.setChildElementOptionalRefType(child_element, "SYSTEM-SIGNAL-REF", mapping.getSystemSignalRef())
|
|
2585
2784
|
|
|
@@ -2621,7 +2820,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2621
2820
|
self.notImplemented("Unsupported Sw Mapping %s" % type(sw_mapping))
|
|
2622
2821
|
|
|
2623
2822
|
def writeSystemMapping(self, element: ET.Element, mapping: SystemMapping):
|
|
2624
|
-
self.logger.debug("Write SystemMapping %s" % mapping.
|
|
2823
|
+
self.logger.debug("Write SystemMapping %s" % mapping.getShortName())
|
|
2625
2824
|
child_element = ET.SubElement(element, "SYSTEM-MAPPING")
|
|
2626
2825
|
self.setIdentifiable(child_element, mapping)
|
|
2627
2826
|
self.writeSystemMappingDataMappings(child_element, mapping)
|
|
@@ -2644,10 +2843,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2644
2843
|
child_element = ET.SubElement(element, "ROOT-SOFTWARE-COMPOSITIONS")
|
|
2645
2844
|
child_element = ET.SubElement(child_element, "ROOT-SW-COMPOSITION-PROTOTYPE")
|
|
2646
2845
|
self.setIdentifiable(child_element, prototype)
|
|
2846
|
+
self.setChildElementOptionalRefType(child_element, "FLAT-MAP-REF", prototype.getFlatMapRef())
|
|
2647
2847
|
self.setChildElementOptionalRefType(child_element, "SOFTWARE-COMPOSITION-TREF", prototype.getSoftwareCompositionTRef())
|
|
2648
2848
|
|
|
2649
2849
|
def writeSystem(self, element: ET.Element, system: System):
|
|
2650
|
-
self.logger.debug("Write System %s" % system.
|
|
2850
|
+
self.logger.debug("Write System %s" % system.getShortName())
|
|
2651
2851
|
child_element = ET.SubElement(element, "SYSTEM")
|
|
2652
2852
|
self.setARElement(child_element, system)
|
|
2653
2853
|
|
|
@@ -2664,13 +2864,69 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2664
2864
|
self.setChildElementOptionalRevisionLabelString(child_element, "SYSTEM-VERSION", system.getSystemVersion())
|
|
2665
2865
|
|
|
2666
2866
|
def writePhysicalDimension(self, element: ET.Element, dimension: PhysicalDimension):
|
|
2667
|
-
self.logger.debug("
|
|
2867
|
+
self.logger.debug("Set PhysicalDimension %s" % dimension.getShortName())
|
|
2668
2868
|
child_element = ET.SubElement(element, "PHYSICAL-DIMENSION")
|
|
2669
2869
|
self.setARElement(child_element, dimension)
|
|
2670
2870
|
self.setChildElementOptionalNumericalValue(child_element, "CURRENT-EXP", dimension.getCurrentExp())
|
|
2671
2871
|
self.setChildElementOptionalNumericalValue(child_element, "LENGTH-EXP", dimension.getLengthExp())
|
|
2672
2872
|
self.setChildElementOptionalNumericalValue(child_element, "TIME-EXP", dimension.getTimeExp())
|
|
2673
2873
|
|
|
2874
|
+
def setFlatInstanceDescriptor(self, element: ET.Element, desc: FlatInstanceDescriptor):
|
|
2875
|
+
self.logger.debug("Set FlatInstanceDescriptor %s" % desc.getShortName())
|
|
2876
|
+
child_element = ET.SubElement(element, "FLAT-INSTANCE-DESCRIPTOR")
|
|
2877
|
+
self.setIdentifiable(child_element, desc)
|
|
2878
|
+
self.setAnyInstanceRef(child_element, "UPSTREAM-REFERENCE-IREF", desc.getUpstreamReferenceIRef())
|
|
2879
|
+
self.setAnyInstanceRef(child_element, "ECU-EXTRACT-REFERENCE-IREF", desc.getEcuExtractReferenceIRef())
|
|
2880
|
+
|
|
2881
|
+
def writeFlatMapInstances(self, element: ET.Element, map: FlatMap):
|
|
2882
|
+
instances = map.getInstances()
|
|
2883
|
+
if len(instances) > 0:
|
|
2884
|
+
child_element = ET.SubElement(element, "INSTANCES")
|
|
2885
|
+
for instance in instances:
|
|
2886
|
+
if isinstance(instance, FlatInstanceDescriptor):
|
|
2887
|
+
self.setFlatInstanceDescriptor(child_element, instance)
|
|
2888
|
+
else:
|
|
2889
|
+
self.notImplemented("Unsupported Flat Map Instances <%s>" % type(instance))
|
|
2890
|
+
|
|
2891
|
+
def writeFlatMap(self, element: ET.Element, map: FlatMap):
|
|
2892
|
+
self.logger.debug("Set FlatMap %s" % map.getShortName())
|
|
2893
|
+
child_element = ET.SubElement(element, "FLAT-MAP")
|
|
2894
|
+
self.setARElement(child_element, map)
|
|
2895
|
+
self.writeFlatMapInstances(child_element, map)
|
|
2896
|
+
|
|
2897
|
+
def setDataPrototypeMapping(self, element: ET.Element, mapping: DataPrototypeMapping):
|
|
2898
|
+
child_element = ET.SubElement(element, "DATA-PROTOTYPE-MAPPING")
|
|
2899
|
+
self.setChildElementOptionalRefType(child_element, "FIRST-DATA-PROTOTYPE-REF", mapping.getFirstDataPrototypeRef())
|
|
2900
|
+
self.setChildElementOptionalRefType(child_element, "SECOND-DATA-PROTOTYPE-REF", mapping.getSecondDataPrototypeRef())
|
|
2901
|
+
|
|
2902
|
+
def setDataPrototypeMappings(self, element: ET.Element, key: str, mappings: List[DataPrototypeMapping]):
|
|
2903
|
+
if len(mappings) > 0:
|
|
2904
|
+
child_element = ET.SubElement(element, key)
|
|
2905
|
+
for mapping in mappings:
|
|
2906
|
+
self.setDataPrototypeMapping(child_element, mapping)
|
|
2907
|
+
|
|
2908
|
+
def setVariableAndParameterInterfaceMapping(self, element: ET.Element, mapping: VariableAndParameterInterfaceMapping):
|
|
2909
|
+
self.logger.debug("set VariableAndParameterInterfaceMapping %s" % mapping.getShortName())
|
|
2910
|
+
child_element = ET.SubElement(element, "VARIABLE-AND-PARAMETER-INTERFACE-MAPPING")
|
|
2911
|
+
self.setIdentifiable(child_element, mapping)
|
|
2912
|
+
self.setDataPrototypeMappings(child_element, "DATA-MAPPINGS", mapping.getDataMappings())
|
|
2913
|
+
|
|
2914
|
+
def writePortInterfaceMappings(self, element: ET.Element, mapping_set: PortInterfaceMappingSet):
|
|
2915
|
+
mappings = mapping_set.getPortInterfaceMappings()
|
|
2916
|
+
if len(mappings) > 0:
|
|
2917
|
+
child_element = ET.SubElement(element, "PORT-INTERFACE-MAPPINGS")
|
|
2918
|
+
for mapping in mappings:
|
|
2919
|
+
if isinstance(mapping, VariableAndParameterInterfaceMapping):
|
|
2920
|
+
self.setVariableAndParameterInterfaceMapping(child_element, mapping)
|
|
2921
|
+
else:
|
|
2922
|
+
self.notImplemented("Unsupported PortInterfaceMapping <%s>" % type(mapping))
|
|
2923
|
+
|
|
2924
|
+
def writePortInterfaceMappingSet(self, element: ET.Element, mapping_set: PortInterfaceMappingSet):
|
|
2925
|
+
self.logger.debug("Set PortInterfaceMappingSet %s" % mapping_set.getShortName())
|
|
2926
|
+
child_element = ET.SubElement(element, "PORT-INTERFACE-MAPPING-SET")
|
|
2927
|
+
self.setARElement(child_element, mapping_set)
|
|
2928
|
+
self.writePortInterfaceMappings(child_element, mapping_set)
|
|
2929
|
+
|
|
2674
2930
|
def setISignalMappings(self, element: ET.Element, mappings: List[ISignalMapping]):
|
|
2675
2931
|
if len(mappings) > 0:
|
|
2676
2932
|
mappings_tag = ET.SubElement(element, "SIGNAL-MAPPINGS")
|
|
@@ -2680,21 +2936,22 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2680
2936
|
self.setChildElementOptionalRefType(child_element, "TARGET-SIGNAL-REF", mapping.targetSignalRef)
|
|
2681
2937
|
|
|
2682
2938
|
def writeGateway(self, element: ET.Element, gateway: Gateway):
|
|
2683
|
-
self.logger.debug("Gateway %s" % gateway.
|
|
2939
|
+
self.logger.debug("Gateway %s" % gateway.getShortName())
|
|
2684
2940
|
child_element = ET.SubElement(element, "GATEWAY")
|
|
2685
2941
|
self.setIdentifiable(child_element, gateway)
|
|
2686
2942
|
self.setChildElementOptionalRefType(child_element, "ECU-REF", gateway.ecuRef)
|
|
2687
2943
|
self.setISignalMappings(child_element, gateway.getSignalMappings())
|
|
2688
2944
|
|
|
2689
2945
|
def writeISignal(self, element: ET.Element, signal: ISignal):
|
|
2690
|
-
self.logger.debug("ISignal %s" % signal.
|
|
2946
|
+
self.logger.debug("ISignal %s" % signal.getShortName())
|
|
2691
2947
|
child_element = ET.SubElement(element, "I-SIGNAL")
|
|
2692
2948
|
self.setIdentifiable(child_element, signal)
|
|
2693
|
-
self.setChildElementOptionalLiteral(child_element, "DATA-TYPE-POLICY", signal.
|
|
2694
|
-
self.
|
|
2695
|
-
self.
|
|
2696
|
-
self.
|
|
2697
|
-
self.
|
|
2949
|
+
self.setChildElementOptionalLiteral(child_element, "DATA-TYPE-POLICY", signal.getDataTypePolicy())
|
|
2950
|
+
self.setChildElementOptionalLiteral(child_element, "I-SIGNAL-TYPE", signal.getISignalType())
|
|
2951
|
+
self.setValueSpecification(child_element, "INIT-VALUE", signal.getInitValue())
|
|
2952
|
+
self.setChildElementOptionalNumericalValue(child_element, "LENGTH", signal.getLength())
|
|
2953
|
+
self.setSwDataDefProps(child_element, "NETWORK-REPRESENTATION-PROPS", signal.getNetworkRepresentationProps())
|
|
2954
|
+
self.setChildElementOptionalRefType(child_element, "SYSTEM-SIGNAL-REF", signal.getSystemSignalRef())
|
|
2698
2955
|
|
|
2699
2956
|
def writeEcucValueCollectionEcucValues(self, element: ET.Element, collection: EcucValueCollection):
|
|
2700
2957
|
value_refs = collection.getEcucValueRefs()
|
|
@@ -2705,7 +2962,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2705
2962
|
self.setChildElementOptionalRefType(child_element, "ECUC-MODULE-CONFIGURATION-VALUES-REF", value_ref)
|
|
2706
2963
|
|
|
2707
2964
|
def writeEcucValueCollection(self, element: ET.Element, collection: EcucValueCollection):
|
|
2708
|
-
self.logger.debug("EcucValueCollection %s" % collection.
|
|
2965
|
+
self.logger.debug("EcucValueCollection %s" % collection.getShortName())
|
|
2709
2966
|
child_element = ET.SubElement(element, "ECUC-VALUE-COLLECTION")
|
|
2710
2967
|
self.setIdentifiable(child_element, collection)
|
|
2711
2968
|
self.setChildElementOptionalRefType(child_element, "ECU-EXTRACT-REF", collection.getEcuExtractRef())
|
|
@@ -2761,7 +3018,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2761
3018
|
if instance_ref is not None:
|
|
2762
3019
|
child_element = ET.SubElement(element, key)
|
|
2763
3020
|
self.setChildElementOptionalRefType(child_element, "BASE-REF", instance_ref.getBaseRef())
|
|
2764
|
-
|
|
3021
|
+
for ref in instance_ref.getContextElementRefs():
|
|
3022
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-ELEMENT-REF", ref)
|
|
2765
3023
|
self.setChildElementOptionalRefType(child_element, "TARGET-REF", instance_ref.getTargetRef())
|
|
2766
3024
|
return instance_ref
|
|
2767
3025
|
|
|
@@ -2784,7 +3042,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2784
3042
|
self.notImplemented("Unsupported EcucParameterValue <%s>" % type(reference_value))
|
|
2785
3043
|
|
|
2786
3044
|
def writeEcucContainValue(self, element: ET.Element, container_value: EcucContainerValue):
|
|
2787
|
-
self.logger.debug("EcucContainerValue %s" % container_value.
|
|
3045
|
+
self.logger.debug("EcucContainerValue %s" % container_value.getShortName())
|
|
2788
3046
|
child_element = ET.SubElement(element, "ECUC-CONTAINER-VALUE")
|
|
2789
3047
|
self.setIdentifiable(child_element, container_value)
|
|
2790
3048
|
self.setChildElementOptionalRefType(child_element, "DEFINITION-REF", container_value.getDefinitionRef())
|
|
@@ -2803,7 +3061,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2803
3061
|
self.notImplemented("Unsupported Container %s" % type(container))
|
|
2804
3062
|
|
|
2805
3063
|
def writeEcucModuleConfigurationValues(self, element: ET.Element, values: EcucModuleConfigurationValues):
|
|
2806
|
-
self.logger.debug("EcucModuleConfigurationValues %s" % values.
|
|
3064
|
+
self.logger.debug("EcucModuleConfigurationValues %s" % values.getShortName())
|
|
2807
3065
|
child_element = ET.SubElement(element, "ECUC-MODULE-CONFIGURATION-VALUES")
|
|
2808
3066
|
self.setIdentifiable(child_element, values)
|
|
2809
3067
|
self.setChildElementOptionalRefType(child_element, "DEFINITION-REF", values.getDefinitionRef())
|
|
@@ -2812,7 +3070,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2812
3070
|
self.writeEcucModuleConfigurationValuesContainers(child_element, values)
|
|
2813
3071
|
|
|
2814
3072
|
def writeISignalGroup(self, element: ET.Element, group: ISignalGroup):
|
|
2815
|
-
self.logger.debug("ISignalGroup %s" % group.
|
|
3073
|
+
self.logger.debug("ISignalGroup %s" % group.getShortName())
|
|
2816
3074
|
child_element = ET.SubElement(element, "I-SIGNAL-GROUP")
|
|
2817
3075
|
self.setIdentifiable(child_element, group)
|
|
2818
3076
|
signal_refs = group.getISignalRefs()
|
|
@@ -2823,7 +3081,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2823
3081
|
self.setChildElementOptionalRefType(child_element, "SYSTEM-SIGNAL-GROUP-REF", group.getSystemSignalGroupRef())
|
|
2824
3082
|
|
|
2825
3083
|
def writeISignalIPduGroup(self, element: ET.Element, group: ISignalIPduGroup):
|
|
2826
|
-
self.logger.debug("ISignalIPduGroup %s" % group.
|
|
3084
|
+
self.logger.debug("Set ISignalIPduGroup %s" % group.getShortName())
|
|
2827
3085
|
child_element = ET.SubElement(element, "I-SIGNAL-I-PDU-GROUP")
|
|
2828
3086
|
self.setIdentifiable(child_element, group)
|
|
2829
3087
|
self.setChildElementOptionalLiteral(child_element, "COMMUNICATION-DIRECTION", group.getCommunicationDirection())
|
|
@@ -2841,20 +3099,19 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2841
3099
|
self.setChildElementOptionalRefType(ref_conditional_tag, "I-SIGNAL-I-PDU-REF", pdu_ref)
|
|
2842
3100
|
|
|
2843
3101
|
def writeSystemSignal(self, element: ET.Element, signal: SystemSignal):
|
|
2844
|
-
self.logger.debug("SystemSignal %s" % signal.
|
|
3102
|
+
self.logger.debug("SystemSignal %s" % signal.getShortName())
|
|
2845
3103
|
child_element = ET.SubElement(element, "SYSTEM-SIGNAL")
|
|
2846
3104
|
self.setIdentifiable(child_element, signal)
|
|
2847
3105
|
self.setChildElementOptionalBooleanValue(child_element, "DYNAMIC-LENGTH", signal.getDynamicLength())
|
|
2848
|
-
|
|
2849
|
-
|
|
3106
|
+
self.setSwDataDefProps(child_element, "PHYSICAL-PROPS", signal.getPhysicalProps())
|
|
2850
3107
|
|
|
2851
3108
|
def writeGenericEthernetFrame(self, element: ET.Element, signal: GenericEthernetFrame):
|
|
2852
|
-
self.logger.debug("Write GenericEthernetFrame %s" % signal.
|
|
3109
|
+
self.logger.debug("Write GenericEthernetFrame %s" % signal.getShortName())
|
|
2853
3110
|
child_element = ET.SubElement(element, "ETHERNET-FRAME")
|
|
2854
3111
|
self.writeFrame(child_element, signal)
|
|
2855
3112
|
|
|
2856
3113
|
def writeLifeCycleInfoSet(self, element: ET.Element, set: LifeCycleInfoSet):
|
|
2857
|
-
self.logger.debug("Write LifeCycleInfoSet %s" % set.
|
|
3114
|
+
self.logger.debug("Write LifeCycleInfoSet %s" % set.getShortName())
|
|
2858
3115
|
child_element = ET.SubElement(element, "LIFE-CYCLE-INFO-SET")
|
|
2859
3116
|
self.setIdentifiable(child_element, set)
|
|
2860
3117
|
|
|
@@ -2873,8 +3130,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2873
3130
|
self.setChildElementOptionalNumericalValue(child_element, "UPDATE-INDICATION-BIT-POSITION", mapping.getUpdateIndicationBitPosition())
|
|
2874
3131
|
|
|
2875
3132
|
def setDataFilter(self, element: ET.Element, key: str, filter: DataFilter):
|
|
2876
|
-
|
|
2877
|
-
|
|
3133
|
+
if filter is not None:
|
|
3134
|
+
child_element = ET.SubElement(element, key)
|
|
3135
|
+
self.setChildElementOptionalLiteral(child_element, "DATA-FILTER-TYPE", filter.getDataFilterType())
|
|
2878
3136
|
|
|
2879
3137
|
def setTransmissionModeConditions(self, element: ET.Element, conditions: List[TransmissionModeCondition]):
|
|
2880
3138
|
if len(conditions) > 0:
|
|
@@ -2895,11 +3153,22 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2895
3153
|
self.setChildElementOptionalIntegerValue(child_element, "NUMBER-OF-REPETITIONS", timing.getNumberOfRepetitions())
|
|
2896
3154
|
self.setTimeRangeType(child_element, "REPETITION-PERIOD", timing.getRepetitionPeriod())
|
|
2897
3155
|
|
|
3156
|
+
def setTimeRangeType(self, element: ET.Element, key: str, time_range: TimeRangeType):
|
|
3157
|
+
if time_range is not None:
|
|
3158
|
+
child_element = ET.SubElement(element, key)
|
|
3159
|
+
self.setChildElementOptionalTimeValue(child_element, "VALUE", time_range.getValue())
|
|
3160
|
+
|
|
3161
|
+
def setCyclicTiming(self, element: ET.Element, key: str, timing: CyclicTiming):
|
|
3162
|
+
if timing is not None:
|
|
3163
|
+
child_element = ET.SubElement(element, key)
|
|
3164
|
+
self.setTimeRangeType(child_element, "TIME-OFFSET", timing.getTimeOffset())
|
|
3165
|
+
self.setTimeRangeType(child_element, "TIME-PERIOD", timing.getTimePeriod())
|
|
3166
|
+
|
|
2898
3167
|
def setTransmissionModeTiming(self, element: ET.Element, key: str, timing: TransmissionModeTiming):
|
|
2899
3168
|
if timing is not None:
|
|
2900
3169
|
self.logger.debug("Set TransmissionModeTiming of <%s>" % key)
|
|
2901
3170
|
child_element = ET.SubElement(element, key)
|
|
2902
|
-
|
|
3171
|
+
self.setCyclicTiming(child_element, "CYCLIC-TIMING", timing.getCyclicTiming())
|
|
2903
3172
|
self.setEventControlledTiming(child_element, "EVENT-CONTROLLED-TIMING", timing.getEventControlledTiming())
|
|
2904
3173
|
|
|
2905
3174
|
def setTransmissionModeDeclaration(self, element: ET.Element, key: str, decl : TransmissionModeDeclaration):
|
|
@@ -2912,10 +3181,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2912
3181
|
if timing is not None:
|
|
2913
3182
|
spec_tag = ET.SubElement(element, "I-PDU-TIMING-SPECIFICATIONS")
|
|
2914
3183
|
child_element = ET.SubElement(spec_tag, "I-PDU-TIMING")
|
|
3184
|
+
self.setChildElementOptionalTimeValue(child_element, "MINIMUM-DELAY", timing.getMinimumDelay())
|
|
2915
3185
|
self.setTransmissionModeDeclaration(child_element, "TRANSMISSION-MODE-DECLARATION", timing.getTransmissionModeDeclaration())
|
|
2916
3186
|
|
|
2917
3187
|
def writeISignalIPdu(self, element: ET.Element, i_pdu: ISignalIPdu):
|
|
2918
|
-
self.logger.debug("ISignalIPdu %s" % i_pdu.
|
|
3188
|
+
self.logger.debug("ISignalIPdu %s" % i_pdu.getShortName())
|
|
2919
3189
|
child_element = ET.SubElement(element, "I-SIGNAL-I-PDU")
|
|
2920
3190
|
self.setIdentifiable(child_element, i_pdu)
|
|
2921
3191
|
self.setChildElementOptionalNumericalValue(child_element, "LENGTH", i_pdu.getLength())
|
|
@@ -2953,7 +3223,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2953
3223
|
elif isinstance(ar_element, BswModuleEntry):
|
|
2954
3224
|
self.writeBswModuleEntry(element, ar_element)
|
|
2955
3225
|
elif isinstance(ar_element, SwcBswMapping):
|
|
2956
|
-
self.
|
|
3226
|
+
self.writeSwcBswMapping(element, ar_element)
|
|
2957
3227
|
elif isinstance(ar_element, BswImplementation):
|
|
2958
3228
|
self.writeBswImplementation(element, ar_element)
|
|
2959
3229
|
elif isinstance(ar_element, ImplementationDataType):
|
|
@@ -3022,6 +3292,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3022
3292
|
self.writeLifeCycleInfoSet(element, ar_element)
|
|
3023
3293
|
elif isinstance(ar_element, PhysicalDimension):
|
|
3024
3294
|
self.writePhysicalDimension(element, ar_element)
|
|
3295
|
+
elif isinstance(ar_element, FlatMap):
|
|
3296
|
+
self.writeFlatMap(element, ar_element)
|
|
3297
|
+
elif isinstance(ar_element, PortInterfaceMappingSet):
|
|
3298
|
+
self.writePortInterfaceMappingSet(element, ar_element)
|
|
3299
|
+
elif isinstance(ar_element, EthernetCluster):
|
|
3300
|
+
self.writeEthernetCluster(element, ar_element)
|
|
3301
|
+
elif isinstance(ar_element, ISignalIPduGroup):
|
|
3302
|
+
self.writeISignalIPduGroup(element, ar_element)
|
|
3025
3303
|
else:
|
|
3026
3304
|
self.notImplemented("Unsupported Elements of ARPackage <%s>" % type(ar_element))
|
|
3027
3305
|
|