armodel 1.7.5__py3-none-any.whl → 1.7.6__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/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +2 -2
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +4 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +7 -1
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +13 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +165 -4
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +400 -17
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +356 -8
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +2 -4
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +76 -10
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +45 -23
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +1 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +55 -2
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +2 -1
- armodel/parser/abstract_arxml_parser.py +5 -5
- armodel/parser/arxml_parser.py +632 -466
- armodel/writer/arxml_writer.py +347 -52
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/METADATA +22 -1
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/RECORD +22 -22
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/LICENSE +0 -0
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/WHEEL +0 -0
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/top_level.txt +0 -0
armodel/parser/arxml_parser.py
CHANGED
|
@@ -3,15 +3,17 @@ import xml.etree.ElementTree as ET
|
|
|
3
3
|
import os
|
|
4
4
|
|
|
5
5
|
from ..models.M2.MSR.AsamHdo.AdminData import AdminData
|
|
6
|
-
from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition
|
|
6
|
+
from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition, SwBaseType
|
|
7
7
|
from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstrRule, InternalConstrs, PhysConstrs, DataConstr
|
|
8
8
|
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuConstContent, CompuConstFormulaContent, CompuConstNumericContent, CompuMethod, Compu, CompuConst, CompuConstTextContent, CompuNominatorDenominator, CompuRationalCoeffs, CompuScale, CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
|
|
9
9
|
from ..models.M2.MSR.AsamHdo.SpecialData import Sdg, Sd
|
|
10
|
+
from ..models.M2.MSR.AsamHdo.Units import PhysicalDimension, Unit
|
|
10
11
|
from ..models.M2.MSR.CalibrationData.CalibrationValue import SwValueCont, SwValues
|
|
12
|
+
from ..models.M2.MSR.DataDictionary.AuxillaryObjects import SwAddrMethod
|
|
11
13
|
from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, SwPointerTargetProps
|
|
12
14
|
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxis
|
|
13
15
|
from ..models.M2.MSR.DataDictionary.Axis import SwAxisGrouped, SwAxisIndividual
|
|
14
|
-
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroupContent, SwRecordLayoutV
|
|
16
|
+
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayout, SwRecordLayoutGroupContent, SwRecordLayoutV
|
|
15
17
|
from ..models.M2.MSR.DataDictionary.DataDefProperties import ValueList
|
|
16
18
|
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroup
|
|
17
19
|
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxisSet
|
|
@@ -27,7 +29,7 @@ from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswCalled
|
|
|
27
29
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
|
|
28
30
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
|
|
29
31
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
30
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference, NumericalValueSpecification, RecordValueSpecification, TextValueSpecification, ValueSpecification
|
|
32
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference, ConstantSpecification, NumericalValueSpecification, RecordValueSpecification, TextValueSpecification, ValueSpecification
|
|
31
33
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Filter import DataFilter
|
|
32
34
|
from ..models.M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatInstanceDescriptor, FlatMap
|
|
33
35
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import ImplementationProps, Code
|
|
@@ -41,23 +43,25 @@ from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServ
|
|
|
41
43
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import Implementation
|
|
42
44
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
|
|
43
45
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import ExecutionOrderConstraint
|
|
44
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import TimingExtension
|
|
46
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming, TimingExtension
|
|
47
|
+
from ..models.M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import DiagnosticServiceTable
|
|
45
48
|
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
|
|
46
49
|
from ..models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
|
|
47
50
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable, MultilanguageReferrable
|
|
48
51
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
|
|
49
52
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage, ReferenceBase
|
|
50
53
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Ip6AddressString, RefType, ARLiteral
|
|
54
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
|
|
51
55
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption, PortDefinedArgumentValue
|
|
52
56
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import DataReceivedEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent
|
|
53
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationRecordDataType, ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, AutosarDataType, DataTypeMap, DataTypeMappingSet
|
|
57
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationPrimitiveDataType, ApplicationRecordDataType, ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, AutosarDataType, DataTypeMap, DataTypeMappingSet
|
|
54
58
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet, EndToEndDescription, EndToEndProtection, EndToEndProtectionVariablePrototype
|
|
55
59
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef, ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef
|
|
56
60
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
|
|
57
61
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef, VariableInAtomicSWCTypeInstanceRef
|
|
58
62
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import CompositeNetworkRepresentation, TransmissionAcknowledgementRequest
|
|
59
63
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
60
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AbstractProvidedPortPrototype, AbstractRequiredPortPrototype, CompositionSwComponentType, PortGroup, SwComponentType, SymbolProps, PPortPrototype, RPortPrototype
|
|
64
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AbstractProvidedPortPrototype, AbstractRequiredPortPrototype, ApplicationSwComponentType, ComplexDeviceDriverSwComponentType, CompositionSwComponentType, EcuAbstractionSwComponentType, PortGroup, SensorActuatorSwComponentType, ServiceSwComponentType, SwComponentType, SymbolProps, PPortPrototype, RPortPrototype
|
|
61
65
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import InnerPortGroupInCompositionInstanceRef, PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef, RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
|
|
62
66
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import RunnableEntity, RunnableEntityArgument, SwcInternalBehavior
|
|
63
67
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AutosarVariableRef import AutosarVariableRef
|
|
@@ -66,8 +70,9 @@ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import Assembl
|
|
|
66
70
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet, ModeAccessPoint
|
|
67
71
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
|
|
68
72
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
|
|
69
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ArgumentDataPrototype, ClientServerInterface, ClientServerOperation, DataPrototypeMapping, InvalidationPolicy, ModeSwitchInterface, ParameterInterface, PortInterface, PortInterfaceMappingSet, SenderReceiverInterface, VariableAndParameterInterfaceMapping
|
|
73
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ArgumentDataPrototype, ClientServerInterface, ClientServerOperation, DataPrototypeMapping, InvalidationPolicy, ModeSwitchInterface, ParameterInterface, PortInterface, PortInterfaceMappingSet, SenderReceiverInterface, TriggerInterface, VariableAndParameterInterfaceMapping
|
|
70
74
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AtomicSwComponentType
|
|
75
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
|
|
71
76
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationCompositeElementDataPrototype, AutosarDataPrototype, DataPrototype, ParameterDataPrototype, VariableDataPrototype
|
|
72
77
|
|
|
73
78
|
from ..models.M2.AUTOSARTemplates.SystemTemplate import SwcToEcuMapping , System, SystemMapping
|
|
@@ -75,19 +80,21 @@ from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderReceiv
|
|
|
75
80
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.DiagnosticConnection import DiagnosticConnection
|
|
76
81
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode, UdpNmCluster, UdpNmClusterCoupling, UdpNmNode
|
|
77
82
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef, VariableDataPrototypeInSystemInstanceRef
|
|
78
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import ApplicationEntry, LinFrameTriggering, LinScheduleTable, ScheduleTableEntry
|
|
79
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinTopology import LinCommunicationConnector, LinMaster
|
|
80
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanClusterBusOffRecovery, CanPhysicalChannel, CommConnectorPort, CommunicationCluster, CommunicationConnector, EthernetPhysicalChannel, FramePort, IPduPort, ISignalPort, LinPhysicalChannel, PhysicalChannel
|
|
81
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import Frame, FrameTriggering, IPdu, IPduTiming, ISignalIPdu, ISignalTriggering, PduTriggering
|
|
83
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import ApplicationEntry, LinFrameTriggering, LinScheduleTable, LinUnconditionalFrame, ScheduleTableEntry
|
|
84
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinTopology import LinCommunicationConnector, LinCommunicationController, LinMaster
|
|
85
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanCluster, CanClusterBusOffRecovery, CanPhysicalChannel, CommConnectorPort, CommunicationCluster, CommunicationConnector, CommunicationController, EthernetPhysicalChannel, FramePort, IPduPort, ISignalPort, LinCluster, LinPhysicalChannel, PhysicalChannel
|
|
86
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DcmIPdu, Frame, FrameTriggering, GeneralPurposeIPdu, GeneralPurposePdu, IPdu, IPduTiming, ISignal, ISignalGroup, ISignalIPdu, ISignalIPduGroup, ISignalTriggering, MultiplexedIPdu, NPdu, NmPdu, PduTriggering, SecureCommunicationPropsSet, SecuredIPdu, SystemSignal, SystemSignalGroup, UserDefinedIPdu, UserDefinedPdu
|
|
82
87
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import CyclicTiming, EventControlledTiming, TimeRangeType, TransmissionModeCondition, TransmissionModeDeclaration, TransmissionModeTiming
|
|
83
88
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
84
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering, RxIdentifierRange
|
|
85
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
|
|
86
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.
|
|
87
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.
|
|
89
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame, CanFrameTriggering, RxIdentifierRange
|
|
90
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import AbstractCanCommunicationController, AbstractCanCommunicationControllerAttributes, CanCommunicationConnector, CanCommunicationController, CanControllerConfigurationRequirements, CanControllerFdConfiguration, CanControllerFdConfigurationRequirements
|
|
91
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SoAdRoutingGroup, SocketConnection, SocketConnectionBundle, SocketConnectionIpduIdentifier
|
|
92
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
|
|
88
93
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import DoIpEntity, InfrastructureServices, Ipv6Configuration, NetworkEndpoint
|
|
89
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import ApplicationEndpoint, ConsumedEventGroup, ConsumedServiceInstance, GenericTp, SoAdConfig, SocketAddress, TcpTp, TpPort, TransportProtocolConfiguration, UdpTp
|
|
90
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.
|
|
94
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import ApplicationEndpoint, ConsumedEventGroup, ConsumedServiceInstance, EventHandler, GenericTp, ProvidedServiceInstance, SdServerConfig, SoAdConfig, SocketAddress, TcpTp, TpPort, TransportProtocolConfiguration, UdpTp
|
|
95
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import CouplingPort, CouplingPortDetails, CouplingPortFifo, CouplingPortScheduler, CouplingPortStructuralElement, EthernetCluster, EthernetCommunicationConnector, EthernetCommunicationController, EthernetPriorityRegeneration, InitialSdDelayConfig, MacMulticastGroup, RequestResponseDelay, SdClientConfig, VlanMembership
|
|
96
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway, IPduMapping, ISignalMapping, TargetIPduRef
|
|
97
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig, DoIpTpConfig, LinTpConfig
|
|
91
98
|
|
|
92
99
|
from .abstract_arxml_parser import AbstractARXMLParser
|
|
93
100
|
|
|
@@ -346,7 +353,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
346
353
|
if tag_name == "BSW-MODE-SENDER-POLICY":
|
|
347
354
|
parent.addModeSenderPolicy(self.getBswModeSenderPolicy(child_element))
|
|
348
355
|
else:
|
|
349
|
-
self.
|
|
356
|
+
self.raiseError("Unsupported ModeSenderPolicy type <%s>." % tag_name)
|
|
350
357
|
|
|
351
358
|
def readDataTypeMappingRefs(self, element: ET.Element, behavior: InternalBehavior):
|
|
352
359
|
child_element = self.find(element, "DATA-TYPE-MAPPING-REFS")
|
|
@@ -391,27 +398,27 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
391
398
|
def readServiceDependency(self, element: ET.Element, dependency: ServiceDependency):
|
|
392
399
|
self.readIdentifiable(element, dependency)
|
|
393
400
|
for child_element in self.findall(element, "ASSIGNED-DATA-TYPES/*"):
|
|
394
|
-
tag_name = self.getTagName(child_element
|
|
401
|
+
tag_name = self.getTagName(child_element)
|
|
395
402
|
if (tag_name == "ROLE-BASED-DATA-TYPE-ASSIGNMENT"):
|
|
396
403
|
dependency.addAssignedDataType(self.getRoleBasedDataTypeAssignment(child_element))
|
|
397
404
|
else:
|
|
398
|
-
self.
|
|
405
|
+
self.notImplemented("Unsupported assigned data type <%s>" % tag_name)
|
|
399
406
|
|
|
400
407
|
def readSwcServiceDependencyAssignedData(self, element: ET.Element, dependency: SwcServiceDependency):
|
|
401
408
|
for child_element in self.findall(element, "ASSIGNED-DATAS/*"):
|
|
402
|
-
tag_name = self.getTagName(child_element
|
|
409
|
+
tag_name = self.getTagName(child_element)
|
|
403
410
|
if (tag_name == "ROLE-BASED-DATA-ASSIGNMENT"):
|
|
404
411
|
dependency.AddAssignedData(self.getRoleBasedDataAssignment(child_element))
|
|
405
412
|
else:
|
|
406
|
-
self.
|
|
413
|
+
self.raiseError("Unsupported assigned data <%s>" % tag_name)
|
|
407
414
|
|
|
408
415
|
def readSwcServiceDependencyAssignedPorts(self, element: ET.Element, dependency: SwcServiceDependency):
|
|
409
416
|
for child_element in self.findall(element, "ASSIGNED-PORTS/*"):
|
|
410
|
-
tag_name = self.getTagName(child_element
|
|
417
|
+
tag_name = self.getTagName(child_element)
|
|
411
418
|
if (tag_name == "ROLE-BASED-PORT-ASSIGNMENT"):
|
|
412
419
|
dependency.AddAssignedPort(self.getRoleBasedPortAssignment(child_element))
|
|
413
420
|
else:
|
|
414
|
-
self.
|
|
421
|
+
self.raiseError("Unsupported assigned ports <%s>" % tag_name)
|
|
415
422
|
|
|
416
423
|
def readNvBlockNeeds(self, element: ET.Element, parent: SwcServiceDependency):
|
|
417
424
|
short_name = self.getShortName(element)
|
|
@@ -507,7 +514,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
507
514
|
|
|
508
515
|
def readSwcServiceDependencyServiceNeeds(self, element: ET.Element, parent: SwcServiceDependency):
|
|
509
516
|
for child_element in self.findall(element, "SERVICE-NEEDS/*"):
|
|
510
|
-
tag_name = self.getTagName(child_element
|
|
517
|
+
tag_name = self.getTagName(child_element)
|
|
511
518
|
if tag_name == "NV-BLOCK-NEEDS":
|
|
512
519
|
self.readNvBlockNeeds(child_element, parent)
|
|
513
520
|
elif tag_name == "DIAGNOSTIC-COMMUNICATION-MANAGER-NEEDS":
|
|
@@ -538,7 +545,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
538
545
|
|
|
539
546
|
def readSwcInternalBehaviorServiceDependencies(self, element: ET.Element, parent: SwcInternalBehavior):
|
|
540
547
|
for child_element in self.findall(element, "SERVICE-DEPENDENCYS/*"):
|
|
541
|
-
tag_name = self.getTagName(child_element
|
|
548
|
+
tag_name = self.getTagName(child_element)
|
|
542
549
|
if (tag_name == "SWC-SERVICE-DEPENDENCY"):
|
|
543
550
|
self.readSwcServiceDependency(child_element, parent)
|
|
544
551
|
else:
|
|
@@ -664,17 +671,15 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
664
671
|
for group_set in self.getIncludedModeDeclarationGroupSets(child_element):
|
|
665
672
|
behavior.addIncludedModeDeclarationGroupSet(group_set)
|
|
666
673
|
|
|
667
|
-
def readBswModuleDescription(self, element: ET.Element,
|
|
668
|
-
|
|
669
|
-
bsw_module_description = parent.createBswModuleDescription(short_name)
|
|
670
|
-
bsw_module_description.moduleId = self.getChildElementOptionalNumericalValue(element, "MODULE-ID")
|
|
671
|
-
|
|
672
|
-
self.logger.debug("read BswModuleDescription %s" % bsw_module_description.full_name)
|
|
674
|
+
def readBswModuleDescription(self, element: ET.Element, desc: BswModuleDescription):
|
|
675
|
+
self.logger.debug("Read BswModuleDescription <%s>" % desc.getShortName())
|
|
673
676
|
|
|
674
|
-
self.
|
|
675
|
-
self.
|
|
676
|
-
self.
|
|
677
|
-
self.
|
|
677
|
+
self.readIdentifiable(element, desc)
|
|
678
|
+
desc.setModuleId(self.getChildElementOptionalNumericalValue(element, "MODULE-ID"))
|
|
679
|
+
self.readBswModuleDescriptionImplementedEntry(element, desc)
|
|
680
|
+
self.readProvidedModeGroup(element, desc)
|
|
681
|
+
self.readRequiredModeGroup(element, desc)
|
|
682
|
+
self.readBswInternalBehavior(element, desc)
|
|
678
683
|
|
|
679
684
|
def readSwServiceArg(self, element: ET.Element, arg: SwServiceArg):
|
|
680
685
|
self.logger.debug("Read SwServiceArg <%s>" % arg.getShortName())
|
|
@@ -690,9 +695,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
690
695
|
else:
|
|
691
696
|
self.notImplemented("Unsupported Argument <%s>" % tag_name)
|
|
692
697
|
|
|
693
|
-
def readBswModuleEntry(self, element: ET.Element,
|
|
694
|
-
|
|
695
|
-
entry = parent.createBswModuleEntry(short_name)
|
|
698
|
+
def readBswModuleEntry(self, element: ET.Element, entry: BswModuleEntry):
|
|
699
|
+
self.logger.debug("Read BswModuleEntry <%s>" % entry.getShortName())
|
|
696
700
|
self.readIdentifiable(element, entry)
|
|
697
701
|
self.readBswModuleEntryArguments(element, entry)
|
|
698
702
|
entry.setIsReentrant(self.getChildElementOptionalBooleanValue(element, "IS-REENTRANT")) \
|
|
@@ -717,11 +721,11 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
717
721
|
|
|
718
722
|
def readArtifactDescriptor(self, element: ET.Element, code_desc: Code):
|
|
719
723
|
for child_element in self.findall(element, "ARTIFACT-DESCRIPTORS/*"):
|
|
720
|
-
tag_name = self.getTagName(child_element
|
|
724
|
+
tag_name = self.getTagName(child_element)
|
|
721
725
|
if tag_name == "AUTOSAR-ENGINEERING-OBJECT":
|
|
722
726
|
code_desc.addArtifactDescriptor(self.getAutosarEngineeringObject(child_element))
|
|
723
727
|
else:
|
|
724
|
-
self.
|
|
728
|
+
self.raiseError("Unsupported Artifact Descriptor <%s>" % tag_name)
|
|
725
729
|
|
|
726
730
|
def readCodeDescriptor(self, element: ET.Element, impl: Implementation):
|
|
727
731
|
for child_element in self.findall(element, "CODE-DESCRIPTORS/CODE"):
|
|
@@ -790,21 +794,17 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
790
794
|
for ref in self.getChildElementRefTypeList(child_element, "VENDOR-SPECIFIC-MODULE-DEF-REF"):
|
|
791
795
|
impl.addVendorSpecificModuleDefRef(ref)
|
|
792
796
|
|
|
793
|
-
def readBswImplementation(self, element: ET.Element,
|
|
794
|
-
|
|
795
|
-
impl = parent.createBswImplementation(short_name)
|
|
796
|
-
self.logger.debug("readBswImplementation %s" % impl.getShortName())
|
|
797
|
+
def readBswImplementation(self, element: ET.Element, impl: BswImplementation):
|
|
798
|
+
self.logger.debug("Read BswImplementation <%s>" % impl.getShortName())
|
|
797
799
|
self.readImplementation(element, impl)
|
|
798
800
|
impl.setArReleaseVersion(self.getChildElementOptionalLiteral(element, "AR-RELEASE-VERSION")) \
|
|
799
801
|
.setBehaviorRef(self.getChildElementOptionalRefType(element, "BEHAVIOR-REF"))
|
|
800
802
|
self.readBswImplementationVendorSpecificModuleDefRefs(element, impl)
|
|
801
803
|
|
|
802
|
-
def readSwcImplementation(self, element: ET.Element,
|
|
803
|
-
|
|
804
|
-
impl = parent.createSwcImplementation(short_name)
|
|
805
|
-
self.logger.debug("readSwcImplementation %s" % impl.getShortName())
|
|
804
|
+
def readSwcImplementation(self, element: ET.Element, impl: SwcImplementation):
|
|
805
|
+
self.logger.debug("Read SwcImplementation <%s>" % impl.getShortName())
|
|
806
806
|
self.readImplementation(element, impl)
|
|
807
|
-
impl.
|
|
807
|
+
impl.setBehaviorRef(self.getChildElementOptionalRefType(element, "BEHAVIOR-REF"))
|
|
808
808
|
|
|
809
809
|
def readDataReceivePointByArguments(self, element, parent: RunnableEntity):
|
|
810
810
|
self._readVariableAccesses(element, parent, "DATA-RECEIVE-POINT-BY-ARGUMENTS")
|
|
@@ -890,13 +890,13 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
890
890
|
|
|
891
891
|
def readInternalBehaviorServerCallPoint(self, element: ET.Element, parent: RunnableEntity):
|
|
892
892
|
for child_element in self.findall(element, "SERVER-CALL-POINTS/*"):
|
|
893
|
-
tag_name = self.getTagName(child_element
|
|
893
|
+
tag_name = self.getTagName(child_element)
|
|
894
894
|
if tag_name == "SYNCHRONOUS-SERVER-CALL-POINT":
|
|
895
895
|
self.readSynchronousServerCallPoint(child_element, parent)
|
|
896
896
|
elif tag_name == "ASYNCHRONOUS-SERVER-CALL-POINT":
|
|
897
897
|
self.readAsynchronousServerCallPoint(child_element, parent)
|
|
898
898
|
else:
|
|
899
|
-
self.
|
|
899
|
+
self.raiseError("Unsupported server call point type <%s>" % tag_name)
|
|
900
900
|
|
|
901
901
|
def readInternalTriggeringPoints(self, element: ET.Element, parent: RunnableEntity):
|
|
902
902
|
for child_element in self.findall(element, "INTERNAL-TRIGGERING-POINTS/INTERNAL-TRIGGERING-POINT"):
|
|
@@ -1107,7 +1107,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1107
1107
|
|
|
1108
1108
|
def readSwcInternalBehaviorEvents(self, element: ET.Element, parent: SwcInternalBehavior):
|
|
1109
1109
|
for child_element in self.findall(element, "EVENTS/*"):
|
|
1110
|
-
tag_name = self.getTagName(child_element
|
|
1110
|
+
tag_name = self.getTagName(child_element)
|
|
1111
1111
|
if tag_name == "TIMING-EVENT":
|
|
1112
1112
|
self.readTimingEvent(child_element, parent)
|
|
1113
1113
|
elif tag_name == "SWC-MODE-SWITCH-EVENT":
|
|
@@ -1265,7 +1265,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1265
1265
|
def getSwCalprmAxisSet(self, element: ET.Element, key: str) -> SwCalprmAxisSet:
|
|
1266
1266
|
set = SwCalprmAxisSet()
|
|
1267
1267
|
for child_element in self.findall(element, "%s/*" % key):
|
|
1268
|
-
tag_name = self.getTagName(child_element
|
|
1268
|
+
tag_name = self.getTagName(child_element)
|
|
1269
1269
|
if tag_name == "SW-CALPRM-AXIS":
|
|
1270
1270
|
set.addSwCalprmAxis(self.getSwCalprmAxis(child_element))
|
|
1271
1271
|
return set
|
|
@@ -1310,10 +1310,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1310
1310
|
self.readIdentifiable(element, data_type)
|
|
1311
1311
|
data_type.setSwDataDefProps(self.getSwDataDefProps(element, "SW-DATA-DEF-PROPS"))
|
|
1312
1312
|
|
|
1313
|
-
def readApplicationPrimitiveDataType(self, element: ET.Element,
|
|
1314
|
-
|
|
1315
|
-
data_type = parent.createApplicationPrimitiveDataType(short_name)
|
|
1316
|
-
self.logger.debug("readApplicationPrimitiveDataTypes %s" % short_name)
|
|
1313
|
+
def readApplicationPrimitiveDataType(self, element: ET.Element, data_type: ApplicationPrimitiveDataType):
|
|
1314
|
+
self.logger.debug("Read ApplicationPrimitiveDataType <%s>" % data_type.getShortName())
|
|
1317
1315
|
self.readAutosarDataType(element, data_type)
|
|
1318
1316
|
|
|
1319
1317
|
def readApplicationCompositeElementDataPrototype(self, element: ET.Element, prototype: ApplicationCompositeElementDataPrototype):
|
|
@@ -1327,10 +1325,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1327
1325
|
self.readIdentifiable(child_element, record_element)
|
|
1328
1326
|
self.readApplicationCompositeElementDataPrototype(child_element, record_element)
|
|
1329
1327
|
|
|
1330
|
-
def
|
|
1331
|
-
|
|
1332
|
-
data_type = parent.createApplicationRecordDataType(short_name)
|
|
1333
|
-
self.logger.debug("readApplicationRecordDataTypes %s" % short_name)
|
|
1328
|
+
def readApplicationRecordDataType(self, element: ET.Element, data_type: ApplicationRecordDataType):
|
|
1329
|
+
self.logger.debug("Read ApplicationRecordDataType <%s>" % data_type.getShortName())
|
|
1334
1330
|
self.readIdentifiable(element, data_type)
|
|
1335
1331
|
data_type.setSwDataDefProps(self.getSwDataDefProps(element, "SW-DATA-DEF-PROPS"))
|
|
1336
1332
|
self.readApplicationRecordElements(element, data_type)
|
|
@@ -1345,41 +1341,13 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1345
1341
|
self.readImplementationDataTypeElements(child_element, type_element)
|
|
1346
1342
|
type_element.setSwDataDefProps(self.getSwDataDefProps(child_element, "SW-DATA-DEF-PROPS"))
|
|
1347
1343
|
|
|
1348
|
-
def readImplementationDataType(self, element: ET.Element,
|
|
1349
|
-
|
|
1350
|
-
data_type = parent.createImplementationDataType(short_name)
|
|
1344
|
+
def readImplementationDataType(self, element: ET.Element, data_type: ImplementationDataType):
|
|
1345
|
+
self.logger.debug("Read ImplementationDataType <%s>" % data_type.getShortName())
|
|
1351
1346
|
self.readAutosarDataType(element, data_type)
|
|
1352
1347
|
data_type.setDynamicArraySizeProfile(self.getChildElementOptionalLiteral(element, "DYNAMIC-ARRAY-SIZE-PROFILE"))
|
|
1353
1348
|
self.readImplementationDataTypeElements(element, data_type)
|
|
1349
|
+
self.readImplementationDataTypeSymbolProps(element, data_type)
|
|
1354
1350
|
data_type.setTypeEmitter(self.getChildElementOptionalLiteral(element, "TYPE-EMITTER"))
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
'''
|
|
1358
|
-
if (data_type.getCategory().getValue() == ImplementationDataType.CATEGORY_ARRAY):
|
|
1359
|
-
if (len(data_type.getImplementationDataTypeElements()) < 1):
|
|
1360
|
-
self._raiseError("Array Sub-Element of <%s> do not defined." % data_type.getShortName())
|
|
1361
|
-
|
|
1362
|
-
array_sub_element = data_type.getImplementationDataTypeElements()[0]
|
|
1363
|
-
if (array_sub_element.getCategory().getValue() == ImplementationDataType.CATEGORY_TYPE_REFERENCE):
|
|
1364
|
-
data_type.setArrayElementType(array_sub_element.swDataDefProps.implementationDataTypeRef.value)
|
|
1365
|
-
elif (array_sub_element.getCategory().getValue() == ImplementationDataType.CATEGORY_TYPE_VALUE): # TODO: fix
|
|
1366
|
-
return
|
|
1367
|
-
else:
|
|
1368
|
-
self._raiseError("The category <%s> of array sub-element <%s> does not support." % (
|
|
1369
|
-
array_sub_element.getCategory().getValue(), data_type.getShortName()))
|
|
1370
|
-
elif (data_type.getCategory().getValue() == ImplementationDataType.CATEGORY_TYPE_STRUCTURE):
|
|
1371
|
-
if len(data_type.getImplementationDataTypeElements()) < 1:
|
|
1372
|
-
self._raiseError("Structure Sub-Element of <%s> do not defined." % data_type.getShortName())
|
|
1373
|
-
self.readImplementationDataTypeSymbolProps(element, data_type)
|
|
1374
|
-
struct_sub_element = data_type.getImplementationDataTypeElements()[0]
|
|
1375
|
-
if struct_sub_element.getCategory().getValue() == ImplementationDataType.CATEGORY_TYPE_REFERENCE:
|
|
1376
|
-
data_type.setStructElementType(struct_sub_element.getSwDataDefProps().getImplementationDataTypeRef().getValue())
|
|
1377
|
-
#elif struct_sub_element.getCategory().getValue() == ImplementationDataType.CATEGORY_TYPE_VALUE:
|
|
1378
|
-
# return
|
|
1379
|
-
else:
|
|
1380
|
-
self._raiseError("The category <%s> of structure sub-element <%s> does not support." % (
|
|
1381
|
-
struct_sub_element.getCategory().getValue(), data_type.getShortName()))
|
|
1382
|
-
'''
|
|
1383
1351
|
|
|
1384
1352
|
def readBaseTypeDirectDefinition(self, element: ET.Element, definition: BaseTypeDirectDefinition):
|
|
1385
1353
|
definition.setBaseTypeSize(self.getChildElementOptionalNumericalValue(element, "BASE-TYPE-SIZE")) \
|
|
@@ -1388,9 +1356,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1388
1356
|
.setMemAlignment(self.getChildElementOptionalNumericalValue(element, "MEM-ALIGNMENT")) \
|
|
1389
1357
|
.setNativeDeclaration(self.getChildElementOptionalLiteral(element, "NATIVE-DECLARATION"))
|
|
1390
1358
|
|
|
1391
|
-
def readSwBaseType(self, element: ET.Element,
|
|
1392
|
-
|
|
1393
|
-
data_type = parent.createSwBaseType(short_name)
|
|
1359
|
+
def readSwBaseType(self, element: ET.Element, data_type: SwBaseType):
|
|
1360
|
+
self.logger.debug("Read SwBaseType <%s>" % data_type.getShortName())
|
|
1394
1361
|
self.readIdentifiable(element, data_type)
|
|
1395
1362
|
self.readBaseTypeDirectDefinition(element, data_type.getBaseTypeDefinition())
|
|
1396
1363
|
|
|
@@ -1510,7 +1477,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1510
1477
|
|
|
1511
1478
|
def readRequiredComSpec(self, element: ET.Element, parent: RPortPrototype):
|
|
1512
1479
|
for child_element in self.findall(element, "REQUIRED-COM-SPECS/*"):
|
|
1513
|
-
tag_name = self.getTagName(child_element
|
|
1480
|
+
tag_name = self.getTagName(child_element)
|
|
1514
1481
|
if tag_name == "NONQUEUED-RECEIVER-COM-SPEC":
|
|
1515
1482
|
parent.addRequiredComSpec(self.getNonqueuedReceiverComSpec(child_element))
|
|
1516
1483
|
elif tag_name == "CLIENT-COM-SPEC":
|
|
@@ -1522,7 +1489,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1522
1489
|
elif tag_name == "PARAMETER-REQUIRE-COM-SPEC":
|
|
1523
1490
|
parent.addRequiredComSpec(self.getParameterRequireComSpec(child_element))
|
|
1524
1491
|
else:
|
|
1525
|
-
self.
|
|
1492
|
+
self.raiseError("Unsupported RequiredComSpec <%s>" % tag_name)
|
|
1526
1493
|
|
|
1527
1494
|
def readAbstractRequiredPortPrototype(self, element: ET.Element, prototype: AbstractRequiredPortPrototype):
|
|
1528
1495
|
self.readProvidedComSpec(element, prototype)
|
|
@@ -1565,7 +1532,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1565
1532
|
elif tag_name == "PR-PORT-PROTOTYPE":
|
|
1566
1533
|
self.readPRPortPrototype(child_element, sw_component)
|
|
1567
1534
|
else:
|
|
1568
|
-
self.
|
|
1535
|
+
self.raiseError("Unsupported Port Prototype <%s>" % tag_name)
|
|
1569
1536
|
|
|
1570
1537
|
def readTransmissionAcknowledgementRequest(self, element: ET.Element) -> TransmissionAcknowledgementRequest:
|
|
1571
1538
|
child_element = self.find(element, "TRANSMISSION-ACKNOWLEDGE")
|
|
@@ -1612,7 +1579,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1612
1579
|
|
|
1613
1580
|
def readProvidedComSpec(self, element: ET.Element, parent: PPortPrototype):
|
|
1614
1581
|
for child_element in self.findall(element, "PROVIDED-COM-SPECS/*"):
|
|
1615
|
-
tag_name = self.getTagName(child_element
|
|
1582
|
+
tag_name = self.getTagName(child_element)
|
|
1616
1583
|
if tag_name == "NONQUEUED-SENDER-COM-SPEC":
|
|
1617
1584
|
parent.addProvidedComSpec(self.getNonqueuedSenderComSpec(child_element))
|
|
1618
1585
|
elif tag_name == "SERVER-COM-SPEC":
|
|
@@ -1622,7 +1589,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1622
1589
|
elif tag_name == "MODE-SWITCH-SENDER-COM-SPEC":
|
|
1623
1590
|
parent.addProvidedComSpec(self.getModeSwitchSenderComSpec(child_element))
|
|
1624
1591
|
else:
|
|
1625
|
-
self.
|
|
1592
|
+
self.raiseError("Unsupported RequiredComSpec <%s>" % tag_name)
|
|
1626
1593
|
|
|
1627
1594
|
def readPortGroupInnerGroupIRefs(self, element: ET.Element, parent: PortGroup):
|
|
1628
1595
|
for child_element in self.findall(element, "INNER-GROUP-IREFS/INNER-GROUP-IREF"):
|
|
@@ -1645,11 +1612,11 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1645
1612
|
|
|
1646
1613
|
def readSwComponentTypePortGroups(self, element: ET.Element, parent: SwComponentType):
|
|
1647
1614
|
for child_element in self.findall(element, "PORT-GROUPS/*"):
|
|
1648
|
-
tag_name = self.getTagName(child_element
|
|
1615
|
+
tag_name = self.getTagName(child_element)
|
|
1649
1616
|
if tag_name == "PORT-GROUP":
|
|
1650
1617
|
self.readPortGroup(child_element, parent)
|
|
1651
1618
|
else:
|
|
1652
|
-
self.
|
|
1619
|
+
self.raiseError("Unsupported Port Group type: %s" % tag_name)
|
|
1653
1620
|
|
|
1654
1621
|
def readSwComponentType(self, element: ET.Element, parent: SwComponentType):
|
|
1655
1622
|
self.readIdentifiable(element, parent)
|
|
@@ -1660,32 +1627,24 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1660
1627
|
self.readSwComponentType(element, parent)
|
|
1661
1628
|
self.readSwcInternalBehavior(element, parent)
|
|
1662
1629
|
|
|
1663
|
-
def
|
|
1664
|
-
|
|
1665
|
-
sw_component = parent.createEcuAbstractionSwComponentType(short_name)
|
|
1630
|
+
def readEcuAbstractionSwComponentType(self, element, sw_component: EcuAbstractionSwComponentType):
|
|
1631
|
+
self.logger.debug("Read EcuAbstractionSwComponentType <%s>" % sw_component.getShortName())
|
|
1666
1632
|
self.readAtomicSwComponentType(element, sw_component)
|
|
1667
1633
|
|
|
1668
|
-
def
|
|
1669
|
-
|
|
1670
|
-
sw_component = parent.createApplicationSwComponentType(short_name)
|
|
1634
|
+
def readApplicationSwComponentType(self, element: ET.Element, sw_component: ApplicationSwComponentType):
|
|
1635
|
+
self.logger.debug("Read ApplicationSwComponentType <%s>" % sw_component.getShortName())
|
|
1671
1636
|
self.readAtomicSwComponentType(element, sw_component)
|
|
1672
1637
|
|
|
1673
|
-
def readComplexDeviceDriverSwComponentType(self, element: ET.Element,
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
self.logger.debug("readComplexDeviceDriverSwComponentType <%s>" % short_name)
|
|
1677
|
-
self.readAtomicSwComponentType(element, sw_component)
|
|
1638
|
+
def readComplexDeviceDriverSwComponentType(self, element: ET.Element, type: ComplexDeviceDriverSwComponentType):
|
|
1639
|
+
self.logger.debug("Read ComplexDeviceDriverSwComponentType <%s>" % type.getShortName())
|
|
1640
|
+
self.readAtomicSwComponentType(element, type)
|
|
1678
1641
|
|
|
1679
|
-
def readSensorActuatorSwComponentType(self, element: ET.Element,
|
|
1680
|
-
|
|
1681
|
-
sw_component = parent.createSensorActuatorSwComponentType(short_name)
|
|
1682
|
-
self.logger.debug("readSensorActuatorSwComponentType <%s>" % short_name)
|
|
1642
|
+
def readSensorActuatorSwComponentType(self, element: ET.Element, sw_component: SensorActuatorSwComponentType):
|
|
1643
|
+
self.logger.debug("Read SensorActuatorSwComponentType <%s>" % sw_component.getShortName())
|
|
1683
1644
|
self.readAtomicSwComponentType(element, sw_component)
|
|
1684
1645
|
|
|
1685
|
-
def readServiceSwComponentType(self, element: ET.Element,
|
|
1686
|
-
|
|
1687
|
-
sw_component = parent.createServiceSwComponentType(short_name)
|
|
1688
|
-
self.logger.debug("readServiceSwComponentType <%s>" % short_name)
|
|
1646
|
+
def readServiceSwComponentType(self, element: ET.Element, sw_component: ServiceSwComponentType):
|
|
1647
|
+
self.logger.debug("Read ServiceSwComponentType <%s>" % sw_component.getShortName())
|
|
1689
1648
|
self.readAtomicSwComponentType(element, sw_component)
|
|
1690
1649
|
|
|
1691
1650
|
def readPPortInCompositionInstanceRef(self, element: ET.Element, p_port_in_composition_instance_ref: PPortInCompositionInstanceRef):
|
|
@@ -1752,7 +1711,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1752
1711
|
parent.setInnerPortIRref(p_port_in_composition_instance_ref)
|
|
1753
1712
|
return
|
|
1754
1713
|
|
|
1755
|
-
self.
|
|
1714
|
+
self.raiseError("Unsupported child element of INNER-PORT-IREF")
|
|
1756
1715
|
|
|
1757
1716
|
def readDelegationSwConnectors(self, element, parent: CompositionSwComponentType):
|
|
1758
1717
|
for child_element in self.findall(element, "CONNECTORS/DELEGATION-SW-CONNECTOR"):
|
|
@@ -1764,7 +1723,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1764
1723
|
self.readDelegationSwConnectorInnerPortIRef(child_element, connector)
|
|
1765
1724
|
|
|
1766
1725
|
if connector.getInnerPortIRref() == None and connector.getOuterPortRef() == None:
|
|
1767
|
-
self.
|
|
1726
|
+
self.raiseError("Invalid PortPrototype of DELEGATION-SW-CONNECTOR")
|
|
1768
1727
|
|
|
1769
1728
|
connector.setOuterPortRef(self.getChildElementOptionalRefType(child_element, "OUTER-PORT-REF"))
|
|
1770
1729
|
self.logger.debug("OUTER-PORT-REF DEST: %s, %s"
|
|
@@ -1785,19 +1744,14 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1785
1744
|
for ref in self.getChildElementRefTypeList(child_element, "./DATA-TYPE-MAPPING-REF"):
|
|
1786
1745
|
parent.addDataTypeMapping(ref)
|
|
1787
1746
|
|
|
1788
|
-
def readCompositionSwComponentType(self, element: ET.Element,
|
|
1789
|
-
|
|
1790
|
-
self.
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
self.
|
|
1794
|
-
self.
|
|
1795
|
-
self.
|
|
1796
|
-
self.readAssemblySwConnectors(element, sw_component)
|
|
1797
|
-
self.readDelegationSwConnectors(element, sw_component)
|
|
1798
|
-
self.readCompositionSwComponentTypeDataTypeMappingSet(element, sw_component)
|
|
1799
|
-
|
|
1800
|
-
self.logger.debug("ReadCompositionSwComponentTypes: <%s> (Done)" % short_name)
|
|
1747
|
+
def readCompositionSwComponentType(self, element: ET.Element, type: CompositionSwComponentType):
|
|
1748
|
+
self.logger.debug("Read CompositionSwComponentType: <%s>" % type.getShortName())
|
|
1749
|
+
self.readIdentifiable(element, type)
|
|
1750
|
+
self.readSwComponentType(element, type)
|
|
1751
|
+
self.readSwComponentPrototypes(element, type)
|
|
1752
|
+
self.readAssemblySwConnectors(element, type)
|
|
1753
|
+
self.readDelegationSwConnectors(element, type)
|
|
1754
|
+
self.readCompositionSwComponentTypeDataTypeMappingSet(element, type)
|
|
1801
1755
|
|
|
1802
1756
|
def readDataTypeMaps(self, element: ET.Element, parent: DataTypeMappingSet):
|
|
1803
1757
|
for child_element in element.findall("./xmlns:DATA-TYPE-MAPS/xmlns:DATA-TYPE-MAP", self.nsmap):
|
|
@@ -1817,9 +1771,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1817
1771
|
map.modeGroupRef = self.getChildElementOptionalRefType(child_element, "MODE-GROUP-REF")
|
|
1818
1772
|
parent.addModeRequestTypeMap(map)
|
|
1819
1773
|
|
|
1820
|
-
def readDataTypeMappingSet(self, element: ET.Element,
|
|
1821
|
-
|
|
1822
|
-
mapping_set = parent.createDataTypeMappingSet(short_name)
|
|
1774
|
+
def readDataTypeMappingSet(self, element: ET.Element, mapping_set: DataTypeMappingSet):
|
|
1775
|
+
self.logger.debug("Read DataTypeMappingSet: <%s>" % mapping_set.getShortName())
|
|
1823
1776
|
self.readIdentifiable(element, mapping_set)
|
|
1824
1777
|
self.readDataTypeMaps(element, mapping_set)
|
|
1825
1778
|
self.readModeRequestTypeMaps(element, mapping_set)
|
|
@@ -1848,11 +1801,10 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1848
1801
|
policy.data_element_ref = self.getChildElementOptionalRefType(child_element, "DATA-ELEMENT-REF")
|
|
1849
1802
|
policy.handle_invalid = self.getChildElementOptionalLiteral(child_element, "HANDLE-INVALID")
|
|
1850
1803
|
|
|
1851
|
-
def
|
|
1852
|
-
|
|
1853
|
-
sr_interface = parent.createSenderReceiverInterface(short_name)
|
|
1804
|
+
def readSenderReceiverInterface(self, element, sr_interface: SenderReceiverInterface):
|
|
1805
|
+
self.logger.debug("Read SenderReceiverInterface <%s>" % sr_interface.getShortName())
|
|
1854
1806
|
self.readIdentifiable(element, sr_interface)
|
|
1855
|
-
sr_interface.
|
|
1807
|
+
sr_interface.setIsService(self.getChildElementOptionalBooleanValue(element, "IS-SERVICE"))
|
|
1856
1808
|
self.readSenderReceiverInterfaceDataElements(element, sr_interface)
|
|
1857
1809
|
self.readSenderReceiverInterfaceInvalidationPolicies(element, sr_interface)
|
|
1858
1810
|
|
|
@@ -1899,16 +1851,13 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1899
1851
|
prototype = param_interface.createParameter(short_name)
|
|
1900
1852
|
self.readParameterDataPrototype(child_element, prototype)
|
|
1901
1853
|
|
|
1902
|
-
def readParameterInterface(self, element: ET.Element,
|
|
1903
|
-
|
|
1904
|
-
self.logger.debug("Read ParameterInterface %s" % short_name)
|
|
1905
|
-
param_interface = parent.createParameterInterface(short_name)
|
|
1854
|
+
def readParameterInterface(self, element: ET.Element, param_interface: ParameterInterface):
|
|
1855
|
+
self.logger.debug("Read ParameterInterface <%s>" % param_interface.getShortName())
|
|
1906
1856
|
self.readPortInterface(element, param_interface)
|
|
1907
1857
|
self.readParameterInterfaceParameters(element, param_interface)
|
|
1908
1858
|
|
|
1909
|
-
def readClientServerInterface(self, element: ET.Element,
|
|
1910
|
-
|
|
1911
|
-
cs_interface = parent.createClientServerInterface(short_name)
|
|
1859
|
+
def readClientServerInterface(self, element: ET.Element, cs_interface: ClientServerInterface):
|
|
1860
|
+
self.logger.debug("Read readClientServerInterface <%s>" % cs_interface.getShortName())
|
|
1912
1861
|
self.readPortInterface(element, cs_interface)
|
|
1913
1862
|
self.readOperations(element, cs_interface)
|
|
1914
1863
|
self.readPossibleErrors(element, cs_interface)
|
|
@@ -1998,29 +1947,26 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1998
1947
|
compu.setCompuDefaultValue(self.getCompuConst(child_element, "COMPU-DEFAULT-VALUE"))
|
|
1999
1948
|
return compu
|
|
2000
1949
|
|
|
2001
|
-
def readCompuMethod(self, element: ET.Element,
|
|
2002
|
-
|
|
2003
|
-
self.logger.debug("readCompuMethods %s" % short_name)
|
|
2004
|
-
compu_method = parent.createCompuMethod(short_name)
|
|
1950
|
+
def readCompuMethod(self, element: ET.Element, compu_method: CompuMethod):
|
|
1951
|
+
self.logger.debug("Read CompuMethods <%s>" % compu_method.getShortName())
|
|
2005
1952
|
self.readIdentifiable(element, compu_method)
|
|
2006
1953
|
compu_method.setUnitRef(self.getChildElementOptionalRefType(element, "UNIT-REF")) \
|
|
2007
1954
|
.setCompuInternalToPhys(self.getCompu(element, "COMPU-INTERNAL-TO-PHYS")) \
|
|
2008
1955
|
.setCompuPhysToInternal(self.getCompu(element, "COMPU-PHYS-TO-INTERNAL"))
|
|
2009
1956
|
|
|
2010
|
-
def
|
|
1957
|
+
def readSwcBswMappingSwcBswRunnableMappings(self, element: ET.Element, parent: SwcBswMapping):
|
|
2011
1958
|
for child_element in self.findall(element, "RUNNABLE-MAPPINGS/SWC-BSW-RUNNABLE-MAPPING"):
|
|
2012
1959
|
mapping = SwcBswRunnableMapping()
|
|
2013
1960
|
mapping.setBswEntityRef(self.getChildElementOptionalRefType(child_element, "BSW-ENTITY-REF")) \
|
|
2014
1961
|
.setSwcRunnableRef(self.getChildElementOptionalRefType(child_element, "SWC-RUNNABLE-REF"))
|
|
2015
1962
|
parent.addRunnableMapping(mapping)
|
|
2016
1963
|
|
|
2017
|
-
def
|
|
2018
|
-
|
|
2019
|
-
self.
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
self.
|
|
2023
|
-
swc_bsw_mapping.setSwcBehaviorRef(self.getChildElementOptionalRefType(element, "SWC-BEHAVIOR-REF"))
|
|
1964
|
+
def readSwcBswMapping(self, element: ET.Element, mapping: SwcBswMapping):
|
|
1965
|
+
self.logger.debug("read SwcBswMappings %s" % mapping.getShortName())
|
|
1966
|
+
self.readIdentifiable(element, mapping)
|
|
1967
|
+
mapping.setBswBehaviorRef(self.getChildElementOptionalRefType(element, "BSW-BEHAVIOR-REF"))
|
|
1968
|
+
self.readSwcBswMappingSwcBswRunnableMappings(element, mapping)
|
|
1969
|
+
mapping.setSwcBehaviorRef(self.getChildElementOptionalRefType(element, "SWC-BEHAVIOR-REF"))
|
|
2024
1970
|
|
|
2025
1971
|
def readValueSpecification(self, element: ET.Element, value_spec: ValueSpecification):
|
|
2026
1972
|
self.readARObjectAttributes(element, value_spec)
|
|
@@ -2095,10 +2041,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2095
2041
|
self.readRecordValueSpecificationFields(element, value_spec)
|
|
2096
2042
|
return value_spec
|
|
2097
2043
|
|
|
2098
|
-
def readConstantSpecification(self, element: ET.Element,
|
|
2099
|
-
|
|
2100
|
-
self.logger.debug("readConstantSpecification %s" % short_name)
|
|
2101
|
-
spec = parent.createConstantSpecification(short_name)
|
|
2044
|
+
def readConstantSpecification(self, element: ET.Element, spec: ConstantSpecification):
|
|
2045
|
+
self.logger.debug("readConstantSpecification %s" % spec.getShortName())
|
|
2102
2046
|
self.readIdentifiable(element, spec)
|
|
2103
2047
|
for child_element in self.findall(element, "VALUE-SPEC/*"):
|
|
2104
2048
|
spec.setValueSpec(self.getValueSpecification(child_element, self.getTagName(child_element)))
|
|
@@ -2132,24 +2076,19 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2132
2076
|
self.readPhysConstrs(child_element, rule)
|
|
2133
2077
|
parent.addDataConstrRule(rule)
|
|
2134
2078
|
|
|
2135
|
-
def readDataConstr(self, element: ET.Element,
|
|
2136
|
-
|
|
2137
|
-
self.logger.debug("readDataConstr %s" % short_name)
|
|
2138
|
-
constr = parent.createDataConstr(short_name)
|
|
2079
|
+
def readDataConstr(self, element: ET.Element, constr: DataConstr):
|
|
2080
|
+
self.logger.debug("Read DataConstr <%s>" % constr.getShortName())
|
|
2139
2081
|
self.readIdentifiable(element, constr)
|
|
2140
2082
|
self.readDataConstrRule(element, constr)
|
|
2141
2083
|
|
|
2142
|
-
def readUnit(self, element: ET.Element,
|
|
2143
|
-
|
|
2144
|
-
self.logger.debug("readUnit %s" % short_name)
|
|
2145
|
-
unit = parent.createUnit(short_name)
|
|
2084
|
+
def readUnit(self, element: ET.Element, unit: Unit):
|
|
2085
|
+
self.logger.debug("Read Unit <%s>" % unit.getShortName())
|
|
2146
2086
|
self.readIdentifiable(element, unit)
|
|
2147
2087
|
unit.setDisplayName(self.getChildElementOptionalLiteral(element, "DISPLAY-NAME")) \
|
|
2148
2088
|
.setFactorSiToUnit(self.getChildElementOptionalFloatValue(element, "FACTOR-SI-TO-UNIT")) \
|
|
2149
2089
|
.setOffsetSiToUnit(self.getChildElementOptionalFloatValue(element, "OFFSET-SI-TO-UNIT")) \
|
|
2150
2090
|
.setPhysicalDimensionRef(self.getChildElementOptionalRefType(element, "PHYSICAL-DIMENSION-REF"))
|
|
2151
2091
|
|
|
2152
|
-
|
|
2153
2092
|
def readEndToEndDescriptionDataId(self, element: ET.Element, parent: EndToEndDescription):
|
|
2154
2093
|
child_element = element.find("./xmlns:DATA-IDS", self.nsmap)
|
|
2155
2094
|
if child_element is not None:
|
|
@@ -2190,11 +2129,11 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2190
2129
|
|
|
2191
2130
|
def readEndToEndProtectionVariablePrototypes(self, element: ET.Element, parent: EndToEndProtection):
|
|
2192
2131
|
for child_element in element.findall("./xmlns:END-TO-END-PROTECTION-VARIABLE-PROTOTYPES/*", self.nsmap):
|
|
2193
|
-
tag_name = self.getTagName(child_element
|
|
2132
|
+
tag_name = self.getTagName(child_element)
|
|
2194
2133
|
if tag_name == "END-TO-END-PROTECTION-VARIABLE-PROTOTYPE":
|
|
2195
2134
|
parent.addEndToEndProtectionVariablePrototype(self.getEndToEndProtectionVariablePrototype(child_element))
|
|
2196
2135
|
else:
|
|
2197
|
-
self.
|
|
2136
|
+
self.raiseError("Unsupported End To End Protection Variable Prototype <%s>" % tag_name)
|
|
2198
2137
|
|
|
2199
2138
|
def readEndToEndProtection(self, element: ET.Element, parent: EndToEndProtectionSet):
|
|
2200
2139
|
short_name = self.getShortName(element)
|
|
@@ -2205,15 +2144,16 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2205
2144
|
self.readEndToEndProtectionVariablePrototypes(element, protection)
|
|
2206
2145
|
|
|
2207
2146
|
def readEndToEndProtections(self, element: ET.Element, parent: EndToEndProtectionSet):
|
|
2208
|
-
for child_element in
|
|
2209
|
-
tag_name = self.getTagName(child_element
|
|
2147
|
+
for child_element in self.findall(element, "END-TO-END-PROTECTIONS/*", self.nsmap):
|
|
2148
|
+
tag_name = self.getTagName(child_element)
|
|
2210
2149
|
if tag_name == "END-TO-END-PROTECTION":
|
|
2211
2150
|
self.readEndToEndProtection(child_element, parent)
|
|
2151
|
+
else:
|
|
2152
|
+
self.notImplemented("Unsupported EndToEndProtectionSet <%s>" % tag_name)
|
|
2212
2153
|
|
|
2213
|
-
def readEndToEndProtectionSet(self, element: ET.Element,
|
|
2214
|
-
|
|
2215
|
-
self.
|
|
2216
|
-
protection_set = parent.createEndToEndProtectionSet(short_name)
|
|
2154
|
+
def readEndToEndProtectionSet(self, element: ET.Element, protection_set: EndToEndProtectionSet):
|
|
2155
|
+
self.logger.debug("Read EndToEndProtectionSet <%s>" % protection_set.getShortName())
|
|
2156
|
+
self.readIdentifiable(element, protection_set)
|
|
2217
2157
|
self.readEndToEndProtections(element, protection_set)
|
|
2218
2158
|
|
|
2219
2159
|
def readAutosarDataType(self, element: ET.Element, data_type: AutosarDataType):
|
|
@@ -2227,11 +2167,9 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2227
2167
|
self.readImplementationProps(element, props)
|
|
2228
2168
|
|
|
2229
2169
|
def readImplementationDataTypeSymbolProps(self, element: ET.Element, data_type: ImplementationDataType):
|
|
2230
|
-
child_element =
|
|
2170
|
+
child_element = self.find(element, "SYMBOL-PROPS")
|
|
2231
2171
|
if child_element is not None:
|
|
2232
|
-
|
|
2233
|
-
self.logger.debug("readSymbolProps %s" % short_name)
|
|
2234
|
-
props = data_type.createSymbolProps(short_name)
|
|
2172
|
+
props = data_type.createSymbolProps(self.getShortName(child_element))
|
|
2235
2173
|
self.readSymbolProps(child_element, props)
|
|
2236
2174
|
|
|
2237
2175
|
def readApplicationDataType(self, element: ET.Element, data_type: ApplicationDataType):
|
|
@@ -2258,10 +2196,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2258
2196
|
array_element.setArraySizeSemantics(self.getChildElementOptionalLiteral(child_element, "ARRAY-SIZE-SEMANTICS"))
|
|
2259
2197
|
array_element.setMaxNumberOfElements(self.getChildElementOptionalNumericalValue(child_element, "MAX-NUMBER-OF-ELEMENTS"))
|
|
2260
2198
|
|
|
2261
|
-
def readApplicationArrayDataType(self, element: ET.Element,
|
|
2262
|
-
|
|
2263
|
-
self.logger.debug("readApplicationArrayDataType %s" % short_name)
|
|
2264
|
-
data_type = parent.createApplicationArrayDataType(short_name)
|
|
2199
|
+
def readApplicationArrayDataType(self, element: ET.Element, data_type: ApplicationArrayDataType):
|
|
2200
|
+
self.logger.debug("Read ApplicationArrayDataType <%s>" % data_type)
|
|
2265
2201
|
self.readApplicationCompositeDataType(element, data_type)
|
|
2266
2202
|
self.readApplicationArrayElement(element, data_type)
|
|
2267
2203
|
|
|
@@ -2301,17 +2237,13 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2301
2237
|
|
|
2302
2238
|
return group
|
|
2303
2239
|
|
|
2304
|
-
def readSwRecordLayout(self, element: ET.Element,
|
|
2305
|
-
|
|
2306
|
-
self.logger.debug("readSwRecordLayout %s" % short_name)
|
|
2307
|
-
layout = parent.createSwRecordLayout(short_name)
|
|
2240
|
+
def readSwRecordLayout(self, element: ET.Element, layout: SwRecordLayout):
|
|
2241
|
+
self.logger.debug("Read SwRecordLayout <%s>" % layout.getShortName())
|
|
2308
2242
|
self.readIdentifiable(element, layout)
|
|
2309
2243
|
layout.setSwRecordLayoutGroup(self.getSwRecordLayoutGroup(element, "SW-RECORD-LAYOUT-GROUP"))
|
|
2310
2244
|
|
|
2311
|
-
def readSwAddrMethod(self, element: ET.Element,
|
|
2312
|
-
|
|
2313
|
-
self.logger.debug("read SwAddrMethod %s" % short_name)
|
|
2314
|
-
method = parent.createSwAddrMethod(short_name)
|
|
2245
|
+
def readSwAddrMethod(self, element: ET.Element, method: SwAddrMethod):
|
|
2246
|
+
self.logger.debug("Read SwAddrMethod <%s>" % method.getShortName())
|
|
2315
2247
|
self.readIdentifiable(element, method)
|
|
2316
2248
|
method.setMemoryAllocationKeywordPolicy(self.getChildElementOptionalLiteral(element, "MEMORY-ALLOCATION-KEYWORD-POLICY"))
|
|
2317
2249
|
for option in self.getChildElementLiteralValueList(element, "OPTIONS/OPTION"):
|
|
@@ -2319,10 +2251,9 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2319
2251
|
method.setSectionInitializationPolicy(self.getChildElementOptionalLiteral(element, "SECTION-INITIALIZATION-POLICY")) \
|
|
2320
2252
|
.setSectionType(self.getChildElementOptionalLiteral(element, "SECTION-TYPE"))
|
|
2321
2253
|
|
|
2322
|
-
def readTriggerInterface(self, element: ET.Element,
|
|
2323
|
-
|
|
2324
|
-
self.
|
|
2325
|
-
trigger_if = parent.createTriggerInterface(short_name)
|
|
2254
|
+
def readTriggerInterface(self, element: ET.Element, trigger_if: TriggerInterface):
|
|
2255
|
+
self.logger.debug("Read TriggerInterface <%s>" % trigger_if.getShortName())
|
|
2256
|
+
self.readIdentifiable(element, trigger_if)
|
|
2326
2257
|
|
|
2327
2258
|
def readModeDeclarationGroupModeDeclaration(self, element: ET.Element, parent: ModeDeclarationGroup):
|
|
2328
2259
|
for child_element in self.findall(element, "MODE-DECLARATIONS/MODE-DECLARATION"):
|
|
@@ -2331,10 +2262,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2331
2262
|
self.readARObjectAttributes(child_element, declaration)
|
|
2332
2263
|
declaration.setValue(self.getChildElementOptionalNumericalValue(child_element, "VALUE"))
|
|
2333
2264
|
|
|
2334
|
-
def readModeDeclarationGroup(self, element: ET.Element,
|
|
2335
|
-
|
|
2336
|
-
self.logger.debug("readModeDeclarationGroup %s" % short_name)
|
|
2337
|
-
group = parent.createModeDeclarationGroup(short_name)
|
|
2265
|
+
def readModeDeclarationGroup(self, element: ET.Element, group: ModeDeclarationGroup):
|
|
2266
|
+
self.logger.debug("Read ModeDeclarationGroup <%s>" % group.getShortName())
|
|
2338
2267
|
self.readIdentifiable(element, group)
|
|
2339
2268
|
self.readModeDeclarationGroupModeDeclaration(element, group)
|
|
2340
2269
|
group.setInitialModeRef(self.getChildElementOptionalRefType(element, "INITIAL-MODE-REF"))
|
|
@@ -2348,10 +2277,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2348
2277
|
self.readIdentifiable(child_element, mode_group)
|
|
2349
2278
|
mode_group.type_tref = self.getChildElementOptionalRefType(child_element, "TYPE-TREF")
|
|
2350
2279
|
|
|
2351
|
-
def readModeSwitchInterface(self, element: ET.Element,
|
|
2352
|
-
|
|
2353
|
-
self.logger.debug("readModeSwitchInterface %s" % short_name)
|
|
2354
|
-
mode_interface = parent.createModeSwitchInterface(short_name)
|
|
2280
|
+
def readModeSwitchInterface(self, element: ET.Element, mode_interface: ModeSwitchInterface):
|
|
2281
|
+
self.logger.debug("Read ModeSwitchInterface <%s>" % mode_interface.getShortName())
|
|
2355
2282
|
self.readPortInterface(element, mode_interface)
|
|
2356
2283
|
self.readModeSwitchInterfaceModeGroup(element, mode_interface)
|
|
2357
2284
|
|
|
@@ -2369,7 +2296,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2369
2296
|
if tag_name == "EOC-EXECUTABLE-ENTITY-REF":
|
|
2370
2297
|
self.readEOCExecutableEntityRef(child_element, constrain)
|
|
2371
2298
|
else:
|
|
2372
|
-
self.
|
|
2299
|
+
self.raiseError("Unsupported order element <%s>." % tag_name)
|
|
2373
2300
|
|
|
2374
2301
|
def readExecutionOrderConstraint(self, element: ET.Element, extension: TimingExtension):
|
|
2375
2302
|
short_name = self.getShortName(element)
|
|
@@ -2384,12 +2311,10 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2384
2311
|
if tag_name == "EXECUTION-ORDER-CONSTRAINT":
|
|
2385
2312
|
self.readExecutionOrderConstraint(child_element, extension)
|
|
2386
2313
|
else:
|
|
2387
|
-
self.
|
|
2314
|
+
self.raiseError("Unsupported timing requirement <%s>" % tag_name)
|
|
2388
2315
|
|
|
2389
|
-
def readSwcTiming(self, element: ET.Element,
|
|
2390
|
-
|
|
2391
|
-
self.logger.debug("readSwcTiming %s" % short_name)
|
|
2392
|
-
timing = parent.createSwcTiming(short_name)
|
|
2316
|
+
def readSwcTiming(self, element: ET.Element, timing: SwcTiming):
|
|
2317
|
+
self.logger.debug("Read SwcTiming <%s>" % timing.getShortName())
|
|
2393
2318
|
self.readIdentifiable(element, timing)
|
|
2394
2319
|
self.readTimingExtension(element, timing)
|
|
2395
2320
|
|
|
@@ -2727,19 +2652,80 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2727
2652
|
else:
|
|
2728
2653
|
self.notImplemented("Unsupported ConsumedServiceInstances <%s>" % tag_name)
|
|
2729
2654
|
|
|
2655
|
+
def getInitialSdDelayConfig(self, element: ET.Element, key: str) -> InitialSdDelayConfig:
|
|
2656
|
+
config = None
|
|
2657
|
+
child_element = self.find(element, key)
|
|
2658
|
+
if child_element is not None:
|
|
2659
|
+
config = InitialSdDelayConfig()
|
|
2660
|
+
config.setInitialDelayMaxValue(self.getChildElementOptionalTimeValue(child_element, "INITIAL-DELAY-MAX-VALUE")) \
|
|
2661
|
+
.setInitialDelayMinValue(self.getChildElementOptionalTimeValue(child_element, "INITIAL-DELAY-MIN-VALUE")) \
|
|
2662
|
+
.setInitialRepetitionsBaseDelay(self.getChildElementOptionalTimeValue(child_element, "INITIAL-REPETITIONS-BASE-DELAY")) \
|
|
2663
|
+
.setInitialRepetitionsMax(self.getChildElementOptionalPositiveInteger(child_element, "INITIAL-REPETITIONS-MAX"))
|
|
2664
|
+
return config
|
|
2665
|
+
|
|
2666
|
+
def getSdServerConfig(self, element: ET.Element, key: str) -> SdServerConfig:
|
|
2667
|
+
config = None
|
|
2668
|
+
child_element = self.find(element, key)
|
|
2669
|
+
if child_element is not None:
|
|
2670
|
+
config = SdServerConfig()
|
|
2671
|
+
config.setInitialOfferBehavior(self.getInitialSdDelayConfig(child_element, "INITIAL-OFFER-BEHAVIOR")) \
|
|
2672
|
+
.setOfferCyclicDelay(self.getChildElementOptionalTimeValue(child_element, "OFFER-CYCLIC-DELAY")) \
|
|
2673
|
+
.setRequestResponseDelay(self.getRequestResponseDelay(child_element, "REQUEST-RESPONSE-DELAY")) \
|
|
2674
|
+
.setServerServiceMajorVersion(self.getChildElementOptionalPositiveInteger(child_element, "SERVER-SERVICE-MAJOR-VERSION")) \
|
|
2675
|
+
.setServerServiceMinorVersion(self.getChildElementOptionalPositiveInteger(child_element, "SERVER-SERVICE-MINOR-VERSION")) \
|
|
2676
|
+
.setTtl(self.getChildElementOptionalPositiveInteger(child_element, "TTL"))
|
|
2677
|
+
return config
|
|
2678
|
+
|
|
2679
|
+
def readEventHandler(self, element: ET.Element, handler: EventHandler):
|
|
2680
|
+
self.readIdentifiable(element, handler)
|
|
2681
|
+
handler.setApplicationEndpointRef(self.getChildElementOptionalRefType(element, "APPLICATION-ENDPOINT-REF"))
|
|
2682
|
+
for ref in self.getChildElementRefTypeList(element, "CONSUMED-EVENT-GROUP-REFS/CONSUMED-EVENT-GROUP-REF"):
|
|
2683
|
+
handler.addConsumedEventGroupRef(ref)
|
|
2684
|
+
handler.setMulticastThreshold(self.getChildElementOptionalPositiveInteger(element, "MULTICAST-THRESHOLD"))
|
|
2685
|
+
for ref in self.getChildElementRefTypeList(element, "ROUTING-GROUP-REFS/ROUTING-GROUP-REF"):
|
|
2686
|
+
handler.addRoutingGroupRef(ref)
|
|
2687
|
+
handler.setSdServerConfig(self.getSdServerConfig(element, "SD-SERVER-CONFIG")) \
|
|
2688
|
+
|
|
2689
|
+
def readProvidedServiceInstanceEventHandlers(self, element: ET.Element, instance: ProvidedServiceInstance):
|
|
2690
|
+
for child_element in self.findall(element, "EVENT-HANDLERS/*"):
|
|
2691
|
+
tag_name = self.getTagName(child_element)
|
|
2692
|
+
if tag_name == "EVENT-HANDLER":
|
|
2693
|
+
handler = instance.createEventHandler(self.getShortName(child_element))
|
|
2694
|
+
self.readEventHandler(child_element, handler)
|
|
2695
|
+
else:
|
|
2696
|
+
self.notImplemented("Unsupported Event Handler <%s>" % tag_name)
|
|
2697
|
+
|
|
2698
|
+
def readProvidedServiceInstance(self, element: ET.Element, instance: ProvidedServiceInstance):
|
|
2699
|
+
self.readIdentifiable(element, instance)
|
|
2700
|
+
self.readProvidedServiceInstanceEventHandlers(element, instance)
|
|
2701
|
+
instance.setInstanceIdentifier(self.getChildElementOptionalPositiveInteger(element, "INSTANCE-IDENTIFIER")) \
|
|
2702
|
+
.setSdServerConfig(self.getSdServerConfig(element, "SD-SERVER-CONFIG")) \
|
|
2703
|
+
.setServiceIdentifier(self.getChildElementOptionalPositiveInteger(element, "SERVICE-IDENTIFIER"))
|
|
2704
|
+
|
|
2705
|
+
def readSocketAddressApplicationEndpointProvidedServiceInstance(self, element: ET.Element, end_point: ApplicationEndpoint):
|
|
2706
|
+
for child_element in self.findall(element, "PROVIDED-SERVICE-INSTANCES/*"):
|
|
2707
|
+
tag_name = self.getTagName(child_element)
|
|
2708
|
+
if tag_name == "PROVIDED-SERVICE-INSTANCE":
|
|
2709
|
+
instance = end_point.createProvidedServiceInstance(self.getShortName(child_element))
|
|
2710
|
+
self.readProvidedServiceInstance(child_element, instance)
|
|
2711
|
+
else:
|
|
2712
|
+
self.notImplemented("Unsupported ConsumedServiceInstances <%s>" % tag_name)
|
|
2713
|
+
|
|
2730
2714
|
def readSocketAddressApplicationEndpoint(self, element: ET.Element, address: SocketAddress):
|
|
2731
2715
|
child_element = self.find(element, "APPLICATION-ENDPOINT")
|
|
2732
2716
|
if child_element is not None:
|
|
2733
2717
|
end_point = address.createApplicationEndpoint(self.getShortName(child_element))
|
|
2734
2718
|
self.readSocketAddressApplicationEndpointConsumedServiceInstances(child_element, end_point)
|
|
2735
2719
|
end_point.setNetworkEndpointRef(self.getChildElementOptionalRefType(child_element, "NETWORK-ENDPOINT-REF")) \
|
|
2736
|
-
.setPriority(self.getChildElementOptionalPositiveInteger(child_element, "PRIORITY"))
|
|
2737
|
-
|
|
2720
|
+
.setPriority(self.getChildElementOptionalPositiveInteger(child_element, "PRIORITY"))
|
|
2721
|
+
self.readSocketAddressApplicationEndpointProvidedServiceInstance(child_element, end_point)
|
|
2722
|
+
end_point.setTpConfiguration(self.getTransportProtocolConfiguration(child_element, "TP-CONFIGURATION"))
|
|
2738
2723
|
|
|
2739
2724
|
def readSocketAddressMulticastConnectorRefs(self, element: ET.Element, address: SocketAddress):
|
|
2740
2725
|
for ref in self.getChildElementRefTypeList(element, "MULTICAST-CONNECTOR-REFS/MULTICAST-CONNECTOR-REF"):
|
|
2741
2726
|
address.addMulticastConnectorRef(ref)
|
|
2742
2727
|
|
|
2728
|
+
|
|
2743
2729
|
def readSocketAddress(self, element: ET.Element, address: SocketAddress):
|
|
2744
2730
|
self.readIdentifiable(element, address)
|
|
2745
2731
|
self.readSocketAddressApplicationEndpoint(element, address)
|
|
@@ -2747,7 +2733,6 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2747
2733
|
address.setConnectorRef(self.getChildElementOptionalRefType(element, "CONNECTOR-REF")) \
|
|
2748
2734
|
.setPortAddress(self.getChildElementOptionalPositiveInteger(element, "PORT-ADDRESS"))
|
|
2749
2735
|
|
|
2750
|
-
|
|
2751
2736
|
def readSoAdConfigSocketAddresses(self, element: ET.Element, config: SoAdConfig):
|
|
2752
2737
|
for child_element in self.findall(element, "SOCKET-ADDRESSS/*"):
|
|
2753
2738
|
tag_name = self.getTagName(child_element)
|
|
@@ -2816,98 +2801,94 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2816
2801
|
.setCanFdBaudrate(self.getChildElementOptionalNumericalValue(element, "CAN-FD-BAUDRATE")) \
|
|
2817
2802
|
.setSpeed(self.getChildElementOptionalNumericalValue(element, "SPEED"))
|
|
2818
2803
|
|
|
2819
|
-
def readLinCluster(self, element: ET.Element,
|
|
2820
|
-
|
|
2821
|
-
self.logger.debug("readLinCluster %s" % short_name)
|
|
2822
|
-
cluster = parent.createLinCluster(short_name)
|
|
2804
|
+
def readLinCluster(self, element: ET.Element, cluster: LinCluster):
|
|
2805
|
+
self.logger.debug("Read LinCluster <%s>" % cluster.getShortName())
|
|
2823
2806
|
self.readIdentifiable(element, cluster)
|
|
2824
2807
|
child_element = self.find(element, "LIN-CLUSTER-VARIANTS/LIN-CLUSTER-CONDITIONAL")
|
|
2825
2808
|
if child_element is not None:
|
|
2826
2809
|
self.readCommunicationCluster(child_element, cluster)
|
|
2827
2810
|
|
|
2828
|
-
def readCanCluster(self, element: ET.Element,
|
|
2829
|
-
|
|
2830
|
-
self.logger.debug("readCanCluster %s" % short_name)
|
|
2831
|
-
cluster = parent.createCanCluster(short_name)
|
|
2811
|
+
def readCanCluster(self, element: ET.Element, cluster: CanCluster):
|
|
2812
|
+
self.logger.debug("Read CanCluster <%s>" % cluster.getShortName())
|
|
2832
2813
|
self.readIdentifiable(element, cluster)
|
|
2833
2814
|
child_element = self.find(element, "CAN-CLUSTER-VARIANTS/CAN-CLUSTER-CONDITIONAL")
|
|
2834
2815
|
if child_element is not None:
|
|
2835
2816
|
self.readCommunicationCluster(child_element, cluster)
|
|
2836
2817
|
self.readAbstractCanCluster(child_element, cluster)
|
|
2837
2818
|
|
|
2838
|
-
def
|
|
2839
|
-
|
|
2840
|
-
self.
|
|
2841
|
-
|
|
2819
|
+
def readMacMulticastGroup(self, element: ET.Element, group: MacMulticastGroup):
|
|
2820
|
+
self.readIdentifiable(element, group)
|
|
2821
|
+
group.setMacMulticastAddress(self.getChildElementOptionalLiteral(element, "MAC-MULTICAST-ADDRESS",))
|
|
2822
|
+
|
|
2823
|
+
def readEthernetClusterMacMulticastGroups(self, element: ET.Element, cluster: EthernetCluster):
|
|
2824
|
+
for child_element in self.findall(element, "MAC-MULTICAST-GROUPS/*"):
|
|
2825
|
+
tag_name = self.getTagName(child_element)
|
|
2826
|
+
if (tag_name == "MAC-MULTICAST-GROUP"):
|
|
2827
|
+
group = cluster.createMacMulticastGroup(self.getShortName(child_element))
|
|
2828
|
+
self.readMacMulticastGroup(child_element, group)
|
|
2829
|
+
else:
|
|
2830
|
+
self.notImplemented("Unsupported assigned data type <%s>" % tag_name)
|
|
2831
|
+
|
|
2832
|
+
def readEthernetCluster(self, element: ET.Element, cluster: EthernetCluster):
|
|
2833
|
+
self.logger.debug("Read EthernetCluster <%s>" % cluster.getShortName())
|
|
2842
2834
|
self.readIdentifiable(element, cluster)
|
|
2843
2835
|
child_element = self.find(element, "ETHERNET-CLUSTER-VARIANTS/ETHERNET-CLUSTER-CONDITIONAL")
|
|
2844
2836
|
if child_element is not None:
|
|
2845
2837
|
self.readCommunicationCluster(child_element, cluster)
|
|
2838
|
+
self.readEthernetClusterMacMulticastGroups(child_element, cluster)
|
|
2846
2839
|
|
|
2847
2840
|
def readDiagnosticConnectionFunctionalRequestRefs(self, element: ET.Element, connection: DiagnosticConnection):
|
|
2848
2841
|
for ref in self.getChildElementRefTypeList(element, "FUNCTIONAL-REQUEST-REFS/FUNCTIONAL-REQUEST-REF"):
|
|
2849
2842
|
connection.addFunctionalRequestRef(ref)
|
|
2850
2843
|
|
|
2851
2844
|
def readDiagnosticConnection(self, element: ET.Element, connection: DiagnosticConnection):
|
|
2852
|
-
self.logger.debug("Read DiagnosticConnection
|
|
2845
|
+
self.logger.debug("Read DiagnosticConnection <%s>" % connection.getShortName())
|
|
2853
2846
|
self.readIdentifiable(element, connection)
|
|
2854
2847
|
self.readDiagnosticConnectionFunctionalRequestRefs(element, connection)
|
|
2855
2848
|
connection.setPhysicalRequestRef(self.getChildElementOptionalRefType(element, "PHYSICAL-REQUEST-REF")) \
|
|
2856
2849
|
.setResponseOnEventRef(self.getChildElementOptionalRefType(element, "RESPONSE-REF"))
|
|
2857
|
-
|
|
2858
|
-
def
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2850
|
+
|
|
2851
|
+
def readDiagnosticServiceTableDiagnosticConnectionRefs(self, element: ET.Element, table: DiagnosticServiceTable):
|
|
2852
|
+
for ref in self.getChildElementRefTypeList(element, "DIAGNOSTIC-CONNECTIONS/DIAGNOSTIC-CONNECTION-REF-CONDITIONAL/DIAGNOSTIC-CONNECTION-REF"):
|
|
2853
|
+
table.addDiagnosticConnectionRef(ref)
|
|
2854
|
+
|
|
2855
|
+
def readDiagnosticServiceTable(self, element: ET.Element, table: DiagnosticServiceTable):
|
|
2856
|
+
self.logger.debug("Read DiagnosticServiceTable <%s>" % table.getShortName())
|
|
2862
2857
|
self.readIdentifiable(element, table)
|
|
2858
|
+
self.readDiagnosticServiceTableDiagnosticConnectionRefs(element, table)
|
|
2859
|
+
table.setEcuInstanceRef(self.getChildElementOptionalRefType(element, "ECU-INSTANCE-REF"))
|
|
2863
2860
|
|
|
2864
|
-
def readMultiplexedIPdu(self, element: ET.Element,
|
|
2865
|
-
|
|
2866
|
-
self.logger.debug("Read MultiplexedIPdu %s" % short_name)
|
|
2867
|
-
i_pdu = parent.createMultiplexedIPdu(short_name)
|
|
2861
|
+
def readMultiplexedIPdu(self, element: ET.Element, i_pdu: MultiplexedIPdu):
|
|
2862
|
+
self.logger.debug("Read MultiplexedIPdu <%s>" % i_pdu.getShortName())
|
|
2868
2863
|
self.readIdentifiable(element, i_pdu)
|
|
2869
2864
|
|
|
2870
|
-
def readUserDefinedIPdu(self, element: ET.Element,
|
|
2871
|
-
|
|
2872
|
-
self.logger.debug("Read UserDefinedIPdu %s" % short_name)
|
|
2873
|
-
i_pdu = parent.createUserDefinedIPdu(short_name)
|
|
2865
|
+
def readUserDefinedIPdu(self, element: ET.Element, i_pdu: UserDefinedIPdu):
|
|
2866
|
+
self.logger.debug("Read UserDefinedIPdu <%s>" % i_pdu.getShortName())
|
|
2874
2867
|
self.readIdentifiable(element, i_pdu)
|
|
2875
2868
|
|
|
2876
|
-
def readUserDefinedPdu(self, element: ET.Element,
|
|
2877
|
-
|
|
2878
|
-
self.logger.debug("Read UserDefinedPdu %s" % short_name)
|
|
2879
|
-
pdu = parent.createUserDefinedPdu(short_name)
|
|
2869
|
+
def readUserDefinedPdu(self, element: ET.Element, pdu: UserDefinedPdu):
|
|
2870
|
+
self.logger.debug("Read UserDefinedPdu <%s>" % pdu.getShortName())
|
|
2880
2871
|
self.readIdentifiable(element, pdu)
|
|
2881
2872
|
|
|
2882
|
-
def readGeneralPurposePdu(self, element: ET.Element,
|
|
2883
|
-
|
|
2884
|
-
self.logger.debug("Read GeneralPurposePdu %s" % short_name)
|
|
2885
|
-
pdu = parent.createGeneralPurposePdu(short_name)
|
|
2873
|
+
def readGeneralPurposePdu(self, element: ET.Element, pdu: GeneralPurposePdu):
|
|
2874
|
+
self.logger.debug("Read GeneralPurposePdu <%s>" % pdu.getShortName())
|
|
2886
2875
|
self.readIdentifiable(element, pdu)
|
|
2887
2876
|
|
|
2888
|
-
def readGeneralPurposeIPdu(self, element: ET.Element,
|
|
2889
|
-
|
|
2890
|
-
self.logger.debug("Read GeneralPurposeIPdu %s" % short_name)
|
|
2891
|
-
i_pdu = parent.createGeneralPurposeIPdu(short_name)
|
|
2877
|
+
def readGeneralPurposeIPdu(self, element: ET.Element, i_pdu: GeneralPurposeIPdu):
|
|
2878
|
+
self.logger.debug("Read GeneralPurposeIPdu <%s>" % i_pdu.getShortName())
|
|
2892
2879
|
self.readIdentifiable(element, i_pdu)
|
|
2893
2880
|
|
|
2894
|
-
def readSecureCommunicationPropsSet(self, element: ET.Element,
|
|
2895
|
-
|
|
2896
|
-
self.
|
|
2897
|
-
prop_set = parent.createSecureCommunicationPropsSet(short_name)
|
|
2898
|
-
self.readIdentifiable(element, prop_set)
|
|
2881
|
+
def readSecureCommunicationPropsSet(self, element: ET.Element, props_set: SecureCommunicationPropsSet):
|
|
2882
|
+
self.logger.debug("Read SecureCommunicationPropsSet <%s>" % props_set.getShortName())
|
|
2883
|
+
self.readIdentifiable(element, props_set)
|
|
2899
2884
|
|
|
2900
|
-
def readSoAdRoutingGroup(self, element: ET.Element,
|
|
2901
|
-
|
|
2902
|
-
self.logger.debug("Read SoAdRoutingGroup %s" % short_name)
|
|
2903
|
-
group = parent.createSoAdRoutingGroup(short_name)
|
|
2885
|
+
def readSoAdRoutingGroup(self, element: ET.Element, group: SoAdRoutingGroup):
|
|
2886
|
+
self.logger.debug("Read SoAdRoutingGroup <%s>" % group.getShortName())
|
|
2904
2887
|
self.readIdentifiable(element, group)
|
|
2905
2888
|
|
|
2906
|
-
def readDoIpTpConfig(self, element: ET.Element,
|
|
2907
|
-
|
|
2908
|
-
self.
|
|
2909
|
-
group = parent.createDoIpTpConfig(short_name)
|
|
2910
|
-
self.readIdentifiable(element, group)
|
|
2889
|
+
def readDoIpTpConfig(self, element: ET.Element, config: DoIpTpConfig):
|
|
2890
|
+
self.logger.debug("Read DoIpTpConfig <%s>" % config.getShortName())
|
|
2891
|
+
self.readIdentifiable(element, config)
|
|
2911
2892
|
|
|
2912
2893
|
def readPduToFrameMappings(self, element: ET.Element, parent: Frame):
|
|
2913
2894
|
for child_element in self.findall(element, "PDU-TO-FRAME-MAPPINGS/PDU-TO-FRAME-MAPPING"):
|
|
@@ -2924,43 +2905,30 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2924
2905
|
frame.frameLength = self.getChildElementOptionalNumericalValue(element, "FRAME-LENGTH")
|
|
2925
2906
|
self.readPduToFrameMappings(element, frame)
|
|
2926
2907
|
|
|
2927
|
-
def readLinUnconditionalFrame(self, element: ET.Element,
|
|
2928
|
-
|
|
2929
|
-
self.logger.debug("LinUnconditionalFrame %s" % short_name)
|
|
2930
|
-
frame = parent.createLinUnconditionalFrame(short_name)
|
|
2908
|
+
def readLinUnconditionalFrame(self, element: ET.Element, frame: LinUnconditionalFrame):
|
|
2909
|
+
self.logger.debug("Read LinUnconditionalFrame <%s>" % frame.getShortName())
|
|
2931
2910
|
self.readFrame(element, frame)
|
|
2932
2911
|
|
|
2933
|
-
def readNmPdu(self, element: ET.Element,
|
|
2934
|
-
|
|
2935
|
-
self.logger.debug("readNmPdu %s" % short_name)
|
|
2936
|
-
pdu = parent.createNmPdu(short_name)
|
|
2937
|
-
self.readIdentifiable(element, pdu)
|
|
2912
|
+
def readNmPdu(self, element: ET.Element, pdu: NmPdu):
|
|
2913
|
+
self.logger.debug("Read NmPdu <%s>" % pdu.getShortName())
|
|
2938
2914
|
self.readIPdu(element, pdu)
|
|
2939
2915
|
|
|
2940
|
-
def readNPdu(self, element: ET.Element,
|
|
2941
|
-
|
|
2942
|
-
self.logger.debug("readNPdu %s" % short_name)
|
|
2943
|
-
pdu = parent.createNPdu(short_name)
|
|
2944
|
-
self.readIdentifiable(element, pdu)
|
|
2916
|
+
def readNPdu(self, element: ET.Element, pdu: NPdu):
|
|
2917
|
+
self.logger.debug("Read NPdu <%s>" % pdu.getShortName())
|
|
2945
2918
|
self.readIPdu(element, pdu)
|
|
2946
2919
|
|
|
2947
2920
|
def readIPdu(self, element: ET.Element, pdu: IPdu):
|
|
2921
|
+
self.readIdentifiable(element, pdu)
|
|
2948
2922
|
pdu.setLength(self.getChildElementOptionalNumericalValue(element, "LENGTH"))
|
|
2949
2923
|
|
|
2950
|
-
def readDcmIPdu(self, element: ET.Element,
|
|
2951
|
-
|
|
2952
|
-
self.
|
|
2953
|
-
|
|
2954
|
-
self.readIdentifiable(element, pdu)
|
|
2955
|
-
self.readIPdu(element, pdu)
|
|
2956
|
-
pdu.setDiagPduType(self.getChildElementOptionalLiteral(element, "DIAG-PDU-TYPE"))
|
|
2924
|
+
def readDcmIPdu(self, element: ET.Element, i_pdu: DcmIPdu):
|
|
2925
|
+
self.logger.debug("Read DcmIPdu <%s>" % i_pdu.getShortName())
|
|
2926
|
+
self.readIPdu(element, i_pdu)
|
|
2927
|
+
i_pdu.setDiagPduType(self.getChildElementOptionalLiteral(element, "DIAG-PDU-TYPE"))
|
|
2957
2928
|
|
|
2958
|
-
def readSecuredIPdu(self, element: ET.Element,
|
|
2959
|
-
|
|
2960
|
-
self.
|
|
2961
|
-
pdu = parent.createSecuredIPdu(short_name)
|
|
2962
|
-
self.readIdentifiable(element, pdu)
|
|
2963
|
-
self.readIPdu(element, pdu)
|
|
2929
|
+
def readSecuredIPdu(self, element: ET.Element, i_pdu: SecuredIPdu):
|
|
2930
|
+
self.logger.debug("Read SecuredIPdu <%s>" % i_pdu.getShortName())
|
|
2931
|
+
self.readIPdu(element, i_pdu)
|
|
2964
2932
|
|
|
2965
2933
|
def readNmNode(self, element: ET.Element, nm_node: NmNode):
|
|
2966
2934
|
self.readIdentifiable(element, nm_node)
|
|
@@ -2998,7 +2966,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2998
2966
|
nm_node = parent.readUdpNmNode(self.getShortName(child_element))
|
|
2999
2967
|
self.readUdpNmNode(child_element, nm_node)
|
|
3000
2968
|
else:
|
|
3001
|
-
self.
|
|
2969
|
+
self.raiseError("Unsupported Nm Node <%s>" % tag_name)
|
|
3002
2970
|
|
|
3003
2971
|
def getCanNmClusterCoupling(self, element: ET.Element) -> CanNmClusterCoupling:
|
|
3004
2972
|
coupling = CanNmClusterCoupling()
|
|
@@ -3069,39 +3037,182 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3069
3037
|
elif tag_name == "UDP-NM-CLUSTER":
|
|
3070
3038
|
self.readUdpNmCluster(child_element, parent)
|
|
3071
3039
|
else:
|
|
3072
|
-
self.
|
|
3040
|
+
self.raiseError("Unsupported Nm Cluster <%s>" % tag_name)
|
|
3073
3041
|
|
|
3074
|
-
def readNmConfig(self, element: ET.Element,
|
|
3075
|
-
|
|
3076
|
-
self.logger.debug("NmConfig %s" % short_name)
|
|
3077
|
-
config = parent.createNmConfig(short_name) # type: NmConfig
|
|
3042
|
+
def readNmConfig(self, element: ET.Element, config: NmConfig):
|
|
3043
|
+
self.logger.debug("Read NmConfig <%s>" % config.getShortName())
|
|
3078
3044
|
self.readIdentifiable(element, config)
|
|
3079
3045
|
self.readNmConfigNmClusters(element, config)
|
|
3080
3046
|
self.readNmConfigNmClusterCouplings(element, config)
|
|
3081
3047
|
|
|
3082
|
-
def readCanTpConfig(self, element: ET.Element,
|
|
3083
|
-
|
|
3084
|
-
self.
|
|
3085
|
-
pdu = parent.createCanTpConfig(short_name)
|
|
3086
|
-
self.readIdentifiable(element, pdu)
|
|
3048
|
+
def readCanTpConfig(self, element: ET.Element, config: CanTpConfig):
|
|
3049
|
+
self.logger.debug("Read CanTpConfig <%s>" % config.getShortName())
|
|
3050
|
+
self.readIdentifiable(element, config)
|
|
3087
3051
|
|
|
3088
|
-
def
|
|
3089
|
-
|
|
3090
|
-
self.
|
|
3091
|
-
|
|
3052
|
+
def readLinTpConfig(self, element: ET.Element, config: LinTpConfig):
|
|
3053
|
+
self.logger.debug("Read LinTpConfig <%s>" % config.getShortName())
|
|
3054
|
+
self.readIdentifiable(element, config)
|
|
3055
|
+
|
|
3056
|
+
def readCanFrame(self, element: ET.Element, frame: CanFrame):
|
|
3057
|
+
self.logger.debug("Read CanFrame <%s>" % frame.getShortName())
|
|
3092
3058
|
self.readFrame(element, frame)
|
|
3093
3059
|
|
|
3060
|
+
def readCommunicationController(self, element: ET.Element, controller: CommunicationController):
|
|
3061
|
+
controller.setWakeUpByControllerSupported(self.getChildElementOptionalBooleanValue(element, "WAKE-UP-BY-CONTROLLER-SUPPORTED"))
|
|
3062
|
+
|
|
3063
|
+
def getCanControllerFdConfiguration(self, element: ET.Element, key: str) -> CanControllerFdConfiguration:
|
|
3064
|
+
configuration = None
|
|
3065
|
+
child_element = self.find(element, key)
|
|
3066
|
+
if child_element is not None:
|
|
3067
|
+
configuration = CanControllerFdConfiguration()
|
|
3068
|
+
#TODO: need to implemented
|
|
3069
|
+
return configuration
|
|
3070
|
+
|
|
3071
|
+
def getCanControllerFdConfigurationRequirements(self, element: ET.Element, key: str) -> CanControllerFdConfigurationRequirements:
|
|
3072
|
+
requirements = None
|
|
3073
|
+
child_element = self.find(element, key)
|
|
3074
|
+
if child_element is not None:
|
|
3075
|
+
requirements = CanControllerFdConfigurationRequirements()
|
|
3076
|
+
requirements.setMaxNumberOfTimeQuantaPerBit(self.getChildElementOptionalIntegerValue(child_element, "MAX-NUMBER-OF-TIME-QUANTA-PER-BIT")) \
|
|
3077
|
+
.setMaxSamplePoint(self.getChildElementOptionalFloatValue(child_element, "MAX-SAMPLE-POINT")) \
|
|
3078
|
+
.setMaxSyncJumpWidth(self.getChildElementOptionalFloatValue(child_element, "MAX-SYNC-JUMP-WIDTH")) \
|
|
3079
|
+
.setMaxTrcvDelayCompensationOffset(self.getChildElementOptionalTimeValue(child_element, "MAX-TRCV-DELAY-COMPENSATION-OFFSET")) \
|
|
3080
|
+
.setMinNumberOfTimeQuantaPerBit(self.getChildElementOptionalIntegerValue(child_element, "MIN-NUMBER-OF-TIME-QUANTA-PER-BIT")) \
|
|
3081
|
+
.setMinSamplePoint(self.getChildElementOptionalFloatValue(child_element, "MIN-SAMPLE-POINT")) \
|
|
3082
|
+
.setMinSyncJumpWidth(self.getChildElementOptionalFloatValue(child_element, "MIN-SYNC-JUMP-WIDTH")) \
|
|
3083
|
+
.setMinTrcvDelayCompensationOffset(self.getChildElementOptionalTimeValue(child_element, "MIN-TRCV-DELAY-COMPENSATION-OFFSET")) \
|
|
3084
|
+
.setTxBitRateSwitch(self.getChildElementOptionalBooleanValue(child_element, "TX-BIT-RATE-SWITCH"))
|
|
3085
|
+
return requirements
|
|
3086
|
+
|
|
3087
|
+
def readAbstractCanCommunicationControllerAttributes(self, element: ET.Element, attributes: AbstractCanCommunicationControllerAttributes):
|
|
3088
|
+
attributes.setCanControllerFdAttributes(self.getCanControllerFdConfiguration(element, "CAN-CONTROLLER-FD-CONFIGURATION")) \
|
|
3089
|
+
.setCanControllerFdRequirements(self.getCanControllerFdConfigurationRequirements(element, "CAN-CONTROLLER-FD-REQUIREMENTS"))
|
|
3090
|
+
|
|
3091
|
+
def readCanControllerConfigurationRequirements(self, element: ET.Element, requirements: CanControllerConfigurationRequirements):
|
|
3092
|
+
self.readAbstractCanCommunicationControllerAttributes(element, requirements)
|
|
3093
|
+
requirements.setMaxNumberOfTimeQuantaPerBit(self.getChildElementOptionalIntegerValue(element, "MAX-NUMBER-OF-TIME-QUANTA-PER-BIT")) \
|
|
3094
|
+
.setMaxSamplePoint(self.getChildElementOptionalFloatValue(element, "MAX-SAMPLE-POINT")) \
|
|
3095
|
+
.setMaxSyncJumpWidth(self.getChildElementOptionalFloatValue(element, "MAX-SYNC-JUMP-WIDTH")) \
|
|
3096
|
+
.setMinNumberOfTimeQuantaPerBit(self.getChildElementOptionalIntegerValue(element, "MIN-NUMBER-OF-TIME-QUANTA-PER-BIT")) \
|
|
3097
|
+
.setMinSamplePoint(self.getChildElementOptionalFloatValue(element, "MIN-SAMPLE-POINT")) \
|
|
3098
|
+
.setMinSyncJumpWidth(self.getChildElementOptionalFloatValue(element, "MIN-SYNC-JUMP-WIDTH"))
|
|
3099
|
+
|
|
3100
|
+
def readAbstractCanCommunicationControllerCanControllerAttributes(self, element: ET.SubElement, controller: AbstractCanCommunicationController):
|
|
3101
|
+
for child_element in self.findall(element, "CAN-CONTROLLER-ATTRIBUTES/*"):
|
|
3102
|
+
tag_name = self.getTagName(child_element)
|
|
3103
|
+
if tag_name == "CAN-CONTROLLER-CONFIGURATION-REQUIREMENTS":
|
|
3104
|
+
requirements = CanControllerConfigurationRequirements()
|
|
3105
|
+
self.readCanControllerConfigurationRequirements(child_element, requirements)
|
|
3106
|
+
controller.setCanControllerAttributes(requirements)
|
|
3107
|
+
else:
|
|
3108
|
+
self.notImplemented("Unsupported CanControllerAttributes <%s>" % tag_name)
|
|
3109
|
+
|
|
3110
|
+
def readAbstractCanCommunicationController(self, element: ET.Element, controller: AbstractCanCommunicationController):
|
|
3111
|
+
self.readCommunicationController(element, controller)
|
|
3112
|
+
self.readAbstractCanCommunicationControllerCanControllerAttributes(element, controller)
|
|
3113
|
+
|
|
3094
3114
|
def readCanCommunicationController(self, element: ET.Element, controller: CanCommunicationController):
|
|
3095
3115
|
self.logger.debug("Read CanCommunicationController %s" % controller.getShortName())
|
|
3096
3116
|
self.readIdentifiable(element, controller)
|
|
3117
|
+
child_element = self.find(element, "CAN-COMMUNICATION-CONTROLLER-VARIANTS/CAN-COMMUNICATION-CONTROLLER-CONDITIONAL")
|
|
3118
|
+
if child_element is not None:
|
|
3119
|
+
self.readAbstractCanCommunicationController(child_element, controller)
|
|
3120
|
+
|
|
3121
|
+
def readCouplingPortSchedulerCouplingPortStructuralElement(self, element: ET.Element, item: CouplingPortStructuralElement):
|
|
3122
|
+
self.readIdentifiable(element, item)
|
|
3123
|
+
|
|
3124
|
+
def readCouplingPortFifo(self, element: ET.Element, fifo: CouplingPortFifo):
|
|
3125
|
+
self.readCouplingPortSchedulerCouplingPortStructuralElement(element, fifo)
|
|
3126
|
+
|
|
3127
|
+
def readCouplingPortScheduler(self, element: ET.Element, scheduler: CouplingPortScheduler):
|
|
3128
|
+
self.readCouplingPortSchedulerCouplingPortStructuralElement(element, scheduler)
|
|
3129
|
+
scheduler.setPortScheduler(self.getChildElementOptionalLiteral(element, "PORT-SCHEDULER"))
|
|
3130
|
+
|
|
3131
|
+
def readCouplingPortDetailsCouplingPortStructuralElements(self, item: ET.Element, details: CouplingPortDetails):
|
|
3132
|
+
for child_element in self.findall(item, "COUPLING-PORT-STRUCTURAL-ELEMENTS/*"):
|
|
3133
|
+
tag_name = self.getTagName(child_element)
|
|
3134
|
+
if tag_name == "COUPLING-PORT-FIFO":
|
|
3135
|
+
item = details.createCouplingPortFifo(self.getShortName(child_element))
|
|
3136
|
+
self.readCouplingPortFifo(child_element, item)
|
|
3137
|
+
elif tag_name == "COUPLING-PORT-SCHEDULER":
|
|
3138
|
+
item = details.createCouplingPortScheduler(self.getShortName(child_element))
|
|
3139
|
+
self.readCouplingPortScheduler(child_element, item)
|
|
3140
|
+
else:
|
|
3141
|
+
self.notImplemented("Unsupported CouplingPortStructuralElement <%s>" % tag_name)
|
|
3142
|
+
|
|
3143
|
+
def readEthernetPriorityRegeneration(self, element: ET.Element, regeneration: EthernetPriorityRegeneration):
|
|
3144
|
+
regeneration.setIngressPriority(self.getChildElementOptionalPositiveInteger(element, "INGRESS-PRIORITY")) \
|
|
3145
|
+
.setRegeneratedPriority(self.getChildElementOptionalPositiveInteger(element, "REGENERATED-PRIORITY"))
|
|
3146
|
+
|
|
3147
|
+
def readCouplingPortDetailsEthernetPriorityRegenerations(self, element: ET.Element, details: CouplingPortDetails):
|
|
3148
|
+
for child_element in self.findall(element, "ETHERNET-PRIORITY-REGENERATIONS/*"):
|
|
3149
|
+
tag_name = self.getTagName(child_element)
|
|
3150
|
+
if tag_name == "ETHERNET-PRIORITY-REGENERATION":
|
|
3151
|
+
item = details.createEthernetPriorityRegeneration(self.getShortName(child_element))
|
|
3152
|
+
self.readEthernetPriorityRegeneration(child_element, item)
|
|
3153
|
+
else:
|
|
3154
|
+
self.notImplemented("Unsupported EthernetPriorityRegeneration <%s>" % tag_name)
|
|
3155
|
+
|
|
3156
|
+
def getCouplingPortDetails(self, element: ET.Element, key: str) -> CouplingPortDetails:
|
|
3157
|
+
details = None
|
|
3158
|
+
child_element = self.find(element, key)
|
|
3159
|
+
if child_element is not None:
|
|
3160
|
+
details = CouplingPortDetails()
|
|
3161
|
+
self.readCouplingPortDetailsCouplingPortStructuralElements(child_element, details)
|
|
3162
|
+
self.readCouplingPortDetailsEthernetPriorityRegenerations(child_element, details)
|
|
3163
|
+
details.setLastEgressSchedulerRef(self.getChildElementOptionalRefType(child_element, "LAST-EGRESS-SCHEDULER-REF"))
|
|
3164
|
+
return details
|
|
3165
|
+
|
|
3166
|
+
def readVlanMembership(self, element: ET.Element, membership: VlanMembership):
|
|
3167
|
+
membership.setSendActivity(self.getChildElementOptionalLiteral(element, "SEND-ACTIVITY")) \
|
|
3168
|
+
.setVlanRef(self.getChildElementOptionalRefType(element, "VLAN-REF"))
|
|
3169
|
+
|
|
3170
|
+
def readCouplingPortVlanMemberships(self, element: ET.Element, port: CouplingPort):
|
|
3171
|
+
for child_element in self.findall(element, "VLAN-MEMBERSHIPS/*"):
|
|
3172
|
+
tag_name = self.getTagName(child_element)
|
|
3173
|
+
if tag_name == "VLAN-MEMBERSHIP":
|
|
3174
|
+
membership = VlanMembership()
|
|
3175
|
+
self.readVlanMembership(child_element, membership)
|
|
3176
|
+
port.addVlanMembership(membership)
|
|
3177
|
+
else:
|
|
3178
|
+
self.notImplemented("Unsupported VlanMembership <%s>" % tag_name)
|
|
3179
|
+
|
|
3180
|
+
def readCouplingPort(self, element: ET.Element, port: CouplingPort):
|
|
3181
|
+
self.readIdentifiable(element, port)
|
|
3182
|
+
port.setCouplingPortDetails(self.getCouplingPortDetails(element, "COUPLING-PORT-DETAILS")) \
|
|
3183
|
+
.setMacAddressVlanAssignments(self.getChildElementOptionalLiteral(element, "MAC-LAYER-TYPE"))
|
|
3184
|
+
self.readCouplingPortVlanMemberships(element, port)
|
|
3185
|
+
|
|
3186
|
+
def readEthernetCommunicationControllerCouplingPorts(self, element: ET.Element, controller: EthernetCommunicationController):
|
|
3187
|
+
for child_element in self.findall(element, "COUPLING-PORTS/*"):
|
|
3188
|
+
tag_name = self.getTagName(child_element)
|
|
3189
|
+
if (tag_name == "COUPLING-PORT"):
|
|
3190
|
+
port = controller.createCouplingPort(self.getShortName(child_element))
|
|
3191
|
+
self.readCouplingPort(child_element, port)
|
|
3192
|
+
else:
|
|
3193
|
+
self.notImplemented("Unsupported Coupling Port <%s>" % tag_name)
|
|
3097
3194
|
|
|
3098
3195
|
def readEthernetCommunicationController(self, element: ET.Element, controller: EthernetCommunicationController):
|
|
3099
3196
|
self.logger.debug("Read EthernetCommunicationController %s" % controller.getShortName())
|
|
3100
3197
|
self.readIdentifiable(element, controller)
|
|
3198
|
+
child_element = self.find(element, "ETHERNET-COMMUNICATION-CONTROLLER-VARIANTS/ETHERNET-COMMUNICATION-CONTROLLER-CONDITIONAL")
|
|
3199
|
+
if child_element is not None:
|
|
3200
|
+
self.readCommunicationController(child_element, controller)
|
|
3201
|
+
self.readEthernetCommunicationControllerCouplingPorts(child_element, controller)
|
|
3202
|
+
|
|
3203
|
+
def readLinCommunicationController(self, element: ET.Element, controller: LinCommunicationController):
|
|
3204
|
+
self.readCommunicationController(element, controller)
|
|
3205
|
+
controller.setProtocolVersion(self.getChildElementOptionalLiteral(element, "PROTOCOL-VERSION"))
|
|
3101
3206
|
|
|
3102
3207
|
def readLinMaster(self, element: ET.Element, controller: LinMaster):
|
|
3103
3208
|
self.logger.debug("Read LinMaster %s" % controller.getShortName())
|
|
3104
3209
|
self.readIdentifiable(element, controller)
|
|
3210
|
+
child_element = self.find(element, "LIN-MASTER-VARIANTS/LIN-MASTER-CONDITIONAL")
|
|
3211
|
+
if child_element is not None:
|
|
3212
|
+
self.readLinCommunicationController(child_element, controller)
|
|
3213
|
+
controller.setTimeBase(self.getChildElementOptionalTimeValue(child_element, "TIME-BASE")) \
|
|
3214
|
+
.setTimeBaseJitter(self.getChildElementOptionalTimeValue(child_element, "TIME-BASE-JITTER"))
|
|
3215
|
+
|
|
3105
3216
|
|
|
3106
3217
|
def readEcuInstanceCommControllers(self, element: ET.Element, instance: EcuInstance):
|
|
3107
3218
|
self.logger.debug("readEcuInstanceCommControllers %s" % instance.getShortName())
|
|
@@ -3117,7 +3228,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3117
3228
|
controller = instance.createLinMaster(self.getShortName(child_element))
|
|
3118
3229
|
self.readLinMaster(child_element, controller)
|
|
3119
3230
|
else:
|
|
3120
|
-
self.
|
|
3231
|
+
self.raiseError("Unsupported Communication Controller <%s>" % tag_name)
|
|
3121
3232
|
|
|
3122
3233
|
def readCommConnectorPort(self, element: ET.Element, port: CommConnectorPort):
|
|
3123
3234
|
self.readIdentifiable(element, port)
|
|
@@ -3128,9 +3239,13 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3128
3239
|
|
|
3129
3240
|
def readIPduPort(self, element: ET.Element, port: IPduPort):
|
|
3130
3241
|
self.readCommConnectorPort(element, port)
|
|
3242
|
+
port.setKeyId(self.getChildElementOptionalPositiveInteger(element, "KEY-ID")) \
|
|
3243
|
+
.setRxSecurityVerification(self.getChildElementOptionalBooleanValue(element, "RX-SECURITY-VERIFICATION")) \
|
|
3244
|
+
.setUseAuthDataFreshness(self.getChildElementOptionalBooleanValue(element, "USE-AUTH-DATA-FRESHNESS")) \
|
|
3131
3245
|
|
|
3132
3246
|
def readISignalPort(self, element: ET.Element, port: ISignalPort):
|
|
3133
3247
|
self.readCommConnectorPort(element, port)
|
|
3248
|
+
port.setTimeout(self.getChildElementOptionalTimeValue(element, "TIMEOUT"))
|
|
3134
3249
|
|
|
3135
3250
|
def readCommunicationConnectorEcuCommPortInstances(self, element: ET.Element, connector: CommunicationConnector):
|
|
3136
3251
|
self.logger.debug("read EcuCommPortInstances of CommunicationConnector %s" % connector.getShortName())
|
|
@@ -3146,18 +3261,20 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3146
3261
|
port = connector.createISignalPort(self.getShortName(child_element))
|
|
3147
3262
|
self.readISignalPort(child_element, port)
|
|
3148
3263
|
else:
|
|
3149
|
-
self.
|
|
3264
|
+
self.raiseError("Unsupported EcuCommPortInstances <%s>" % tag_name)
|
|
3150
3265
|
|
|
3151
3266
|
def readCommunicationConnector(self, element: ET.Element, connector: CommunicationConnector):
|
|
3152
3267
|
self.readIdentifiable(element, connector)
|
|
3153
3268
|
connector.setCommControllerRef(self.getChildElementOptionalRefType(element, "COMM-CONTROLLER-REF"))
|
|
3154
3269
|
self.readCommunicationConnectorEcuCommPortInstances(element, connector)
|
|
3270
|
+
connector.setPncGatewayType(self.getChildElementOptionalLiteral(element, "PNC-GATEWAY-TYPE"))
|
|
3155
3271
|
|
|
3156
3272
|
def readCanCommunicationConnector(self, element: ET.Element, connector: CanCommunicationConnector):
|
|
3157
3273
|
self.readCommunicationConnector(element, connector)
|
|
3158
3274
|
|
|
3159
3275
|
def readEthernetCommunicationConnector(self, element: ET.Element, connector: EthernetCommunicationConnector):
|
|
3160
3276
|
self.readCommunicationConnector(element, connector)
|
|
3277
|
+
connector.setMaximumTransmissionUnit(self.getChildElementOptionalPositiveInteger(element, "MAXIMUM-TRANSMISSION-UNIT"))
|
|
3161
3278
|
|
|
3162
3279
|
def readLinCommunicationConnector(self, element: ET.Element, connector: LinCommunicationConnector):
|
|
3163
3280
|
self.readCommunicationConnector(element, connector)
|
|
@@ -3176,13 +3293,16 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3176
3293
|
connector = instance.createLinCommunicationConnector(self.getShortName(child_element))
|
|
3177
3294
|
self.readLinCommunicationConnector(child_element, connector)
|
|
3178
3295
|
else:
|
|
3179
|
-
self.
|
|
3296
|
+
self.notImplemented("Unsupported Communication Connector <%s>" % tag_name)
|
|
3180
3297
|
|
|
3181
|
-
def
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3298
|
+
def readEcuInstanceAssociatedComIPduGroupRefs(self, element: ET.Element, instance: EcuInstance):
|
|
3299
|
+
for ref in self.getChildElementRefTypeList(element, "ASSOCIATED-COM-I-PDU-GROUP-REFS/ASSOCIATED-COM-I-PDU-GROUP-REF"):
|
|
3300
|
+
instance.addAssociatedComIPduGroupRef(ref)
|
|
3301
|
+
|
|
3302
|
+
def readEcuInstance(self, element: ET.Element, instance: EcuInstance):
|
|
3303
|
+
self.logger.debug("Read EcuInstance <%s>" % instance.getShortName())
|
|
3185
3304
|
self.readIdentifiable(element, instance)
|
|
3305
|
+
self.readEcuInstanceAssociatedComIPduGroupRefs(element, instance)
|
|
3186
3306
|
instance.setComConfigurationGwTimeBase(self.getChildElementOptionalTimeValue(element, "COM-CONFIGURATION-GW-TIME-BASE")) \
|
|
3187
3307
|
.setComConfigurationRxTimeBase(self.getChildElementOptionalTimeValue(element, "COM-CONFIGURATION-RX-TIME-BASE")) \
|
|
3188
3308
|
.setComConfigurationTxTimeBase(self.getChildElementOptionalTimeValue(element, "COM-CONFIGURATION-TX-TIME-BASE")) \
|
|
@@ -3212,30 +3332,34 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3212
3332
|
mappings.append(mapping)
|
|
3213
3333
|
return mappings
|
|
3214
3334
|
|
|
3215
|
-
|
|
3335
|
+
def getTargetIPduRef(self, element, key: str) -> TargetIPduRef:
|
|
3336
|
+
i_pdu_ref = None
|
|
3337
|
+
child_element = self.find(element, key)
|
|
3338
|
+
if child_element is not None:
|
|
3339
|
+
i_pdu_ref = TargetIPduRef()
|
|
3340
|
+
i_pdu_ref.setTargetIPdu(self.getChildElementOptionalRefType(child_element, "TARGET-I-PDU-REF"))
|
|
3341
|
+
return i_pdu_ref
|
|
3342
|
+
|
|
3216
3343
|
def getIPduMappings(self, element: ET.Element) -> List[IPduMapping]:
|
|
3217
3344
|
mappings = []
|
|
3218
|
-
for child_element in self.findall(element,
|
|
3345
|
+
for child_element in self.findall(element, "I-PDU-MAPPINGS/I-PDU-MAPPING"):
|
|
3219
3346
|
mapping = IPduMapping()
|
|
3220
|
-
mapping.
|
|
3221
|
-
|
|
3347
|
+
mapping.setSourceIpduRef(self.getChildElementOptionalRefType(child_element, "SOURCE-I-PDU-REF")) \
|
|
3348
|
+
.setTargetIPdu(self.getTargetIPduRef(child_element, "TARGET-I-PDU"))
|
|
3222
3349
|
mappings.append(mapping)
|
|
3223
3350
|
return mappings
|
|
3224
|
-
'''
|
|
3225
3351
|
|
|
3226
|
-
def readGateway(self, element: ET.Element,
|
|
3227
|
-
|
|
3228
|
-
self.logger.debug("Gateway %s" % short_name)
|
|
3229
|
-
gateway = parent.createGateway(short_name)
|
|
3352
|
+
def readGateway(self, element: ET.Element, gateway: Gateway):
|
|
3353
|
+
self.logger.debug("Read Gateway <%s>" % gateway.getShortName())
|
|
3230
3354
|
self.readIdentifiable(element, gateway)
|
|
3231
|
-
gateway.
|
|
3355
|
+
gateway.setEcuRef(self.getChildElementOptionalRefType(element, "ECU-REF"))
|
|
3356
|
+
for mapping in self.getIPduMappings(element):
|
|
3357
|
+
gateway.addIPduMapping(mapping)
|
|
3232
3358
|
for mapping in self.getISignalMappings(element):
|
|
3233
3359
|
gateway.addSignalMapping(mapping)
|
|
3234
3360
|
|
|
3235
|
-
def readISignal(self, element: ET.Element,
|
|
3236
|
-
|
|
3237
|
-
self.logger.debug("ISignal %s" % short_name)
|
|
3238
|
-
signal = parent.createISignal(short_name)
|
|
3361
|
+
def readISignal(self, element: ET.Element, signal: ISignal):
|
|
3362
|
+
self.logger.debug("Read ISignal <%s>" % signal.getShortName())
|
|
3239
3363
|
self.readIdentifiable(element, signal)
|
|
3240
3364
|
signal.setDataTypePolicy(self.getChildElementOptionalLiteral(element, "DATA-TYPE-POLICY")) \
|
|
3241
3365
|
.setISignalType(self.getChildElementOptionalLiteral(element, "I-SIGNAL-TYPE")) \
|
|
@@ -3251,10 +3375,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3251
3375
|
parent.addEcucValueRef(ref)
|
|
3252
3376
|
self.logger.debug("EcucValue <%s> of EcucValueCollection <%s> has been added", ref.value, parent.getShortName())
|
|
3253
3377
|
|
|
3254
|
-
def readEcucValueCollection(self, element: ET.Element,
|
|
3255
|
-
|
|
3256
|
-
self.logger.debug("EcucValueCollection %s" % short_name)
|
|
3257
|
-
collection = parent.createEcucValueCollection(short_name)
|
|
3378
|
+
def readEcucValueCollection(self, element: ET.Element, collection: EcucValueCollection):
|
|
3379
|
+
self.logger.debug("Read EcucValueCollection <%s>" % collection.getShortName())
|
|
3258
3380
|
self.readIdentifiable(element, collection)
|
|
3259
3381
|
collection.setEcuExtractRef(self.getChildElementOptionalRefType(element, "ECU-EXTRACT-REF"))
|
|
3260
3382
|
self.readEcucValueCollectionEcucValues(element, collection)
|
|
@@ -3359,20 +3481,16 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3359
3481
|
else:
|
|
3360
3482
|
self.notImplemented("Unsupported Container %s" % tag_name)
|
|
3361
3483
|
|
|
3362
|
-
def readEcucModuleConfigurationValues(self, element: ET.Element,
|
|
3363
|
-
|
|
3364
|
-
self.logger.debug("EcucModuleConfigurationValues %s" % short_name)
|
|
3365
|
-
values = parent.createEcucModuleConfigurationValues(short_name)
|
|
3484
|
+
def readEcucModuleConfigurationValues(self, element: ET.Element, values: EcucModuleConfigurationValues):
|
|
3485
|
+
self.logger.debug("Read EcucModuleConfigurationValues %s" % values.getShortName())
|
|
3366
3486
|
self.readIdentifiable(element, values)
|
|
3367
3487
|
values.setDefinitionRef(self.getChildElementOptionalRefType(element, "DEFINITION-REF"))
|
|
3368
3488
|
values.setImplementationConfigVariant(self.getChildElementOptionalLiteral(element, "IMPLEMENTATION-CONFIG-VARIANT"))
|
|
3369
3489
|
values.setModuleDescriptionRef(self.getChildElementOptionalRefType(element, "MODULE-DESCRIPTION-REF"))
|
|
3370
3490
|
self.readEcucModuleConfigurationValuesContainers(element, values)
|
|
3371
3491
|
|
|
3372
|
-
def
|
|
3373
|
-
|
|
3374
|
-
self.logger.debug("read PhysicalDimensions %s" % short_name)
|
|
3375
|
-
dimension = parent.createPhysicalDimension(short_name)
|
|
3492
|
+
def readPhysicalDimension(self, element: ET.Element, dimension: PhysicalDimension):
|
|
3493
|
+
self.logger.debug("Read PhysicalDimension <%s>" % dimension.getShortName())
|
|
3376
3494
|
self.readIdentifiable(element, dimension)
|
|
3377
3495
|
dimension.setCurrentExp(self.getChildElementOptionalNumericalValue(element, "CURRENT-EXP")) \
|
|
3378
3496
|
.setLengthExp(self.getChildElementOptionalNumericalValue(element, "LENGTH-EXP")) \
|
|
@@ -3389,27 +3507,21 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3389
3507
|
return mappings
|
|
3390
3508
|
'''
|
|
3391
3509
|
|
|
3392
|
-
def readISignalGroup(self, element: ET.Element,
|
|
3393
|
-
|
|
3394
|
-
self.logger.debug("ISignalGroup %s" % short_name)
|
|
3395
|
-
group = parent.createISignalGroup(short_name)
|
|
3510
|
+
def readISignalGroup(self, element: ET.Element, group: ISignalGroup):
|
|
3511
|
+
self.logger.debug("Read ISignalGroup <%s>" % group.getShortName())
|
|
3396
3512
|
self.readIdentifiable(element, group)
|
|
3397
3513
|
for ref_type in self.getChildElementRefTypeList(element, "I-SIGNAL-REFS/I-SIGNAL-REF"):
|
|
3398
3514
|
group.addISignalRef(ref_type)
|
|
3399
3515
|
group.systemSignalGroupRef = self.getChildElementOptionalRefType(element, "SYSTEM-SIGNAL-GROUP-REF")
|
|
3400
3516
|
|
|
3401
|
-
def readSystemSignal(self, element: ET.Element,
|
|
3402
|
-
|
|
3403
|
-
self.logger.debug("SystemSignal %s" % short_name)
|
|
3404
|
-
signal = parent.createSystemSignal(short_name)
|
|
3517
|
+
def readSystemSignal(self, element: ET.Element, signal: SystemSignal):
|
|
3518
|
+
self.logger.debug("Read SystemSignal <%s>" % signal.getShortName())
|
|
3405
3519
|
self.readIdentifiable(element, signal)
|
|
3406
3520
|
signal.setDynamicLength(self.getChildElementOptionalBooleanValue(element, "DYNAMIC-LENGTH")) \
|
|
3407
3521
|
.setPhysicalProps(self.getSwDataDefProps(element, "PHYSICAL-PROPS"))
|
|
3408
3522
|
|
|
3409
|
-
def readSystemSignalGroup(self, element: ET.Element,
|
|
3410
|
-
|
|
3411
|
-
self.logger.debug("SystemSignalGroup %s" % short_name)
|
|
3412
|
-
group = parent.createSystemSignalGroup(short_name)
|
|
3523
|
+
def readSystemSignalGroup(self, element: ET.Element, group: SystemSignalGroup):
|
|
3524
|
+
self.logger.debug("Read SystemSignalGroup <%s>" % group.getShortName())
|
|
3413
3525
|
self.readIdentifiable(element, group)
|
|
3414
3526
|
for ref_type in self.getChildElementRefTypeList(element, "SYSTEM-SIGNAL-REFS/SYSTEM-SIGNAL-REF"):
|
|
3415
3527
|
group.addSystemSignalRefs(ref_type)
|
|
@@ -3499,10 +3611,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3499
3611
|
.setTransmissionModeDeclaration(self.getTransmissionModeDeclaration(child_element, "TRANSMISSION-MODE-DECLARATION"))
|
|
3500
3612
|
return timing
|
|
3501
3613
|
|
|
3502
|
-
def readISignalIPdu(self, element: ET.Element,
|
|
3503
|
-
|
|
3504
|
-
self.logger.debug("ISignalIPdu %s" % short_name)
|
|
3505
|
-
i_pdu = parent.createISignalIPdu(short_name)
|
|
3614
|
+
def readISignalIPdu(self, element: ET.Element, i_pdu: ISignalIPdu):
|
|
3615
|
+
self.logger.debug("Read ISignalIPdu <%s>" % i_pdu.getShortName())
|
|
3506
3616
|
self.readIdentifiable(element, i_pdu)
|
|
3507
3617
|
i_pdu.setLength(self.getChildElementOptionalNumericalValue(element, "LENGTH")) \
|
|
3508
3618
|
.setIPduTimingSpecification(self.getISignalIPduIPduTimingSpecification(element))
|
|
@@ -3515,13 +3625,11 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3515
3625
|
ref_types.append(self.getChildElementOptionalRefType(child_element, "I-SIGNAL-I-PDU-REF"))
|
|
3516
3626
|
return ref_types
|
|
3517
3627
|
|
|
3518
|
-
def readISignalIPduGroup(self, element: ET.Element,
|
|
3519
|
-
|
|
3520
|
-
self.logger.debug("ISignalIPduGroup %s" % short_name)
|
|
3521
|
-
group = parent.createISignalIPduGroup(short_name)
|
|
3628
|
+
def readISignalIPduGroup(self, element: ET.Element, group: ISignalIPduGroup):
|
|
3629
|
+
self.logger.debug("Read ISignalIPduGroup <%s>" % group.getShortName())
|
|
3522
3630
|
self.readIdentifiable(element, group)
|
|
3523
|
-
group.
|
|
3524
|
-
|
|
3631
|
+
group.setCommunicationDirection(self.getChildElementOptionalLiteral(element, "COMMUNICATION-DIRECTION")) \
|
|
3632
|
+
.setCommunicationMode(self.getChildElementOptionalLiteral(element, "COMMUNICATION-MODE"))
|
|
3525
3633
|
for ref_type in self.getChildElementRefTypeList(element, "CONTAINED-I-SIGNAL-I-PDU-GROUP-REFS/CONTAINED-I-SIGNAL-I-PDU-GROUP-REF"):
|
|
3526
3634
|
group.addContainedISignalIPduGroupRef(ref_type)
|
|
3527
3635
|
for ref_type in self.getISignalIPduRefs(element):
|
|
@@ -3590,32 +3698,27 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3590
3698
|
self.readIdentifiable(child_element, prototype)
|
|
3591
3699
|
prototype.setFlatMapRef(self.getChildElementOptionalRefType(child_element, "FLAT-MAP-REF")) \
|
|
3592
3700
|
.setSoftwareCompositionTRef(self.getChildElementOptionalRefType(child_element, "SOFTWARE-COMPOSITION-TREF"))
|
|
3593
|
-
|
|
3701
|
+
|
|
3702
|
+
def readSystemFibexElementRefs(self, element: ET.Element, system: System):
|
|
3703
|
+
for ref in self.getChildElementRefTypeList(element, "FIBEX-ELEMENTS/FIBEX-ELEMENT-REF-CONDITIONAL/FIBEX-ELEMENT-REF"):
|
|
3704
|
+
system.addFibexElementRef(ref)
|
|
3594
3705
|
|
|
3595
|
-
def readSystem(self, element: ET.Element,
|
|
3596
|
-
|
|
3597
|
-
self.logger.debug("Read System %s" % short_name)
|
|
3598
|
-
system = parent.createSystem(short_name)
|
|
3706
|
+
def readSystem(self, element: ET.Element, system: System):
|
|
3707
|
+
self.logger.debug("Read System <%s>" % system.getShortName())
|
|
3599
3708
|
self.readIdentifiable(element, system)
|
|
3600
|
-
|
|
3601
3709
|
system.setEcuExtractVersion(self.getChildElementOptionalLiteral(element, "ECU-EXTRACT-VERSION"))
|
|
3602
|
-
|
|
3603
|
-
system.addFibexElementRef(self.getChildElementOptionalRefType(child_element, "FIBEX-ELEMENT-REF"))
|
|
3710
|
+
self.readSystemFibexElementRefs(element, system)
|
|
3604
3711
|
self.readSystemMappings(element, system)
|
|
3605
3712
|
self.readRootSwCompositionPrototype(element, system)
|
|
3606
3713
|
system.setSystemVersion(self.getChildElementOptionalRevisionLabelString(element, "SYSTEM-VERSION"))
|
|
3607
3714
|
|
|
3608
|
-
def readGenericEthernetFrame(self, element: ET.Element,
|
|
3609
|
-
|
|
3610
|
-
self.logger.debug("Read EthernetFrame %s" % short_name)
|
|
3611
|
-
frame = parent.createGenericEthernetFrame(short_name)
|
|
3715
|
+
def readGenericEthernetFrame(self, element: ET.Element, frame: GenericEthernetFrame):
|
|
3716
|
+
self.logger.debug("Read GenericEthernetFrame <%s>" % frame.getShortName())
|
|
3612
3717
|
self.readFrame(element, frame)
|
|
3613
3718
|
|
|
3614
|
-
def readLifeCycleInfoSet(self, element: ET.Element,
|
|
3615
|
-
|
|
3616
|
-
self.
|
|
3617
|
-
frame = parent.createLifeCycleInfoSet(short_name)
|
|
3618
|
-
self.readIdentifiable(element, frame)
|
|
3719
|
+
def readLifeCycleInfoSet(self, element: ET.Element, info_set: LifeCycleInfoSet):
|
|
3720
|
+
self.logger.debug("Read LifeCycleInfoSet <%s>" % info_set.getShortName())
|
|
3721
|
+
self.readIdentifiable(element, info_set)
|
|
3619
3722
|
|
|
3620
3723
|
def readFlatInstanceDescriptor(self, element: ET.Element, desc: FlatInstanceDescriptor):
|
|
3621
3724
|
self.logger.debug("Read LifeCycleInfoSet %s" % desc.getShortName())
|
|
@@ -3632,10 +3735,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3632
3735
|
else:
|
|
3633
3736
|
self.notImplemented("Unsupported Flat Map Instances <%s>" % tag_name)
|
|
3634
3737
|
|
|
3635
|
-
def readFlatMap(self, element: ET.Element,
|
|
3636
|
-
|
|
3637
|
-
self.logger.debug("Read FlatMap %s" % short_name)
|
|
3638
|
-
map = parent.createFlatMap(short_name)
|
|
3738
|
+
def readFlatMap(self, element: ET.Element, map: FlatMap):
|
|
3739
|
+
self.logger.debug("Read FlatMap <%s>" % map.getShortName())
|
|
3639
3740
|
self.readIdentifiable(element, map)
|
|
3640
3741
|
self.readFlatMapInstances(element, map)
|
|
3641
3742
|
|
|
@@ -3663,156 +3764,221 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3663
3764
|
else:
|
|
3664
3765
|
self.notImplemented("Unsupported PortInterfaceMapping <%s>" % tag_name)
|
|
3665
3766
|
|
|
3666
|
-
def readPortInterfaceMappingSet(self, element: ET.Element,
|
|
3667
|
-
|
|
3668
|
-
self.logger.debug("Read PortInterfaceMappingSet %s" % short_name)
|
|
3669
|
-
mapping_set = parent.createPortInterfaceMappingSet(short_name)
|
|
3767
|
+
def readPortInterfaceMappingSet(self, element: ET.Element, mapping_set: PortInterfaceMappingSet):
|
|
3768
|
+
self.logger.debug("Read PortInterfaceMappingSet %s" % mapping_set.getShortName())
|
|
3670
3769
|
self.readIdentifiable(element, mapping_set)
|
|
3671
3770
|
self.readPortInterfaceMappings(element, mapping_set)
|
|
3672
3771
|
|
|
3673
3772
|
def readARPackageElements(self, element: ET.Element, parent: ARPackage):
|
|
3674
3773
|
for child_element in self.findall(element, "ELEMENTS/*"):
|
|
3675
|
-
tag_name = self.getTagName(child_element
|
|
3774
|
+
tag_name = self.getTagName(child_element)
|
|
3676
3775
|
if tag_name == "COMPOSITION-SW-COMPONENT-TYPE":
|
|
3677
|
-
self.
|
|
3776
|
+
type = parent.createCompositionSwComponentType(self.getShortName(child_element))
|
|
3777
|
+
self.readCompositionSwComponentType(child_element, type)
|
|
3678
3778
|
elif tag_name == "COMPLEX-DEVICE-DRIVER-SW-COMPONENT-TYPE":
|
|
3679
|
-
self.
|
|
3779
|
+
type = parent.createComplexDeviceDriverSwComponentType(self.getShortName(child_element))
|
|
3780
|
+
self.readComplexDeviceDriverSwComponentType(child_element, type)
|
|
3680
3781
|
elif tag_name == "SWC-IMPLEMENTATION":
|
|
3681
|
-
self.
|
|
3782
|
+
impl = parent.createSwcImplementation(self.getShortName(child_element))
|
|
3783
|
+
self.readSwcImplementation(child_element, impl)
|
|
3682
3784
|
elif tag_name == "APPLICATION-PRIMITIVE-DATA-TYPE":
|
|
3683
|
-
self.
|
|
3785
|
+
data_type = parent.createApplicationPrimitiveDataType(self.getShortName(child_element))
|
|
3786
|
+
self.readApplicationPrimitiveDataType(child_element, data_type)
|
|
3684
3787
|
elif tag_name == "APPLICATION-RECORD-DATA-TYPE":
|
|
3685
|
-
self.
|
|
3788
|
+
data_type = parent.createApplicationRecordDataType(self.getShortName(child_element))
|
|
3789
|
+
self.readApplicationRecordDataType(child_element, data_type)
|
|
3686
3790
|
elif tag_name == "SW-BASE-TYPE":
|
|
3687
|
-
self.
|
|
3791
|
+
data_type = parent.createSwBaseType(self.getShortName(child_element))
|
|
3792
|
+
self.readSwBaseType(child_element, data_type)
|
|
3688
3793
|
elif tag_name == "COMPU-METHOD":
|
|
3689
|
-
self.
|
|
3794
|
+
compu_method = parent.createCompuMethod(self.getShortName(child_element))
|
|
3795
|
+
self.readCompuMethod(child_element, compu_method)
|
|
3690
3796
|
elif tag_name == "CONSTANT-SPECIFICATION":
|
|
3691
|
-
self.
|
|
3797
|
+
spec = parent.createConstantSpecification(self.getShortName(child_element))
|
|
3798
|
+
self.readConstantSpecification(child_element, spec)
|
|
3692
3799
|
elif tag_name == "DATA-CONSTR":
|
|
3693
|
-
self.
|
|
3800
|
+
constr = parent.createDataConstr(self.getShortName(child_element))
|
|
3801
|
+
self.readDataConstr(child_element, constr)
|
|
3694
3802
|
elif tag_name == "END-TO-END-PROTECTION-SET":
|
|
3695
|
-
self.
|
|
3803
|
+
protection_set = parent.createEndToEndProtectionSet(self.getShortName(child_element))
|
|
3804
|
+
self.readEndToEndProtectionSet(child_element, protection_set)
|
|
3696
3805
|
elif tag_name == "SENDER-RECEIVER-INTERFACE":
|
|
3697
|
-
self.
|
|
3806
|
+
sr_interface = parent.createSenderReceiverInterface(self.getShortName(child_element))
|
|
3807
|
+
self.readSenderReceiverInterface(child_element, sr_interface)
|
|
3698
3808
|
elif tag_name == "UNIT":
|
|
3699
|
-
self.
|
|
3809
|
+
unit = parent.createUnit(self.getShortName(child_element))
|
|
3810
|
+
self.readUnit(child_element, unit)
|
|
3700
3811
|
elif tag_name == "BSW-MODULE-DESCRIPTION":
|
|
3701
|
-
self.
|
|
3812
|
+
desc = parent.createBswModuleDescription(self.getShortName(child_element))
|
|
3813
|
+
self.readBswModuleDescription(child_element, desc)
|
|
3702
3814
|
elif tag_name == "BSW-MODULE-ENTRY":
|
|
3703
|
-
self.
|
|
3815
|
+
entry = parent.createBswModuleEntry(self.getShortName(child_element))
|
|
3816
|
+
self.readBswModuleEntry(child_element, entry)
|
|
3704
3817
|
elif tag_name == "SWC-BSW-MAPPING":
|
|
3705
|
-
self.
|
|
3818
|
+
mapping = parent.createSwcBswMapping(self.getShortName(child_element))
|
|
3819
|
+
self.readSwcBswMapping(child_element, mapping)
|
|
3706
3820
|
elif tag_name == "BSW-IMPLEMENTATION":
|
|
3707
|
-
self.
|
|
3821
|
+
impl = parent.createBswImplementation(self.getShortName(child_element))
|
|
3822
|
+
self.readBswImplementation(child_element, impl)
|
|
3708
3823
|
elif tag_name == "IMPLEMENTATION-DATA-TYPE":
|
|
3709
|
-
self.
|
|
3824
|
+
data_type = parent.createImplementationDataType(self.getShortName(child_element))
|
|
3825
|
+
self.readImplementationDataType(child_element, data_type)
|
|
3710
3826
|
elif tag_name == "CLIENT-SERVER-INTERFACE":
|
|
3711
|
-
self.
|
|
3827
|
+
cs_interface = parent.createClientServerInterface(self.getShortName(child_element))
|
|
3828
|
+
self.readClientServerInterface(child_element, cs_interface)
|
|
3712
3829
|
elif tag_name == "APPLICATION-SW-COMPONENT-TYPE":
|
|
3713
|
-
self.
|
|
3830
|
+
sw_component = parent.createApplicationSwComponentType(self.getShortName(child_element))
|
|
3831
|
+
self.readApplicationSwComponentType(child_element, sw_component)
|
|
3714
3832
|
elif tag_name == "ECU-ABSTRACTION-SW-COMPONENT-TYPE":
|
|
3715
|
-
self.
|
|
3833
|
+
sw_component = parent.createEcuAbstractionSwComponentType(self.getShortName(child_element))
|
|
3834
|
+
self.readEcuAbstractionSwComponentType(child_element, sw_component)
|
|
3716
3835
|
elif tag_name == "APPLICATION-ARRAY-DATA-TYPE":
|
|
3717
|
-
self.
|
|
3836
|
+
data_type = parent.createApplicationArrayDataType(self.getShortName(child_element))
|
|
3837
|
+
self.readApplicationArrayDataType(child_element, data_type)
|
|
3718
3838
|
elif tag_name == "SW-RECORD-LAYOUT":
|
|
3719
|
-
|
|
3720
|
-
self.readSwRecordLayout(child_element,
|
|
3839
|
+
layout = parent.createSwRecordLayout(self.getShortName(child_element))
|
|
3840
|
+
self.readSwRecordLayout(child_element, layout)
|
|
3721
3841
|
elif tag_name == "SW-ADDR-METHOD":
|
|
3722
|
-
self.
|
|
3842
|
+
method = parent.createSwAddrMethod(self.getShortName(child_element))
|
|
3843
|
+
self.readSwAddrMethod(child_element, method)
|
|
3723
3844
|
elif tag_name == "TRIGGER-INTERFACE":
|
|
3724
|
-
self.
|
|
3845
|
+
trigger_if = parent.createTriggerInterface(self.getShortName(child_element))
|
|
3846
|
+
self.readTriggerInterface(child_element, trigger_if)
|
|
3725
3847
|
elif tag_name == "SERVICE-SW-COMPONENT-TYPE":
|
|
3726
|
-
self.
|
|
3848
|
+
sw_component = parent.createServiceSwComponentType(self.getShortName(child_element))
|
|
3849
|
+
self.readServiceSwComponentType(child_element, sw_component)
|
|
3727
3850
|
elif tag_name == "SENSOR-ACTUATOR-SW-COMPONENT-TYPE":
|
|
3728
|
-
self.
|
|
3851
|
+
sw_component = parent.createSensorActuatorSwComponentType(self.getShortName(child_element))
|
|
3852
|
+
self.readSensorActuatorSwComponentType(child_element, sw_component)
|
|
3729
3853
|
elif tag_name == "DATA-TYPE-MAPPING-SET":
|
|
3730
|
-
self.
|
|
3854
|
+
mapping_set = parent.createDataTypeMappingSet(self.getShortName(child_element))
|
|
3855
|
+
self.readDataTypeMappingSet(child_element, mapping_set)
|
|
3731
3856
|
elif tag_name == "MODE-DECLARATION-GROUP":
|
|
3732
|
-
self.
|
|
3857
|
+
group = parent.createModeDeclarationGroup(self.getShortName(child_element))
|
|
3858
|
+
self.readModeDeclarationGroup(child_element, group)
|
|
3733
3859
|
elif tag_name == "MODE-SWITCH-INTERFACE":
|
|
3734
|
-
self.
|
|
3860
|
+
mode_interface = parent.createModeSwitchInterface(self.getShortName(child_element))
|
|
3861
|
+
self.readModeSwitchInterface(child_element, mode_interface)
|
|
3735
3862
|
elif tag_name == "SWC-TIMING":
|
|
3736
|
-
self.
|
|
3863
|
+
timing = parent.createSwcTiming(self.getShortName(child_element))
|
|
3864
|
+
self.readSwcTiming(child_element, timing)
|
|
3737
3865
|
elif tag_name == "LIN-CLUSTER":
|
|
3738
|
-
self.
|
|
3866
|
+
cluster = parent.createLinCluster(self.getShortName(child_element))
|
|
3867
|
+
self.readLinCluster(child_element, cluster)
|
|
3739
3868
|
elif tag_name == "LIN-UNCONDITIONAL-FRAME":
|
|
3740
|
-
self.
|
|
3869
|
+
frame = parent.createLinUnconditionalFrame(self.getShortName(child_element))
|
|
3870
|
+
self.readLinUnconditionalFrame(child_element, frame)
|
|
3741
3871
|
elif tag_name == "NM-PDU":
|
|
3742
|
-
self.
|
|
3872
|
+
pdu = parent.createNmPdu(self.getShortName(child_element))
|
|
3873
|
+
self.readNmPdu(child_element, pdu)
|
|
3743
3874
|
elif tag_name == "N-PDU":
|
|
3744
|
-
self.
|
|
3875
|
+
pdu = parent.createNPdu(self.getShortName(child_element))
|
|
3876
|
+
self.readNPdu(child_element, pdu)
|
|
3745
3877
|
elif tag_name == "DCM-I-PDU":
|
|
3746
|
-
self.
|
|
3878
|
+
i_pdu = parent.createDcmIPdu(self.getShortName(child_element))
|
|
3879
|
+
self.readDcmIPdu(child_element, i_pdu)
|
|
3747
3880
|
elif tag_name == "SECURED-I-PDU":
|
|
3748
|
-
self.
|
|
3881
|
+
i_pdu = parent.createSecuredIPdu(self.getShortName(child_element))
|
|
3882
|
+
self.readSecuredIPdu(child_element, i_pdu)
|
|
3749
3883
|
elif tag_name == "NM-CONFIG":
|
|
3750
|
-
self.
|
|
3884
|
+
config = parent.createNmConfig(self.getShortName(child_element))
|
|
3885
|
+
self.readNmConfig(child_element, config)
|
|
3751
3886
|
elif tag_name == "CAN-TP-CONFIG":
|
|
3752
|
-
self.
|
|
3887
|
+
config = parent.createCanTpConfig(self.getShortName(child_element))
|
|
3888
|
+
self.readCanTpConfig(child_element, config)
|
|
3753
3889
|
elif tag_name == "LIN-TP-CONFIG":
|
|
3754
|
-
|
|
3890
|
+
config = parent.createLinTpConfig(self.getShortName(child_element))
|
|
3891
|
+
self.readLinTpConfig(child_element, config)
|
|
3755
3892
|
elif tag_name == "SYSTEM":
|
|
3756
|
-
self.
|
|
3893
|
+
system = parent.createSystem(self.getShortName(child_element))
|
|
3894
|
+
self.readSystem(child_element, system)
|
|
3757
3895
|
elif tag_name == "ECU-INSTANCE":
|
|
3758
|
-
self.
|
|
3896
|
+
instance = parent.createEcuInstance(self.getShortName(child_element))
|
|
3897
|
+
self.readEcuInstance(child_element, instance)
|
|
3759
3898
|
elif tag_name == "GATEWAY":
|
|
3760
|
-
self.
|
|
3899
|
+
gateway = parent.createGateway(self.getShortName(child_element))
|
|
3900
|
+
self.readGateway(child_element, gateway)
|
|
3761
3901
|
elif tag_name == "I-SIGNAL-I-PDU-GROUP":
|
|
3762
|
-
self.
|
|
3902
|
+
group = parent.createISignalIPduGroup(self.getShortName(child_element))
|
|
3903
|
+
self.readISignalIPduGroup(child_element, group)
|
|
3763
3904
|
elif tag_name == "CAN-CLUSTER":
|
|
3764
|
-
self.
|
|
3905
|
+
cluster = parent.createCanCluster(self.getShortName(child_element))
|
|
3906
|
+
self.readCanCluster(child_element, cluster)
|
|
3765
3907
|
elif tag_name == "CAN-FRAME":
|
|
3766
|
-
self.
|
|
3908
|
+
frame = parent.createCanFrame(self.getShortName(child_element))
|
|
3909
|
+
self.readCanFrame(child_element, frame)
|
|
3767
3910
|
elif tag_name == "I-SIGNAL":
|
|
3768
|
-
self.
|
|
3911
|
+
signal = parent.createISignal(self.getShortName(child_element))
|
|
3912
|
+
self.readISignal(child_element, signal)
|
|
3769
3913
|
elif tag_name == "I-SIGNAL-GROUP":
|
|
3770
|
-
self.
|
|
3914
|
+
group = parent.createISignalGroup(self.getShortName(child_element))
|
|
3915
|
+
self.readISignalGroup(child_element, group)
|
|
3771
3916
|
elif tag_name == "I-SIGNAL-I-PDU":
|
|
3772
|
-
self.
|
|
3917
|
+
i_pdu = parent.createISignalIPdu(self.getShortName(child_element))
|
|
3918
|
+
self.readISignalIPdu(child_element, i_pdu)
|
|
3773
3919
|
elif tag_name == "SYSTEM-SIGNAL":
|
|
3774
|
-
self.
|
|
3920
|
+
signal = parent.createSystemSignal(self.getShortName(child_element))
|
|
3921
|
+
self.readSystemSignal(child_element, signal)
|
|
3775
3922
|
elif tag_name == "SYSTEM-SIGNAL-GROUP":
|
|
3776
|
-
self.
|
|
3923
|
+
group = parent.createSystemSignalGroup(self.getShortName(child_element))
|
|
3924
|
+
self.readSystemSignalGroup(child_element, group)
|
|
3777
3925
|
elif tag_name == "ECUC-VALUE-COLLECTION":
|
|
3778
|
-
self.
|
|
3926
|
+
collection = parent.createEcucValueCollection(self.getShortName(child_element))
|
|
3927
|
+
self.readEcucValueCollection(child_element, collection)
|
|
3779
3928
|
elif tag_name == "ECUC-MODULE-CONFIGURATION-VALUES":
|
|
3780
|
-
self.
|
|
3929
|
+
values = parent.createEcucModuleConfigurationValues(self.getShortName(child_element))
|
|
3930
|
+
self.readEcucModuleConfigurationValues(child_element, values)
|
|
3781
3931
|
elif tag_name == "PHYSICAL-DIMENSION":
|
|
3782
|
-
self.
|
|
3932
|
+
dimension = parent.createPhysicalDimension(self.getShortName(child_element))
|
|
3933
|
+
self.readPhysicalDimension(child_element, dimension)
|
|
3783
3934
|
elif tag_name == "PARAMETER-INTERFACE":
|
|
3784
|
-
self.
|
|
3935
|
+
param_interface = parent.createParameterInterface(self.getShortName(child_element))
|
|
3936
|
+
self.readParameterInterface(child_element, param_interface)
|
|
3785
3937
|
elif tag_name == "ETHERNET-FRAME":
|
|
3786
|
-
self.
|
|
3938
|
+
frame = parent.createGenericEthernetFrame(self.getShortName(child_element))
|
|
3939
|
+
self.readGenericEthernetFrame(child_element, frame)
|
|
3787
3940
|
elif tag_name == "LIFE-CYCLE-INFO-SET":
|
|
3788
|
-
self.
|
|
3941
|
+
info_set = parent.createLifeCycleInfoSet(self.getShortName(child_element))
|
|
3942
|
+
self.readLifeCycleInfoSet(child_element, info_set)
|
|
3789
3943
|
elif tag_name == "FLAT-MAP":
|
|
3790
|
-
self.
|
|
3944
|
+
map = parent.createFlatMap(self.getShortName(child_element))
|
|
3945
|
+
self.readFlatMap(child_element, map)
|
|
3791
3946
|
elif tag_name == "PORT-INTERFACE-MAPPING-SET":
|
|
3792
|
-
self.
|
|
3947
|
+
mapping_set = parent.createPortInterfaceMappingSet(self.getShortName(child_element))
|
|
3948
|
+
self.readPortInterfaceMappingSet(child_element, mapping_set)
|
|
3793
3949
|
elif tag_name == "ETHERNET-CLUSTER":
|
|
3794
|
-
self.
|
|
3950
|
+
cluster = parent.createEthernetCluster(self.getShortName(child_element))
|
|
3951
|
+
self.readEthernetCluster(child_element, cluster)
|
|
3795
3952
|
elif tag_name == "DIAGNOSTIC-CONNECTION":
|
|
3796
3953
|
connection = parent.createDiagnosticConnection(self.getShortName(child_element))
|
|
3797
3954
|
self.readDiagnosticConnection(child_element, connection)
|
|
3798
3955
|
elif tag_name == "DIAGNOSTIC-SERVICE-TABLE":
|
|
3799
|
-
self.
|
|
3956
|
+
table = parent.createDiagnosticServiceTable(self.getShortName(child_element))
|
|
3957
|
+
self.readDiagnosticServiceTable(child_element, table)
|
|
3800
3958
|
elif tag_name == "MULTIPLEXED-I-PDU":
|
|
3801
|
-
self.
|
|
3959
|
+
i_pdu = parent.createMultiplexedIPdu(self.getShortName(child_element))
|
|
3960
|
+
self.readMultiplexedIPdu(child_element, i_pdu)
|
|
3802
3961
|
elif tag_name == "USER-DEFINED-I-PDU":
|
|
3803
|
-
self.
|
|
3962
|
+
i_pdu = parent.createUserDefinedIPdu(self.getShortName(child_element))
|
|
3963
|
+
self.readUserDefinedIPdu(child_element, i_pdu)
|
|
3804
3964
|
elif tag_name == "USER-DEFINED-PDU":
|
|
3805
|
-
self.
|
|
3965
|
+
pdu = parent.createUserDefinedPdu(self.getShortName(child_element))
|
|
3966
|
+
self.readUserDefinedPdu(child_element, pdu)
|
|
3806
3967
|
elif tag_name == "GENERAL-PURPOSE-PDU":
|
|
3807
|
-
self.
|
|
3968
|
+
pdu = parent.createGeneralPurposePdu(self.getShortName(child_element))
|
|
3969
|
+
self.readGeneralPurposePdu(child_element, pdu)
|
|
3808
3970
|
elif tag_name == "GENERAL-PURPOSE-I-PDU":
|
|
3809
|
-
self.
|
|
3971
|
+
i_pdu = parent.createGeneralPurposeIPdu(self.getShortName(child_element))
|
|
3972
|
+
self.readGeneralPurposeIPdu(child_element, i_pdu)
|
|
3810
3973
|
elif tag_name == "SECURE-COMMUNICATION-PROPS-SET":
|
|
3811
|
-
self.
|
|
3974
|
+
prop_set = parent.createSecureCommunicationPropsSet(self.getShortName(child_element))
|
|
3975
|
+
self.readSecureCommunicationPropsSet(child_element, prop_set)
|
|
3812
3976
|
elif tag_name == "SO-AD-ROUTING-GROUP":
|
|
3813
|
-
self.
|
|
3977
|
+
group = parent.createSoAdRoutingGroup(self.getShortName(child_element))
|
|
3978
|
+
self.readSoAdRoutingGroup(child_element, group)
|
|
3814
3979
|
elif tag_name == "DO-IP-TP-CONFIG":
|
|
3815
|
-
self.
|
|
3980
|
+
config = parent.createDoIpTpConfig(self.getShortName(child_element))
|
|
3981
|
+
self.readDoIpTpConfig(child_element, config)
|
|
3816
3982
|
else:
|
|
3817
3983
|
self.notImplemented("Unsupported element type of ARPackage <%s>" % tag_name)
|
|
3818
3984
|
|
|
@@ -3845,7 +4011,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3845
4011
|
tree = ET.parse(filename)
|
|
3846
4012
|
root = tree.getroot()
|
|
3847
4013
|
if (self.getPureTagName(root.tag) != "AUTOSAR"):
|
|
3848
|
-
self.
|
|
4014
|
+
self.raiseError("Invalid ARXML file <%s>" % filename)
|
|
3849
4015
|
|
|
3850
4016
|
self.getAUTOSARInfo(root, document)
|
|
3851
4017
|
document.setAdminData(self.getAdminData(root, "ADMIN-DATA"))
|