armodel 1.7.4__py3-none-any.whl → 1.7.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- armodel/cli/file_list_cli.py +70 -0
- armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +47 -0
- armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +67 -3
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +9 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +58 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +16 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +114 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +104 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +429 -7
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +114 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +94 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +151 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +98 -13
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +13 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +135 -13
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +25 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +4 -3
- armodel/models/M2/MSR/DataDictionary/RecordLayout.py +1 -1
- armodel/models/__init__.py +3 -0
- armodel/parser/abstract_arxml_parser.py +2 -0
- armodel/parser/arxml_parser.py +353 -30
- armodel/writer/arxml_writer.py +471 -145
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/METADATA +31 -1
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/RECORD +29 -24
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/entry_points.txt +1 -0
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/LICENSE +0 -0
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/WHEEL +0 -0
- {armodel-1.7.4.dist-info → armodel-1.7.5.dist-info}/top_level.txt +0 -0
armodel/writer/arxml_writer.py
CHANGED
|
@@ -40,6 +40,7 @@ from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import Intern
|
|
|
40
40
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclaration, ModeDeclarationGroup, ModeDeclarationGroupPrototype
|
|
41
41
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import ResourceConsumption
|
|
42
42
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.StackUsage import RoughEstimateStackUsage, StackUsage
|
|
43
|
+
from ..models.M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import DiagnosticServiceTable
|
|
43
44
|
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
|
|
44
45
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
|
|
45
46
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, MultilanguageReferrable, Referrable
|
|
@@ -76,22 +77,24 @@ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import S
|
|
|
76
77
|
|
|
77
78
|
from ..models.M2.AUTOSARTemplates.SystemTemplate import SwcToEcuMapping, System, SystemMapping
|
|
78
79
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderReceiverToSignalGroupMapping, SenderReceiverToSignalMapping
|
|
79
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.
|
|
80
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.DiagnosticConnection import DiagnosticConnection
|
|
81
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FrameTriggering, GeneralPurposeIPdu, GeneralPurposePdu, IPdu, IPduTiming, ISignalGroup, ISignalIPdu, ISignalIPduGroup, ISignalTriggering, MultiplexedIPdu, PduTriggering, SecureCommunicationPropsSet, SecuredIPdu, SystemSignal, DcmIPdu, Frame, ISignal, NPdu, NmPdu, SystemSignalGroup, UserDefinedIPdu, UserDefinedPdu
|
|
80
82
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
81
83
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import CyclicTiming, EventControlledTiming, TimeRangeType, TransmissionModeCondition, TransmissionModeDeclaration, TransmissionModeTiming
|
|
82
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SocketConnection, SocketConnectionBundle, SocketConnectionIpduIdentifier
|
|
84
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SoAdRoutingGroup, SocketConnection, SocketConnectionBundle, SocketConnectionIpduIdentifier
|
|
83
85
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
|
|
84
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCluster, EthernetCommunicationConnector, EthernetCommunicationController
|
|
85
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import Ipv6Configuration, NetworkEndpoint, NetworkEndpointAddress
|
|
86
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import SoAdConfig
|
|
86
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCluster, EthernetCommunicationConnector, EthernetCommunicationController, InitialSdDelayConfig, RequestResponseDelay, SdClientConfig
|
|
87
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import DoIpEntity, InfrastructureServices, Ipv6Configuration, NetworkEndpoint, NetworkEndpointAddress
|
|
88
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import ApplicationEndpoint, ConsumedEventGroup, ConsumedServiceInstance, GenericTp, SoAdConfig, SocketAddress, TcpTp, TpPort, TransportProtocolConfiguration, UdpTp
|
|
87
89
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway, ISignalMapping
|
|
88
90
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame, CanFrameTriggering, RxIdentifierRange
|
|
89
91
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
|
|
90
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering, LinUnconditionalFrame
|
|
91
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanCluster, CanPhysicalChannel, CommConnectorPort, CommunicationCluster, CommunicationConnector, EthernetPhysicalChannel, FramePort, IPduPort, ISignalPort, LinCluster, LinPhysicalChannel, PhysicalChannel
|
|
92
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import ApplicationEntry, LinFrameTriggering, LinScheduleTable, LinUnconditionalFrame, ScheduleTableEntry
|
|
93
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanCluster, CanClusterBusOffRecovery, CanPhysicalChannel, CommConnectorPort, CommunicationCluster, CommunicationConnector, EthernetPhysicalChannel, FramePort, IPduPort, ISignalPort, LinCluster, LinPhysicalChannel, PhysicalChannel
|
|
94
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinTopology import LinCommunicationConnector, LinMaster
|
|
92
95
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef, VariableDataPrototypeInSystemInstanceRef
|
|
93
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode
|
|
94
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig
|
|
96
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode, UdpNmCluster, UdpNmClusterCoupling, UdpNmNode
|
|
97
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig, DoIpTpConfig
|
|
95
98
|
|
|
96
99
|
from .abstract_arxml_writer import AbstractARXMLWriter
|
|
97
100
|
class ARXMLWriter(AbstractARXMLWriter):
|
|
@@ -194,7 +197,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
194
197
|
self.setMultiLanguagePlainText(child_element, "USED-LANGUAGES", admin_data.getUsedLanguages())
|
|
195
198
|
self.writeSdgs(child_element, admin_data)
|
|
196
199
|
|
|
197
|
-
def
|
|
200
|
+
def writeIdentifiable(self, element: ET.Element, identifiable: Identifiable):
|
|
198
201
|
self.setMultilanguageReferrable(element, identifiable)
|
|
199
202
|
self.setAnnotations(element, identifiable.getAnnotations())
|
|
200
203
|
self.setMultiLanguageOverviewParagraph(element, "DESC", identifiable.getDesc())
|
|
@@ -203,7 +206,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
203
206
|
self.setAdminData(element, identifiable.getAdminData())
|
|
204
207
|
|
|
205
208
|
def setARElement(self, parent: ET.Element, ar_element: ARElement):
|
|
206
|
-
self.
|
|
209
|
+
self.writeIdentifiable(parent, ar_element)
|
|
207
210
|
|
|
208
211
|
def setTransmissionAcknowledgementRequest(self, element: ET.Element, acknowledge: TransmissionAcknowledgementRequest):
|
|
209
212
|
if (acknowledge != None):
|
|
@@ -436,7 +439,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
436
439
|
def writePPortPrototype(self, ports_tag: ET.Element, prototype: PPortPrototype):
|
|
437
440
|
prototype_tag = ET.SubElement(ports_tag, "P-PORT-PROTOTYPE")
|
|
438
441
|
|
|
439
|
-
self.
|
|
442
|
+
self.writeIdentifiable(prototype_tag, prototype)
|
|
440
443
|
self.logger.debug("write PPortPrototype %s" % prototype.getShortName())
|
|
441
444
|
self.setAbstractProvidedPortPrototype(prototype_tag, prototype)
|
|
442
445
|
self.setChildElementOptionalRefType(prototype_tag, "PROVIDED-INTERFACE-TREF", prototype.getProvidedInterfaceTRef())
|
|
@@ -451,14 +454,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
451
454
|
def writeRPortPrototype(self, ports_tag: ET.Element, prototype: RPortPrototype):
|
|
452
455
|
self.logger.debug("write RPortPrototype %s" % prototype.getShortName())
|
|
453
456
|
prototype_tag = ET.SubElement(ports_tag, "R-PORT-PROTOTYPE")
|
|
454
|
-
self.
|
|
457
|
+
self.writeIdentifiable(prototype_tag, prototype)
|
|
455
458
|
self.setAbstractRequiredPortPrototype(prototype_tag, prototype)
|
|
456
459
|
self.setChildElementOptionalRefType(prototype_tag, "REQUIRED-INTERFACE-TREF", prototype.getRequiredInterfaceTRef())
|
|
457
460
|
|
|
458
461
|
def writePRPortPrototype(self, ports_tag: ET.Element, prototype: PRPortPrototype):
|
|
459
462
|
self.logger.debug("write PRPortPrototype %s" % prototype.getShortName())
|
|
460
463
|
prototype_tag = ET.SubElement(ports_tag, "PR-PORT-PROTOTYPE")
|
|
461
|
-
self.
|
|
464
|
+
self.writeIdentifiable(prototype_tag, prototype)
|
|
462
465
|
self.setAbstractProvidedPortPrototype(prototype_tag, prototype)
|
|
463
466
|
self.setAbstractRequiredPortPrototype(prototype_tag, prototype)
|
|
464
467
|
self.setChildElementOptionalRefType(prototype_tag, "PROVIDED-REQUIRED-INTERFACE-TREF", prototype.getProvidedRequiredInterface())
|
|
@@ -497,7 +500,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
497
500
|
def writePortGroup(self, element: ET.Element, port_group: PortGroup):
|
|
498
501
|
self.logger.debug("writePortGroup %s" % port_group.getShortName())
|
|
499
502
|
child_element = ET.SubElement(element, "PORT-GROUP")
|
|
500
|
-
self.
|
|
503
|
+
self.writeIdentifiable(child_element, port_group)
|
|
501
504
|
self.writePortGroupInnerGroupIRefs(child_element, port_group)
|
|
502
505
|
self.writePortGroupOuterPortRefs(child_element, port_group)
|
|
503
506
|
|
|
@@ -509,7 +512,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
509
512
|
self.writePortGroup(child_element, port_group)
|
|
510
513
|
|
|
511
514
|
def writeSwComponentType(self, element: ET.Element, sw_component: SwComponentType):
|
|
512
|
-
self.
|
|
515
|
+
self.writeIdentifiable(element, sw_component)
|
|
513
516
|
port_prototypes = sw_component.getPortPrototypes()
|
|
514
517
|
if len(port_prototypes) > 0:
|
|
515
518
|
ports_tag = ET.SubElement(element, "PORTS")
|
|
@@ -518,7 +521,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
518
521
|
|
|
519
522
|
def writeSwComponentPrototype(self, element: ET.Element, prototype: SwComponentPrototype):
|
|
520
523
|
prototype_tag = ET.SubElement(element, "SW-COMPONENT-PROTOTYPE")
|
|
521
|
-
self.
|
|
524
|
+
self.writeIdentifiable(prototype_tag, prototype)
|
|
522
525
|
self.setChildElementOptionalRefType(prototype_tag, "TYPE-TREF", prototype.getTypeTRef())
|
|
523
526
|
|
|
524
527
|
def writeSwComponentPrototypes(self, element: ET.Element, sw_component: CompositionSwComponentType):
|
|
@@ -530,7 +533,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
530
533
|
|
|
531
534
|
def writeAssemblySwConnector(self, element: ET.Element, sw_connector: AssemblySwConnector):
|
|
532
535
|
child_element = ET.SubElement(element, "ASSEMBLY-SW-CONNECTOR")
|
|
533
|
-
self.
|
|
536
|
+
self.writeIdentifiable(child_element, sw_connector)
|
|
534
537
|
self.setChildElementOptionalRefType(child_element, "MAPPING-REF", sw_connector.getMappingRef())
|
|
535
538
|
|
|
536
539
|
if sw_connector.getProviderIRef() is not None:
|
|
@@ -549,7 +552,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
549
552
|
|
|
550
553
|
def writeDelegationSwConnector(self, element: ET.Element, sw_connector: DelegationSwConnector):
|
|
551
554
|
connector_tag = ET.SubElement(element, "DELEGATION-SW-CONNECTOR")
|
|
552
|
-
self.
|
|
555
|
+
self.writeIdentifiable(connector_tag, sw_connector)
|
|
553
556
|
|
|
554
557
|
if sw_connector.getInnerPortIRref() is not None:
|
|
555
558
|
inner_port_iref_tag = ET.SubElement(connector_tag, "INNER-PORT-IREF")
|
|
@@ -737,7 +740,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
737
740
|
self.setSwDataDefProps(element, "SW-DATA-DEF-PROPS", prototype.getSwDataDefProps())
|
|
738
741
|
|
|
739
742
|
def setApplicationCompositeElementDataPrototype(self, element: ET.Element, prototype: ApplicationCompositeElementDataPrototype):
|
|
740
|
-
self.
|
|
743
|
+
self.writeIdentifiable(element, prototype)
|
|
741
744
|
self.setDataPrototype(element, prototype)
|
|
742
745
|
self.setChildElementOptionalRefType(element, "TYPE-TREF", prototype.typeTRef)
|
|
743
746
|
|
|
@@ -775,7 +778,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
775
778
|
|
|
776
779
|
def writeSwBaseType(self, element: ET.Element, base_type: SwBaseType):
|
|
777
780
|
data_type_tag = ET.SubElement(element, "SW-BASE-TYPE")
|
|
778
|
-
self.
|
|
781
|
+
self.writeIdentifiable(data_type_tag, base_type)
|
|
779
782
|
self.setBaseTypeDirectDefinition(data_type_tag, base_type.getBaseTypeDefinition())
|
|
780
783
|
|
|
781
784
|
def writeCompuScaleConstantContents(self, element: ET.Element, contents: CompuScaleConstantContents):
|
|
@@ -844,7 +847,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
844
847
|
def writeCompuMethod(self, element: ET.Element, compu_method: CompuMethod):
|
|
845
848
|
child_element = ET.SubElement(element, "COMPU-METHOD")
|
|
846
849
|
self.logger.debug("write CompuMethods %s" % compu_method.getShortName())
|
|
847
|
-
self.
|
|
850
|
+
self.writeIdentifiable(child_element, compu_method)
|
|
848
851
|
self.setChildElementOptionalRefType(child_element, "UNIT-REF", compu_method.getUnitRef())
|
|
849
852
|
self.setCompu(child_element, "COMPU-INTERNAL-TO-PHYS", compu_method.getCompuInternalToPhys())
|
|
850
853
|
self.setCompu(child_element, "COMPU-PHYS-TO-INTERNAL", compu_method.getCompuPhysToInternal())
|
|
@@ -878,7 +881,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
878
881
|
|
|
879
882
|
def writeConstantSpecification(self, element: ET.Element, spec: ConstantSpecification):
|
|
880
883
|
spec_tag = ET.SubElement(element, "CONSTANT-SPECIFICATION")
|
|
881
|
-
self.
|
|
884
|
+
self.writeIdentifiable(spec_tag, spec)
|
|
882
885
|
|
|
883
886
|
if spec.getValueSpec() is not None:
|
|
884
887
|
self.setValueSpecification(spec_tag, "VALUE-SPEC", spec.getValueSpec())
|
|
@@ -915,13 +918,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
915
918
|
|
|
916
919
|
def writeDataConstr(self, element: ET.Element, constr: DataConstr):
|
|
917
920
|
child_element = ET.SubElement(element, "DATA-CONSTR")
|
|
918
|
-
self.
|
|
921
|
+
self.writeIdentifiable(child_element, constr)
|
|
919
922
|
self.writeDataConstrRules(child_element, constr)
|
|
920
923
|
|
|
921
924
|
def writeUnit(self, element: ET.Element, unit: Unit):
|
|
922
925
|
self.logger.debug("writeUnit %s" % unit.getShortName())
|
|
923
926
|
child_element = ET.SubElement(element, "UNIT")
|
|
924
|
-
self.
|
|
927
|
+
self.writeIdentifiable(child_element, unit)
|
|
925
928
|
self.setChildElementOptionalLiteral(child_element, "DISPLAY-NAME", unit.getDisplayName())
|
|
926
929
|
self.setChildElementOptionalFloatValue(child_element, "FACTOR-SI-TO-UNIT", unit.getFactorSiToUnit())
|
|
927
930
|
self.setChildElementOptionalFloatValue(child_element, "OFFSET-SI-TO-UNIT", unit.getOffsetSiToUnit())
|
|
@@ -943,7 +946,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
943
946
|
self.setChildElementOptionalRefType(child_element, "TARGET-PROVIDED-OPERATION-REF", iref.getTargetProvidedOperationRef())
|
|
944
947
|
|
|
945
948
|
def setRTEEvent(self, element: ET.Element, event: RTEEvent):
|
|
946
|
-
self.
|
|
949
|
+
self.writeIdentifiable(element, event)
|
|
947
950
|
irefs = event.getDisabledModeIRefs()
|
|
948
951
|
if len(irefs) > 0:
|
|
949
952
|
child_element = ET.SubElement(element, "DISABLED-MODE-IREFS")
|
|
@@ -1030,7 +1033,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1030
1033
|
areas_tag = ET.SubElement(element, "EXCLUSIVE-AREAS")
|
|
1031
1034
|
for area in areas:
|
|
1032
1035
|
child_element = ET.SubElement(areas_tag, "EXCLUSIVE-AREA")
|
|
1033
|
-
self.
|
|
1036
|
+
self.writeIdentifiable(child_element, area)
|
|
1034
1037
|
|
|
1035
1038
|
def writeDataTypeMappingRefs(self, element: ET.Element, behavior: InternalBehavior):
|
|
1036
1039
|
refs = behavior.getDataTypeMappingRefs()
|
|
@@ -1040,7 +1043,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1040
1043
|
self.setChildElementOptionalRefType(refs_tag, "DATA-TYPE-MAPPING-REF", ref)
|
|
1041
1044
|
|
|
1042
1045
|
def writeInternalBehavior(self, element: ET.Element, behavior: InternalBehavior):
|
|
1043
|
-
self.
|
|
1046
|
+
self.writeIdentifiable(element, behavior)
|
|
1044
1047
|
self.setParameterDataPrototypes(element, "CONSTANT-MEMORYS", behavior.getConstantMemories())
|
|
1045
1048
|
self.writeDataTypeMappingRefs(element, behavior)
|
|
1046
1049
|
self.writeExclusiveAreas(element, behavior)
|
|
@@ -1066,7 +1069,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1066
1069
|
|
|
1067
1070
|
def setVariableAccess(self, element: ET.Element, access: VariableAccess):
|
|
1068
1071
|
child_element = ET.SubElement(element, "VARIABLE-ACCESS")
|
|
1069
|
-
self.
|
|
1072
|
+
self.writeIdentifiable(child_element, access)
|
|
1070
1073
|
self.setAutosarVariableRef(child_element, "ACCESSED-VARIABLE", access.getAccessedVariableRef())
|
|
1071
1074
|
|
|
1072
1075
|
def setAutosarParameterRef(self, element: ET.Element, key: str, parameter_ref: AutosarParameterRef):
|
|
@@ -1076,7 +1079,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1076
1079
|
|
|
1077
1080
|
def writeParameterAccess(self, element: ET.Element, parameter_access: ParameterAccess):
|
|
1078
1081
|
child_element = ET.SubElement(element, "PARAMETER-ACCESS")
|
|
1079
|
-
self.
|
|
1082
|
+
self.writeIdentifiable(child_element, parameter_access)
|
|
1080
1083
|
self.setAutosarParameterRef(child_element, "ACCESSED-PARAMETER", parameter_access.getAccessedParameter())
|
|
1081
1084
|
|
|
1082
1085
|
def writeParameterAccesses(self, element: ET.Element, entity: RunnableEntity):
|
|
@@ -1134,12 +1137,12 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1134
1137
|
|
|
1135
1138
|
def setSynchronousServerCallPoint(self, element: ET.Element, call_point: SynchronousServerCallPoint):
|
|
1136
1139
|
child_element = ET.SubElement(element, "SYNCHRONOUS-SERVER-CALL-POINT")
|
|
1137
|
-
self.
|
|
1140
|
+
self.writeIdentifiable(child_element, call_point)
|
|
1138
1141
|
self.setServerCallPoint(child_element, call_point)
|
|
1139
1142
|
|
|
1140
1143
|
def setAsynchronousServerCallPoint(self, element: ET.Element, call_point: SynchronousServerCallPoint):
|
|
1141
1144
|
child_element = ET.SubElement(element, "ASYNCHRONOUS-SERVER-CALL-POINT")
|
|
1142
|
-
self.
|
|
1145
|
+
self.writeIdentifiable(child_element, call_point)
|
|
1143
1146
|
self.setServerCallPoint(child_element, call_point)
|
|
1144
1147
|
|
|
1145
1148
|
def writeServerCallPoints(self, element: ET.Element, entity: RunnableEntity):
|
|
@@ -1188,7 +1191,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1188
1191
|
mode_access_points_tag = ET.SubElement(element, "MODE-SWITCH-POINTS")
|
|
1189
1192
|
for point in points:
|
|
1190
1193
|
child_element = ET.SubElement(mode_access_points_tag, "MODE-SWITCH-POINT")
|
|
1191
|
-
self.
|
|
1194
|
+
self.writeIdentifiable(child_element, point)
|
|
1192
1195
|
self.setPModeGroupInAtomicSWCInstanceRef(child_element, "MODE-GROUP-IREF", point.getModeGroupIRef())
|
|
1193
1196
|
|
|
1194
1197
|
def setRunnableEntityArgument(self, element: ET.Element, argument: RunnableEntityArgument):
|
|
@@ -1211,7 +1214,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1211
1214
|
points_tag = ET.SubElement(element, "ASYNCHRONOUS-SERVER-CALL-RESULT-POINTS")
|
|
1212
1215
|
for point in points:
|
|
1213
1216
|
child_element = ET.SubElement(points_tag, "ASYNCHRONOUS-SERVER-CALL-RESULT-POINT")
|
|
1214
|
-
self.
|
|
1217
|
+
self.writeIdentifiable(child_element, point)
|
|
1215
1218
|
self.setChildElementOptionalRefType(child_element, "ASYNCHRONOUS-SERVER-CALL-POINT-REF", point.getAsynchronousServerCallPointRef())
|
|
1216
1219
|
|
|
1217
1220
|
def writeRunnableEntity(self, element: ET.Element, entity: RunnableEntity):
|
|
@@ -1269,7 +1272,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1269
1272
|
memories_tag = ET.SubElement(element, "PER-INSTANCE-MEMORYS")
|
|
1270
1273
|
for memory in memories:
|
|
1271
1274
|
child_element = ET.SubElement(memories_tag, "PER-INSTANCE-MEMORY")
|
|
1272
|
-
self.
|
|
1275
|
+
self.writeIdentifiable(child_element, memory)
|
|
1273
1276
|
self.setChildElementOptionalLiteral(child_element, "INIT-VALUE", memory.getInitValue())
|
|
1274
1277
|
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", memory.getSwDataDefProps())
|
|
1275
1278
|
self.setChildElementOptionalLiteral(child_element, "TYPE", memory.getType())
|
|
@@ -1277,7 +1280,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1277
1280
|
|
|
1278
1281
|
def setParameterDataPrototype(self, element: ET.Element, prototype: ParameterDataPrototype):
|
|
1279
1282
|
child_element = ET.SubElement(element, "PARAMETER-DATA-PROTOTYPE")
|
|
1280
|
-
self.
|
|
1283
|
+
self.writeIdentifiable(child_element, prototype)
|
|
1281
1284
|
self.setAutosarDataPrototype(child_element, prototype)
|
|
1282
1285
|
self.setValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
|
|
1283
1286
|
|
|
@@ -1324,7 +1327,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1324
1327
|
self._raiseError("Unsupported Assigned Data <%s>" % type(data))
|
|
1325
1328
|
|
|
1326
1329
|
def writeServiceDependency(self, element: ET.Element, dependency: ServiceDependency):
|
|
1327
|
-
self.
|
|
1330
|
+
self.writeIdentifiable(element, dependency)
|
|
1328
1331
|
self.writeServiceDependencyAssignedDataType(element, dependency)
|
|
1329
1332
|
|
|
1330
1333
|
def writeRoleBasedDataAssignment(self, element: ET.Element, assignment: RoleBasedDataAssignment):
|
|
@@ -1362,7 +1365,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1362
1365
|
def setNvBlockNeeds(self, element: ET.Element, needs: NvBlockNeeds):
|
|
1363
1366
|
child_element = ET.SubElement(element, "NV-BLOCK-NEEDS")
|
|
1364
1367
|
self.logger.debug("write NvBlockNeeds %s" % needs.getShortName())
|
|
1365
|
-
self.
|
|
1368
|
+
self.writeIdentifiable(child_element, needs)
|
|
1366
1369
|
self.setChildElementOptionalBooleanValue(child_element, "CALC-RAM-BLOCK-CRC", needs.getCalcRamBlockCrc())
|
|
1367
1370
|
self.setChildElementOptionalBooleanValue(child_element, "CHECK-STATIC-BLOCK-ID", needs.getCheckStaticBlockId())
|
|
1368
1371
|
self.setChildElementOptionalNumericalValue(child_element, "N-DATA-SETS", needs.getNDataSets())
|
|
@@ -1386,20 +1389,20 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1386
1389
|
def setDiagnosticCommunicationManagerNeeds(self, element: ET.Element, needs: DiagnosticCommunicationManagerNeeds):
|
|
1387
1390
|
child_element = ET.SubElement(element, "DIAGNOSTIC-COMMUNICATION-MANAGER-NEEDS")
|
|
1388
1391
|
self.logger.debug("write DiagnosticCommunicationManagerNeeds %s" % needs.getShortName())
|
|
1389
|
-
self.
|
|
1392
|
+
self.writeIdentifiable(child_element, needs)
|
|
1390
1393
|
self.setChildElementOptionalLiteral(child_element, "SERVICE-REQUEST-CALLBACK-TYPE", needs.getServiceRequestCallbackType())
|
|
1391
1394
|
|
|
1392
1395
|
def setDiagnosticRoutineNeeds(self, element: ET.Element, needs: DiagnosticRoutineNeeds):
|
|
1393
1396
|
child_element = ET.SubElement(element, "DIAGNOSTIC-ROUTINE-NEEDS")
|
|
1394
1397
|
self.logger.debug("write DiagnosticRoutineNeeds %s" % needs.getShortName())
|
|
1395
|
-
self.
|
|
1398
|
+
self.writeIdentifiable(child_element, needs)
|
|
1396
1399
|
self.setChildElementOptionalLiteral(child_element, "DIAG-ROUTINE-TYPE", needs.getDiagRoutineType())
|
|
1397
1400
|
self.setChildElementOptionalIntegerValue(child_element, "RID-NUMBER", needs.getRidNumber())
|
|
1398
1401
|
|
|
1399
1402
|
def setDiagnosticValueNeeds(self, element: ET.Element, needs: DiagnosticValueNeeds):
|
|
1400
1403
|
child_element = ET.SubElement(element, "DIAGNOSTIC-VALUE-NEEDS")
|
|
1401
1404
|
self.logger.debug("write DiagnosticValueNeeds %s" % needs.getShortName())
|
|
1402
|
-
self.
|
|
1405
|
+
self.writeIdentifiable(child_element, needs)
|
|
1403
1406
|
self.setChildElementOptionalPositiveInteger(child_element, "DATA-LENGTH", needs.getDataLength())
|
|
1404
1407
|
self.setChildElementOptionalLiteral(child_element, "DIAGNOSTIC-VALUE-ACCESS", needs.getDiagnosticValueAccess())
|
|
1405
1408
|
self.setChildElementOptionalIntegerValue(child_element, "DID-NUMBER", needs.getDidNumber())
|
|
@@ -1408,7 +1411,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1408
1411
|
|
|
1409
1412
|
def setDiagEventDebounceMonitorInternal(self, element: ET.Element, algorithm: DiagEventDebounceMonitorInternal):
|
|
1410
1413
|
child_element = ET.SubElement(element, "DIAG-EVENT-DEBOUNCE-MONITOR-INTERNAL")
|
|
1411
|
-
self.
|
|
1414
|
+
self.writeIdentifiable(child_element, algorithm)
|
|
1412
1415
|
|
|
1413
1416
|
def writeDiagEventDebounceAlgorithm(self, element: ET.Element, needs: DiagnosticEventNeeds):
|
|
1414
1417
|
algorithm = needs.getDiagEventDebounceAlgorithm()
|
|
@@ -1422,7 +1425,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1422
1425
|
def setDiagnosticEventNeeds(self, element: ET.Element, needs: DiagnosticEventNeeds):
|
|
1423
1426
|
child_element = ET.SubElement(element, "DIAGNOSTIC-EVENT-NEEDS")
|
|
1424
1427
|
self.logger.debug("write DiagnosticEventNeeds %s" % needs.getShortName())
|
|
1425
|
-
self.
|
|
1428
|
+
self.writeIdentifiable(child_element, needs)
|
|
1426
1429
|
self.writeDiagEventDebounceAlgorithm(child_element, needs)
|
|
1427
1430
|
self.setChildElementOptionalLiteral(child_element, "DTC-KIND", needs.getDtcKind())
|
|
1428
1431
|
self.setChildElementOptionalIntegerValue(child_element, "UDS-DTC-NUMBER", needs.getUdsDtcNumber())
|
|
@@ -1430,19 +1433,19 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1430
1433
|
def setDiagnosticEventInfoNeeds(self, element: ET.Element, needs: DiagnosticEventInfoNeeds):
|
|
1431
1434
|
child_element = ET.SubElement(element, "DIAGNOSTIC-EVENT-INFO-NEEDS")
|
|
1432
1435
|
self.logger.debug("write DiagnosticEventNeeds %s" % needs.getShortName())
|
|
1433
|
-
self.
|
|
1436
|
+
self.writeIdentifiable(child_element, needs)
|
|
1434
1437
|
self.setChildElementOptionalPositiveInteger(child_element, "UDS-DTC-NUMBER", needs.getUdsDtcNumber())
|
|
1435
1438
|
|
|
1436
1439
|
def setCryptoServiceNeeds(self, element: ET.Element, needs: CryptoServiceNeeds):
|
|
1437
1440
|
child_element = ET.SubElement(element, "CRYPTO-SERVICE-NEEDS")
|
|
1438
1441
|
self.logger.debug("write CryptoServiceNeeds %s" % needs.getShortName())
|
|
1439
|
-
self.
|
|
1442
|
+
self.writeIdentifiable(child_element, needs)
|
|
1440
1443
|
self.setChildElementOptionalPositiveInteger(child_element, "MAXIMUM-KEY-LENGTH", needs.getMaximumKeyLength())
|
|
1441
1444
|
|
|
1442
1445
|
def setEcuStateMgrUserNeeds(self, element: ET.Element, needs: EcuStateMgrUserNeeds):
|
|
1443
1446
|
child_element = ET.SubElement(element, "ECU-STATE-MGR-USER-NEEDS")
|
|
1444
1447
|
self.logger.debug("write EcuStateMgrUserNeeds %s" % needs.getShortName())
|
|
1445
|
-
self.
|
|
1448
|
+
self.writeIdentifiable(child_element, needs)
|
|
1446
1449
|
|
|
1447
1450
|
def writeSwcServiceDependencyServiceNeeds(self, element: ET.Element, parent: SwcServiceDependency):
|
|
1448
1451
|
needs = parent.getServiceNeeds()
|
|
@@ -1547,7 +1550,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1547
1550
|
def setCode(self, element: ET.SubElement, code_desc: Code):
|
|
1548
1551
|
self.logger.debug("setCode %s" % code_desc.getShortName())
|
|
1549
1552
|
child_element = ET.SubElement(element, "CODE")
|
|
1550
|
-
self.
|
|
1553
|
+
self.writeIdentifiable(child_element, code_desc)
|
|
1551
1554
|
self.writeArtifactDescriptor(child_element, code_desc)
|
|
1552
1555
|
|
|
1553
1556
|
def writeCodeDescriptors(self, element: ET.Element, impl: Implementation):
|
|
@@ -1572,7 +1575,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1572
1575
|
sections_tag = ET.SubElement(element, "MEMORY-SECTIONS")
|
|
1573
1576
|
for memory_section in memory_sections:
|
|
1574
1577
|
child_element = ET.SubElement(sections_tag, "MEMORY-SECTION")
|
|
1575
|
-
self.
|
|
1578
|
+
self.writeIdentifiable(child_element, memory_section)
|
|
1576
1579
|
self.setChildElementOptionalLiteral(child_element, "ALIGNMENT", memory_section.getAlignment())
|
|
1577
1580
|
self.setChildElementOptionalLiteral(child_element, "MEM-CLASS-SYMBOL", memory_section.getMemClassSymbol())
|
|
1578
1581
|
self.setMemorySectionOptions(child_element, memory_section.getOptions())
|
|
@@ -1583,7 +1586,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1583
1586
|
|
|
1584
1587
|
def setStackUsage(self, element: ET.Element, usage: StackUsage):
|
|
1585
1588
|
self.logger.debug("Write StackUsage %s" % usage.getShortName())
|
|
1586
|
-
self.
|
|
1589
|
+
self.writeIdentifiable(element, usage)
|
|
1587
1590
|
|
|
1588
1591
|
def setRoughEstimateStackUsage(self, element: ET.Element, usage: RoughEstimateStackUsage):
|
|
1589
1592
|
if usage is not None:
|
|
@@ -1603,12 +1606,12 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1603
1606
|
def setResourceConsumption(self, element: ET.Element, consumption: ResourceConsumption):
|
|
1604
1607
|
if consumption is not None:
|
|
1605
1608
|
child_element = ET.SubElement(element, "RESOURCE-CONSUMPTION")
|
|
1606
|
-
self.
|
|
1609
|
+
self.writeIdentifiable(child_element, consumption)
|
|
1607
1610
|
self.writeMemorySections(child_element, consumption)
|
|
1608
1611
|
self.writeStackUsages(child_element, consumption.getStackUsages())
|
|
1609
1612
|
|
|
1610
1613
|
def writeImplementation(self, element: ET.Element, impl: Implementation):
|
|
1611
|
-
self.
|
|
1614
|
+
self.writeIdentifiable(element, impl)
|
|
1612
1615
|
self.writeCodeDescriptors(element, impl)
|
|
1613
1616
|
self.setChildElementOptionalLiteral(element, "PROGRAMMING-LANGUAGE", impl.getProgrammingLanguage())
|
|
1614
1617
|
self.setResourceConsumption(element, impl.getResourceConsumption())
|
|
@@ -1671,7 +1674,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1671
1674
|
def setEndToEndProtection(self, element: ET.Element, protection: EndToEndProtection):
|
|
1672
1675
|
if protection is not None:
|
|
1673
1676
|
child_element = ET.SubElement(element, "END-TO-END-PROTECTION")
|
|
1674
|
-
self.
|
|
1677
|
+
self.writeIdentifiable(child_element, protection)
|
|
1675
1678
|
self.setEndToEndDescription(child_element, "END-TO-END-PROFILE", protection.endToEndProfile)
|
|
1676
1679
|
self.writeEndToEndProtectionVariablePrototypes(child_element, protection)
|
|
1677
1680
|
|
|
@@ -1686,7 +1689,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1686
1689
|
def writeEndToEndProtectionSet(self, element: ET.Element, protection_set: EndToEndProtectionSet):
|
|
1687
1690
|
self.logger.debug("writeEndToEndProtectionSet %s" % protection_set.getShortName())
|
|
1688
1691
|
child_element = ET.SubElement(element, "END-TO-END-PROTECTION-SET")
|
|
1689
|
-
self.
|
|
1692
|
+
self.writeIdentifiable(child_element, protection_set)
|
|
1690
1693
|
self.writeEndToEndProtections(child_element, protection_set)
|
|
1691
1694
|
|
|
1692
1695
|
def setAutosarDataPrototype(self, element: ET.Element, prototype: AutosarDataPrototype):
|
|
@@ -1696,7 +1699,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1696
1699
|
def writeVariableDataPrototype(self, element: ET.Element, prototype: VariableDataPrototype):
|
|
1697
1700
|
self.logger.debug("writeVariableDataPrototype %s" % prototype.getShortName())
|
|
1698
1701
|
child_element = ET.SubElement(element, "VARIABLE-DATA-PROTOTYPE")
|
|
1699
|
-
self.
|
|
1702
|
+
self.writeIdentifiable(child_element, prototype)
|
|
1700
1703
|
self.setAutosarDataPrototype(child_element, prototype)
|
|
1701
1704
|
self.setValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
|
|
1702
1705
|
|
|
@@ -1722,7 +1725,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1722
1725
|
def writeSenderReceiverInterface(self, element: ET.Element, sr_interface: SenderReceiverInterface):
|
|
1723
1726
|
self.logger.debug("writeSenderReceiverInterface %s" % sr_interface.getShortName())
|
|
1724
1727
|
child_element = ET.SubElement(element, "SENDER-RECEIVER-INTERFACE")
|
|
1725
|
-
self.
|
|
1728
|
+
self.writeIdentifiable(child_element, sr_interface)
|
|
1726
1729
|
self.setChildElementOptionalBooleanValue(child_element, "IS-SERVICE", sr_interface.getIsService())
|
|
1727
1730
|
self.writeSenderReceiverInterfaceDataElements(child_element, sr_interface)
|
|
1728
1731
|
self.writeSenderReceiverInterfaceInvalidationPolicies(child_element, sr_interface)
|
|
@@ -1736,7 +1739,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1736
1739
|
self.setChildElementOptionalRefType(entry_tag, "BSW-MODULE-ENTRY-REF", entry)
|
|
1737
1740
|
|
|
1738
1741
|
def setModeDeclarationGroupPrototype(self, element: ET.Element, prototype: ModeDeclarationGroupPrototype):
|
|
1739
|
-
self.
|
|
1742
|
+
self.writeIdentifiable(element, prototype)
|
|
1740
1743
|
self.setChildElementOptionalRefType(element, "TYPE-TREF", prototype.type_tref)
|
|
1741
1744
|
|
|
1742
1745
|
def writeProvidedModeGroup(self, element: ET.Element, parent: BswModuleDescription):
|
|
@@ -1755,7 +1758,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1755
1758
|
self.setChildElementOptionalRefType(child_element, "CAN-ENTER-EXCLUSIVE-AREA-REF", ref)
|
|
1756
1759
|
|
|
1757
1760
|
def setExecutableEntity(self, element: ET.Element, entity: ExecutableEntity):
|
|
1758
|
-
self.
|
|
1761
|
+
self.writeIdentifiable(element, entity)
|
|
1759
1762
|
self.writeCanEnterExclusiveAreaRefs(element, entity)
|
|
1760
1763
|
self.setChildElementOptionalFloatValue(element, "MINIMUM-START-INTERVAL", entity.getMinimumStartInterval())
|
|
1761
1764
|
self.setChildElementOptionalRefType(element, "SW-ADDR-METHOD-REF", entity.getSwAddrMethodRef())
|
|
@@ -1805,7 +1808,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1805
1808
|
self.notImplemented("Unsupported BswModuleEntity <%s>" % type(entity))
|
|
1806
1809
|
|
|
1807
1810
|
def setBswEvent(self, element: ET.Element, event: BswEvent):
|
|
1808
|
-
self.
|
|
1811
|
+
self.writeIdentifiable(element, event)
|
|
1809
1812
|
self.setChildElementOptionalRefType(element, "STARTS-ON-EVENT-REF", event.startsOnEventRef)
|
|
1810
1813
|
|
|
1811
1814
|
def setBswScheduleEvent(self, element: ET.Element, event: BswScheduleEvent):
|
|
@@ -1872,7 +1875,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1872
1875
|
def writeBswModuleDescription(self, element: ET.Element, desc: BswModuleDescription):
|
|
1873
1876
|
self.logger.debug("writeBswModuleDescription %s" % desc.getShortName())
|
|
1874
1877
|
child_element = ET.SubElement(element, "BSW-MODULE-DESCRIPTION")
|
|
1875
|
-
self.
|
|
1878
|
+
self.writeIdentifiable(child_element, desc)
|
|
1876
1879
|
self.setChildElementOptionalNumericalValue(child_element, "MODULE-ID", desc.getModuleId())
|
|
1877
1880
|
self.writerBswModuleDescriptionImplementedEntry(child_element, desc)
|
|
1878
1881
|
self.writeProvidedModeGroup(child_element, desc)
|
|
@@ -1891,7 +1894,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1891
1894
|
self.logger.debug("Set SwServiceArg <%s>" % arg.getShortName())
|
|
1892
1895
|
if arg is not None:
|
|
1893
1896
|
child_element = ET.SubElement(element, "SW-SERVICE-ARG")
|
|
1894
|
-
self.
|
|
1897
|
+
self.writeIdentifiable(child_element, arg)
|
|
1895
1898
|
self.setChildElementOptionalLiteral(child_element, "DIRECTION", arg.getDirection())
|
|
1896
1899
|
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", arg.getSwDataDefProps())
|
|
1897
1900
|
|
|
@@ -1905,7 +1908,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1905
1908
|
def writeBswModuleEntry(self, element: ET.Element, entry: BswModuleEntry):
|
|
1906
1909
|
self.logger.debug("writeBswModuleDescription %s" % entry.getShortName())
|
|
1907
1910
|
child_element = ET.SubElement(element, "BSW-MODULE-ENTRY")
|
|
1908
|
-
self.
|
|
1911
|
+
self.writeIdentifiable(child_element, entry)
|
|
1909
1912
|
self.setChildElementOptionalNumericalValue(child_element, "SERVICE-ID", entry.getServiceId())
|
|
1910
1913
|
self.setChildElementOptionalBooleanValue(child_element, "IS-REENTRANT", entry.getIsReentrant())
|
|
1911
1914
|
self.setChildElementOptionalBooleanValue(child_element, "IS-SYNCHRONOUS", entry.getIsSynchronous())
|
|
@@ -1932,7 +1935,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1932
1935
|
def writeSwcBswMapping(self, element: ET.Element, mapping: SwcBswMapping):
|
|
1933
1936
|
self.logger.debug("writeBswModuleDescription %s" % mapping.getShortName())
|
|
1934
1937
|
child_element = ET.SubElement(element, "SWC-BSW-MAPPING")
|
|
1935
|
-
self.
|
|
1938
|
+
self.writeIdentifiable(child_element, mapping)
|
|
1936
1939
|
self.setChildElementOptionalRefType(child_element, "BSW-BEHAVIOR-REF", mapping.getBswBehaviorRef())
|
|
1937
1940
|
self.writeSwcBswRunnableMappings(child_element, mapping)
|
|
1938
1941
|
self.setChildElementOptionalRefType(child_element, "SWC-BEHAVIOR-REF", mapping.getSwcBehaviorRef())
|
|
@@ -1979,7 +1982,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1979
1982
|
sub_elements_tag = ET.SubElement(element, "SUB-ELEMENTS")
|
|
1980
1983
|
for type_element in sub_elements:
|
|
1981
1984
|
child_element = ET.SubElement(sub_elements_tag, "IMPLEMENTATION-DATA-TYPE-ELEMENT")
|
|
1982
|
-
self.
|
|
1985
|
+
self.writeIdentifiable(child_element, type_element)
|
|
1983
1986
|
self.setChildElementOptionalLiteral(child_element, "ARRAY-SIZE", type_element.getArraySize())
|
|
1984
1987
|
self.setChildElementOptionalLiteral(child_element, "ARRAY-SIZE-HANDLING", type_element.getArraySizeHandling())
|
|
1985
1988
|
self.setChildElementOptionalLiteral(child_element, "ARRAY-SIZE-SEMANTICS", type_element.getArraySizeSemantics())
|
|
@@ -2000,7 +2003,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2000
2003
|
arguments_tag = ET.SubElement(element, "ARGUMENTS")
|
|
2001
2004
|
for prototype in arguments:
|
|
2002
2005
|
child_element = ET.SubElement(arguments_tag, "ARGUMENT-DATA-PROTOTYPE")
|
|
2003
|
-
self.
|
|
2006
|
+
self.writeIdentifiable(child_element, prototype)
|
|
2004
2007
|
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", prototype.swDataDefProps)
|
|
2005
2008
|
self.setChildElementOptionalRefType(child_element, "TYPE-TREF", prototype.typeTRef)
|
|
2006
2009
|
self.setChildElementOptionalLiteral(child_element, "DIRECTION", prototype.direction)
|
|
@@ -2016,7 +2019,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2016
2019
|
def writeClientServerOperation(self, element: ET.Element, operation: ClientServerOperation):
|
|
2017
2020
|
self.logger.debug("writeClientServerOperation %s" % operation.getShortName())
|
|
2018
2021
|
child_element = ET.SubElement(element, "CLIENT-SERVER-OPERATION")
|
|
2019
|
-
self.
|
|
2022
|
+
self.writeIdentifiable(child_element, operation)
|
|
2020
2023
|
self.writeArgumentDataPrototypes(child_element, operation)
|
|
2021
2024
|
self.writePossibleErrorRefs(child_element, operation)
|
|
2022
2025
|
|
|
@@ -2033,7 +2036,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2033
2036
|
def writeApplicationError(self, element: ET.Element, error: ApplicationError):
|
|
2034
2037
|
self.logger.debug("writeApplicationError %s" % error.getShortName())
|
|
2035
2038
|
child_element = ET.SubElement(element, "APPLICATION-ERROR")
|
|
2036
|
-
self.
|
|
2039
|
+
self.writeIdentifiable(child_element, error)
|
|
2037
2040
|
self.setChildElementOptionalNumericalValue(child_element, "ERROR-CODE", error.error_code)
|
|
2038
2041
|
|
|
2039
2042
|
def writePossibleErrors(self, element: ET.Element, parent: ClientServerInterface):
|
|
@@ -2047,7 +2050,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2047
2050
|
self._raiseError("Unsupported PossibleError %s" % type(error))
|
|
2048
2051
|
|
|
2049
2052
|
def setPortInterface(self, element: ET.Element, port_interface: PortInterface):
|
|
2050
|
-
self.
|
|
2053
|
+
self.writeIdentifiable(element, port_interface)
|
|
2051
2054
|
self.setChildElementOptionalBooleanValue(element, "IS-SERVICE", port_interface.isService)
|
|
2052
2055
|
self.setChildElementOptionalLiteral(element, "SERVICE-KIND", port_interface.serviceKind)
|
|
2053
2056
|
|
|
@@ -2092,7 +2095,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2092
2095
|
child_element = ET.SubElement(element, key)
|
|
2093
2096
|
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", layout_v.getShortLabel())
|
|
2094
2097
|
self.setChildElementOptionalRefType(child_element, "BASE-TYPE-REF", layout_v.getBaseTypeRef())
|
|
2095
|
-
self.
|
|
2098
|
+
self.setChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-V-AXIS", layout_v.getSwRecordLayoutVAxis())
|
|
2096
2099
|
self.setChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-V-PROP", layout_v.getSwRecordLayoutVProp())
|
|
2097
2100
|
self.setChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-V-INDEX", layout_v.getSwRecordLayoutVIndex())
|
|
2098
2101
|
|
|
@@ -2101,7 +2104,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2101
2104
|
child_element = ET.SubElement(element, key)
|
|
2102
2105
|
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", group.getShortLabel())
|
|
2103
2106
|
self.setChildElementOptionalLiteral(child_element, "CATEGORY", group.getCategory())
|
|
2104
|
-
self.
|
|
2107
|
+
self.setChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-AXIS", group.getSwRecordLayoutGroupAxis())
|
|
2105
2108
|
self.setChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-INDEX", group.getSwRecordLayoutGroupIndex())
|
|
2106
2109
|
self.setChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-FROM", group.getSwRecordLayoutGroupFrom())
|
|
2107
2110
|
self.setChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-TO", group.getSwRecordLayoutGroupTo())
|
|
@@ -2113,13 +2116,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2113
2116
|
def writeSwRecordLayout(self, element: ET.Element, layout: SwRecordLayout):
|
|
2114
2117
|
self.logger.debug("writeSwRecordLayout %s" % layout.getShortName())
|
|
2115
2118
|
child_element = ET.SubElement(element, "SW-RECORD-LAYOUT")
|
|
2116
|
-
self.
|
|
2119
|
+
self.writeIdentifiable(child_element, layout)
|
|
2117
2120
|
self.setSwRecordLayoutGroup(child_element, "SW-RECORD-LAYOUT-GROUP", layout.getSwRecordLayoutGroup())
|
|
2118
2121
|
|
|
2119
2122
|
def writeSwAddrMethod(self, element: ET.Element, method: SwAddrMethod):
|
|
2120
2123
|
self.logger.debug("writeSwAddrMethod %s" % method.getShortName())
|
|
2121
2124
|
child_element = ET.SubElement(element, "SW-ADDR-METHOD")
|
|
2122
|
-
self.
|
|
2125
|
+
self.writeIdentifiable(child_element, method)
|
|
2123
2126
|
self.setChildElementOptionalLiteral(child_element, "MEMORY-ALLOCATION-KEYWORD-POLICY", method.getMemoryAllocationKeywordPolicy())
|
|
2124
2127
|
options = method.getOptions()
|
|
2125
2128
|
if len(options) > 0:
|
|
@@ -2161,13 +2164,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2161
2164
|
def writeDataTypeMappingSet(self, element: ET.Element, mapping_set: DataTypeMappingSet):
|
|
2162
2165
|
self.logger.debug("writeDataTypeMappingSet %s" % mapping_set.getShortName())
|
|
2163
2166
|
child_element = ET.SubElement(element, "DATA-TYPE-MAPPING-SET")
|
|
2164
|
-
self.
|
|
2167
|
+
self.writeIdentifiable(child_element, mapping_set)
|
|
2165
2168
|
self.writeDataTypeMaps(child_element, mapping_set)
|
|
2166
2169
|
self.writeModeRequestTypeMaps(child_element, mapping_set)
|
|
2167
2170
|
|
|
2168
2171
|
def setModeDeclaration(self, element: ET.Element, mode_declaration: ModeDeclaration):
|
|
2169
2172
|
child_element = ET.SubElement(element, "MODE-DECLARATION")
|
|
2170
|
-
self.
|
|
2173
|
+
self.writeIdentifiable(child_element, mode_declaration)
|
|
2171
2174
|
self.setChildElementOptionalNumericalValue(child_element, "VALUE", mode_declaration.getValue())
|
|
2172
2175
|
|
|
2173
2176
|
def writeModeDeclarationGroupModeDeclaration(self, element: ET.Element, parent: ModeDeclarationGroup):
|
|
@@ -2180,7 +2183,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2180
2183
|
def writeModeDeclarationGroup(self, element: ET.Element, group: ModeDeclarationGroup):
|
|
2181
2184
|
self.logger.debug("writeModeDeclarationGroup %s" % group.getShortName())
|
|
2182
2185
|
child_element = ET.SubElement(element, "MODE-DECLARATION-GROUP")
|
|
2183
|
-
self.
|
|
2186
|
+
self.writeIdentifiable(child_element, group)
|
|
2184
2187
|
self.setChildElementOptionalRefType(child_element, "INITIAL-MODE-REF", group.initialModeRef)
|
|
2185
2188
|
self.writeModeDeclarationGroupModeDeclaration(child_element, group)
|
|
2186
2189
|
self.setChildElementOptionalNumericalValue(child_element, "ON-TRANSITION-VALUE", group.getOnTransitionValue())
|
|
@@ -2190,7 +2193,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2190
2193
|
if len(mode_groups) > 0:
|
|
2191
2194
|
mode_group = mode_groups[0]
|
|
2192
2195
|
child_element = ET.SubElement(element, "MODE-GROUP")
|
|
2193
|
-
self.
|
|
2196
|
+
self.writeIdentifiable(child_element, mode_group)
|
|
2194
2197
|
self.setChildElementOptionalRefType(child_element, "TYPE-TREF", mode_group.type_tref)
|
|
2195
2198
|
|
|
2196
2199
|
def writeModeSwitchInterface(self, element: ET.Element, mode_interface: ModeSwitchInterface):
|
|
@@ -2207,7 +2210,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2207
2210
|
|
|
2208
2211
|
def writeEOCExecutableEntityRef(self, element: ET.Element, entity_ref: EOCExecutableEntityRef):
|
|
2209
2212
|
child_element = ET.SubElement(element, "EOC-EXECUTABLE-ENTITY-REF")
|
|
2210
|
-
self.
|
|
2213
|
+
self.writeIdentifiable(child_element, entity_ref)
|
|
2211
2214
|
self.setEOCExecutableEntityRefSuccessorRefs(child_element, entity_ref.getSuccessorRefs())
|
|
2212
2215
|
|
|
2213
2216
|
def writeExecutionOrderConstraintOrderedElement(self, element: ET.Element, constraint: ExecutionOrderConstraint):
|
|
@@ -2223,7 +2226,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2223
2226
|
def writeExecutionOrderConstraint(self, element: ET.Element, constraint: ExecutionOrderConstraint):
|
|
2224
2227
|
self.logger.debug("writeExecutionOrderConstraint %s" % constraint.getShortName())
|
|
2225
2228
|
child_element = ET.SubElement(element, "EXECUTION-ORDER-CONSTRAINT")
|
|
2226
|
-
self.
|
|
2229
|
+
self.writeIdentifiable(child_element, constraint)
|
|
2227
2230
|
self.writeExecutionOrderConstraintOrderedElement(child_element, constraint)
|
|
2228
2231
|
|
|
2229
2232
|
def writeTimingRequirements(self, element: ET.Element, extension: TimingExtension):
|
|
@@ -2242,7 +2245,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2242
2245
|
def writeSwcTiming(self, element: ET.Element, timing: SwcTiming):
|
|
2243
2246
|
self.logger.debug("writeSWcTiming %s" % timing.getShortName())
|
|
2244
2247
|
child_element = ET.SubElement(element, "SWC-TIMING")
|
|
2245
|
-
self.
|
|
2248
|
+
self.writeIdentifiable(child_element, timing)
|
|
2246
2249
|
self.writeTimingExtension(child_element, timing)
|
|
2247
2250
|
|
|
2248
2251
|
def writePduToFrameMappings(self, element: ET.Element, parent: Frame):
|
|
@@ -2251,13 +2254,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2251
2254
|
mappings_tags = ET.SubElement(element, "PDU-TO-FRAME-MAPPINGS")
|
|
2252
2255
|
for mapping in mappings:
|
|
2253
2256
|
child_element = ET.SubElement(mappings_tags, "PDU-TO-FRAME-MAPPING")
|
|
2254
|
-
self.
|
|
2257
|
+
self.writeIdentifiable(child_element, mapping)
|
|
2255
2258
|
self.setChildElementOptionalLiteral(child_element, "PACKING-BYTE-ORDER", mapping.packingByteOrder)
|
|
2256
2259
|
self.setChildElementOptionalRefType(child_element, "PDU-REF", mapping.pduRef)
|
|
2257
2260
|
self.setChildElementOptionalNumericalValue(child_element, "START-POSITION", mapping.startPosition)
|
|
2258
2261
|
|
|
2259
2262
|
def writeFrame(self, element: ET.Element, frame: Frame):
|
|
2260
|
-
self.
|
|
2263
|
+
self.writeIdentifiable(element, frame)
|
|
2261
2264
|
self.setChildElementOptionalNumericalValue(element, "FRAME-LENGTH", frame.frameLength)
|
|
2262
2265
|
self.writePduToFrameMappings(element, frame)
|
|
2263
2266
|
|
|
@@ -2284,15 +2287,21 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2284
2287
|
self.setChildElementOptionalRefType(refs_tag, "TX-NM-PDU-REF", ref)
|
|
2285
2288
|
|
|
2286
2289
|
def writeCanNmNode(self, element: ET.Element, nm_node: CanNmNode):
|
|
2287
|
-
self.logger.debug("
|
|
2290
|
+
self.logger.debug("write CanNmNode %s" % nm_node.getShortName())
|
|
2288
2291
|
child_element = ET.SubElement(element, "CAN-NM-NODE")
|
|
2289
|
-
self.
|
|
2292
|
+
self.writeIdentifiable(child_element, nm_node)
|
|
2290
2293
|
self.writeNmNode(child_element, nm_node)
|
|
2291
2294
|
|
|
2292
2295
|
self.setChildElementOptionalFloatValue(child_element, "NM-MSG-CYCLE-OFFSET", nm_node.getNmMsgCycleOffset())
|
|
2293
2296
|
self.setChildElementOptionalFloatValue(child_element, "NM-MSG-REDUCED-TIME", nm_node.getNmMsgReducedTime())
|
|
2294
2297
|
self.setChildElementRxIdentifierRange(child_element, "NM-RANGE-CONFIG", nm_node.getNmRangeConfig())
|
|
2295
2298
|
|
|
2299
|
+
def writeUdpNmNode(self, element: ET.Element, nm_node: UdpNmNode):
|
|
2300
|
+
self.logger.debug("write UdpNmNode %s" % nm_node.getShortName())
|
|
2301
|
+
child_element = ET.SubElement(element, "UDP-NM-NODE")
|
|
2302
|
+
self.writeIdentifiable(child_element, nm_node)
|
|
2303
|
+
self.writeNmNode(child_element, nm_node)
|
|
2304
|
+
|
|
2296
2305
|
def writeNmClusterNmNodes(self, element: ET.Element, parent: NmCluster):
|
|
2297
2306
|
nodes = parent.getNmNodes()
|
|
2298
2307
|
if len(nodes) > 0:
|
|
@@ -2300,10 +2309,12 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2300
2309
|
for node in nodes:
|
|
2301
2310
|
if isinstance(node, CanNmNode):
|
|
2302
2311
|
self.writeCanNmNode(child_element, node)
|
|
2312
|
+
elif isinstance(node, UdpNmNode):
|
|
2313
|
+
self.writeUdpNmNode(child_element, node)
|
|
2303
2314
|
else:
|
|
2304
|
-
self.
|
|
2315
|
+
self.notImplemented("Unsupported Nm Node <%s>" % type(node))
|
|
2305
2316
|
|
|
2306
|
-
def
|
|
2317
|
+
def writeCanNmClusterCoupling(self, element: ET.Element, coupling: CanNmClusterCoupling):
|
|
2307
2318
|
child_element = ET.SubElement(element, "CAN-NM-CLUSTER-COUPLING")
|
|
2308
2319
|
refs = coupling.getCoupledClusterRefs()
|
|
2309
2320
|
if len(refs) > 0:
|
|
@@ -2314,6 +2325,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2314
2325
|
self.setChildElementOptionalBooleanValue(child_element, "NM-BUSLOAD-REDUCTION-ENABLED", coupling.getNmBusloadReductionEnabled())
|
|
2315
2326
|
self.setChildElementOptionalBooleanValue(child_element, "NM-IMMEDIATE-RESTART-ENABLED", coupling.getNmImmediateRestartEnabled())
|
|
2316
2327
|
|
|
2328
|
+
def writeUdpNmClusterCoupling(self, element: ET.Element, coupling: UdpNmClusterCoupling):
|
|
2329
|
+
child_element = ET.SubElement(element, "UDP-NM-CLUSTER-COUPLING")
|
|
2330
|
+
|
|
2317
2331
|
def writeNmConfigNmClusterCouplings(self, element: ET.Element, config: NmConfig):
|
|
2318
2332
|
self.logger.debug("writeNmConfigNmClusterCouplings %s" % config.getShortName())
|
|
2319
2333
|
couplings = config.getNmClusterCouplings()
|
|
@@ -2321,11 +2335,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2321
2335
|
child_element= ET.SubElement(element, "NM-CLUSTER-COUPLINGS")
|
|
2322
2336
|
for coupling in couplings:
|
|
2323
2337
|
if isinstance(coupling, CanNmClusterCoupling):
|
|
2324
|
-
self.
|
|
2338
|
+
self.writeCanNmClusterCoupling(child_element, coupling)
|
|
2339
|
+
elif isinstance(coupling, UdpNmClusterCoupling):
|
|
2340
|
+
self.writeUdpNmClusterCoupling(child_element, coupling)
|
|
2325
2341
|
else:
|
|
2326
|
-
self.
|
|
2342
|
+
self.notImplemented("Unsupported Nm Cluster Coupling <%s>" % type(coupling))
|
|
2327
2343
|
|
|
2328
2344
|
def writeNmCluster(self, element: ET.Element, cluster: NmCluster):
|
|
2345
|
+
self.writeIdentifiable(element, cluster)
|
|
2329
2346
|
self.setChildElementOptionalRefType(element, "COMMUNICATION-CLUSTER-REF", cluster.communicationClusterRef)
|
|
2330
2347
|
self.setChildElementOptionalNumericalValue(element, "NM-CHANNEL-ID", cluster.nmChannelId)
|
|
2331
2348
|
self.setChildElementOptionalBooleanValue(element, "NM-CHANNEL-SLEEP-MASTER", cluster.nmChannelSleepMaster)
|
|
@@ -2335,7 +2352,6 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2335
2352
|
def writeCanNmCluster(self, element: ET.Element, cluster: CanNmCluster):
|
|
2336
2353
|
self.logger.debug("WriteCanNmCluster %s" % cluster.getShortName())
|
|
2337
2354
|
child_element = ET.SubElement(element, "CAN-NM-CLUSTER")
|
|
2338
|
-
self.setIdentifiable(child_element, cluster)
|
|
2339
2355
|
self.writeNmCluster(child_element, cluster)
|
|
2340
2356
|
|
|
2341
2357
|
self.setChildElementOptionalBooleanValue(child_element, "NM-BUSLOAD-REDUCTION-ACTIVE", cluster.getNmBusloadReductionActive())
|
|
@@ -2353,6 +2369,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2353
2369
|
self.setChildElementOptionalNumericalValue(child_element, "NM-USER-DATA-LENGTH", cluster.getNmUserDataLength())
|
|
2354
2370
|
self.setChildElementOptionalFloatValue(child_element, "NM-WAIT-BUS-SLEEP-TIME", cluster.getNmWaitBusSleepTime())
|
|
2355
2371
|
|
|
2372
|
+
def writeUdpNmCluster(self, element: ET.Element, cluster: CanNmCluster):
|
|
2373
|
+
self.logger.debug("Write UdpNmCluster %s" % cluster.getShortName())
|
|
2374
|
+
child_element = ET.SubElement(element, "UDP-NM-CLUSTER")
|
|
2375
|
+
self.writeNmCluster(child_element, cluster)
|
|
2376
|
+
|
|
2356
2377
|
def writeNmConfigNmClusters(self, element: ET.Element, parent: NmConfig):
|
|
2357
2378
|
clusters = parent.getNmClusters()
|
|
2358
2379
|
if len(clusters) > 0:
|
|
@@ -2360,26 +2381,28 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2360
2381
|
for cluster in clusters:
|
|
2361
2382
|
if isinstance(cluster, CanNmCluster):
|
|
2362
2383
|
self.writeCanNmCluster(child_element, cluster)
|
|
2384
|
+
elif isinstance(cluster, UdpNmCluster):
|
|
2385
|
+
self.writeUdpNmCluster(child_element, cluster)
|
|
2363
2386
|
else:
|
|
2364
|
-
self.
|
|
2387
|
+
self.notImplemented("Unsupported Nm Cluster <%s>" % type(cluster))
|
|
2365
2388
|
|
|
2366
2389
|
def writeNmConfig(self, element: ET.Element, config: NmConfig):
|
|
2367
2390
|
self.logger.debug("WriteNmConfig %s" % config.getShortName())
|
|
2368
2391
|
child_element = ET.SubElement(element, "NM-CONFIG")
|
|
2369
|
-
self.
|
|
2392
|
+
self.writeIdentifiable(child_element, config)
|
|
2370
2393
|
self.writeNmConfigNmClusters(child_element, config)
|
|
2371
2394
|
self.writeNmConfigNmClusterCouplings(child_element, config)
|
|
2372
2395
|
|
|
2373
2396
|
def writeNmPdu(self, element: ET.Element, pdu: NmPdu):
|
|
2374
2397
|
self.logger.debug("NmPdu %s" % pdu.getShortName())
|
|
2375
2398
|
child_element = ET.SubElement(element, "NM-PDU")
|
|
2376
|
-
self.
|
|
2399
|
+
self.writeIdentifiable(child_element, pdu)
|
|
2377
2400
|
self.writeIPdu(child_element, pdu)
|
|
2378
2401
|
|
|
2379
2402
|
def writeNPdu(self, element: ET.Element, pdu: NPdu):
|
|
2380
2403
|
self.logger.debug("NPdu %s" % pdu.getShortName())
|
|
2381
2404
|
child_element = ET.SubElement(element, "N-PDU")
|
|
2382
|
-
self.
|
|
2405
|
+
self.writeIdentifiable(child_element, pdu)
|
|
2383
2406
|
self.writeIPdu(child_element, pdu)
|
|
2384
2407
|
|
|
2385
2408
|
def writeIPdu(self, element: ET.Element, pdu: IPdu):
|
|
@@ -2388,20 +2411,20 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2388
2411
|
def writeDcmIPdu(self, element: ET.Element, pdu: DcmIPdu):
|
|
2389
2412
|
self.logger.debug("DcmIPdu %s" % pdu.getShortName())
|
|
2390
2413
|
child_element = ET.SubElement(element, "DCM-I-PDU")
|
|
2391
|
-
self.
|
|
2414
|
+
self.writeIdentifiable(child_element, pdu)
|
|
2392
2415
|
self.writeIPdu(child_element, pdu)
|
|
2393
2416
|
self.setChildElementOptionalLiteral(child_element, "DIAG-PDU-TYPE", pdu.getDiagPduType())
|
|
2394
2417
|
|
|
2395
2418
|
def writeSecuredIPdu(self, element: ET.Element, pdu: DcmIPdu):
|
|
2396
2419
|
self.logger.debug("SecuredIPdu %s" % pdu.getShortName())
|
|
2397
2420
|
child_element = ET.SubElement(element, "SECURED-I-PDU")
|
|
2398
|
-
self.
|
|
2421
|
+
self.writeIdentifiable(child_element, pdu)
|
|
2399
2422
|
self.writeIPdu(child_element, pdu)
|
|
2400
2423
|
|
|
2401
2424
|
def writeCanTpConfig(self, element: ET.Element, config: CanTpConfig):
|
|
2402
2425
|
self.logger.debug("CanTpConfig %s" % config.getShortName())
|
|
2403
2426
|
child_element = ET.SubElement(element, "CAN-TP-CONFIG")
|
|
2404
|
-
self.
|
|
2427
|
+
self.writeIdentifiable(child_element, config)
|
|
2405
2428
|
|
|
2406
2429
|
def writeFrameTriggering(self, element: ET.Element, triggering: FrameTriggering):
|
|
2407
2430
|
ref_list = triggering.getFramePortRefs()
|
|
@@ -2421,7 +2444,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2421
2444
|
def writeCanFrameTriggering(self, element: ET.Element, triggering: CanFrameTriggering):
|
|
2422
2445
|
self.logger.debug("WRite CanFrameTriggering %s" % triggering.getShortName())
|
|
2423
2446
|
child_element = ET.SubElement(element, "CAN-FRAME-TRIGGERING")
|
|
2424
|
-
self.
|
|
2447
|
+
self.writeIdentifiable(child_element, triggering)
|
|
2425
2448
|
self.writeFrameTriggering(child_element, triggering)
|
|
2426
2449
|
self.setChildElementOptionalLiteral(child_element, "CAN-ADDRESSING-MODE", triggering.getCanAddressingMode())
|
|
2427
2450
|
self.setChildElementOptionalBooleanValue(child_element, "CAN-FD-FRAME-SUPPORT", triggering.getCanFdFrameSupport())
|
|
@@ -2433,7 +2456,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2433
2456
|
def writeLinFrameTriggering(self, element: ET.Element, triggering: LinFrameTriggering):
|
|
2434
2457
|
self.logger.debug("Write LinFrameTriggering %s" % triggering.getShortName())
|
|
2435
2458
|
child_element = ET.SubElement(element, "LIN-FRAME-TRIGGERING")
|
|
2436
|
-
self.
|
|
2459
|
+
self.writeIdentifiable(child_element, triggering)
|
|
2437
2460
|
self.writeFrameTriggering(child_element, triggering)
|
|
2438
2461
|
self.setChildElementOptionalNumericalValue(child_element, "IDENTIFIER", triggering.getIdentifier())
|
|
2439
2462
|
self.setChildElementOptionalLiteral(child_element, "LIN-CHECKSUM", triggering.getLinChecksum())
|
|
@@ -2441,7 +2464,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2441
2464
|
def writeISignalTriggering(self, element: ET.Element, triggering: ISignalTriggering):
|
|
2442
2465
|
self.logger.debug("Write ISignalTriggering %s" % triggering.getShortName())
|
|
2443
2466
|
child_element = ET.SubElement(element, "I-SIGNAL-TRIGGERING")
|
|
2444
|
-
self.
|
|
2467
|
+
self.writeIdentifiable(child_element, triggering)
|
|
2445
2468
|
self.setChildElementOptionalRefType(child_element, "I-SIGNAL-GROUP-REF", triggering.getISignalGroupRef())
|
|
2446
2469
|
ref_list = triggering.getISignalPortRefs()
|
|
2447
2470
|
if len(ref_list) > 0:
|
|
@@ -2453,7 +2476,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2453
2476
|
def writePduTriggering(self, element: ET.Element, triggering: PduTriggering):
|
|
2454
2477
|
self.logger.debug("Write PduTriggering %s" % triggering.getShortName())
|
|
2455
2478
|
child_element = ET.SubElement(element, "PDU-TRIGGERING")
|
|
2456
|
-
self.
|
|
2479
|
+
self.writeIdentifiable(child_element, triggering)
|
|
2457
2480
|
ref_list = triggering.getIPduPortRefs()
|
|
2458
2481
|
if len(ref_list) > 0:
|
|
2459
2482
|
i_signal_port_refs_tag = ET.SubElement(child_element, "I-PDU-PORT-REFS")
|
|
@@ -2505,17 +2528,55 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2505
2528
|
else:
|
|
2506
2529
|
self.notImplemented("Unsupported PduTriggering <%s>" % type(triggering))
|
|
2507
2530
|
|
|
2508
|
-
def
|
|
2531
|
+
def writeCanPhysicalChannel(self, element: ET.Element, channel: CanPhysicalChannel):
|
|
2509
2532
|
self.logger.debug("Set CanPhysicalChannel %s" % channel.getShortName())
|
|
2510
2533
|
child_element = ET.SubElement(element, "CAN-PHYSICAL-CHANNEL")
|
|
2511
|
-
self.
|
|
2534
|
+
self.writeIdentifiable(child_element, channel)
|
|
2512
2535
|
self.writePhysicalChannel(child_element, channel)
|
|
2513
2536
|
|
|
2537
|
+
def writeScheduleTableEntry(self, element: ET.Element, entry: ScheduleTableEntry):
|
|
2538
|
+
self.setChildElementOptionalTimeValue(element, "DELAY", entry.getDelay())
|
|
2539
|
+
self.setChildElementOptionalIntegerValue(element, "POSITION-IN-TABLE", entry.getPositionInTable())
|
|
2540
|
+
|
|
2541
|
+
def setApplicationEntry(self, element: ET.Element, key: str, entry: ApplicationEntry):
|
|
2542
|
+
if entry is not None:
|
|
2543
|
+
child_element = ET.SubElement(element, key)
|
|
2544
|
+
self.writeScheduleTableEntry(child_element, entry)
|
|
2545
|
+
self.setChildElementOptionalRefType(child_element, "FRAME-TRIGGERING-REF", entry.getFrameTriggeringRef())
|
|
2546
|
+
|
|
2547
|
+
def writeLinScheduleTableTableEntries(self, element: ET.Element, table: LinScheduleTable):
|
|
2548
|
+
entries = table.getTableEntries()
|
|
2549
|
+
if len(entries) > 0:
|
|
2550
|
+
child_element = ET.SubElement(element, "TABLE-ENTRYS")
|
|
2551
|
+
for entry in entries:
|
|
2552
|
+
if isinstance(entry, ApplicationEntry):
|
|
2553
|
+
self.setApplicationEntry(child_element, "APPLICATION-ENTRY", entry)
|
|
2554
|
+
else:
|
|
2555
|
+
self.notImplemented("Unsupported Schedule Table <%s>" % type(entry))
|
|
2556
|
+
|
|
2557
|
+
def writeLinScheduleTable(self, element: ET.Element, table: LinScheduleTable):
|
|
2558
|
+
child_element = ET.SubElement(element, "LIN-SCHEDULE-TABLE")
|
|
2559
|
+
self.writeIdentifiable(child_element, table)
|
|
2560
|
+
self.setChildElementOptionalLiteral(child_element, "RESUME-POSITION", table.getResumePosition())
|
|
2561
|
+
self.setChildElementOptionalLiteral(child_element, "RUN-MODE", table.getRunMode())
|
|
2562
|
+
self.writeLinScheduleTableTableEntries(child_element, table)
|
|
2563
|
+
|
|
2564
|
+
def writeLinPhysicalChannelScheduleTables(self, element: ET.Element, channel: LinPhysicalChannel):
|
|
2565
|
+
tables = channel.getScheduleTables()
|
|
2566
|
+
if len(tables) > 0:
|
|
2567
|
+
child_element = ET.SubElement(element, "SCHEDULE-TABLES")
|
|
2568
|
+
for table in tables:
|
|
2569
|
+
if isinstance(table, LinScheduleTable):
|
|
2570
|
+
self.writeLinScheduleTable(child_element, table)
|
|
2571
|
+
else:
|
|
2572
|
+
self.notImplemented("Unsupported Schedule Table <%s>" % type(table))
|
|
2573
|
+
|
|
2514
2574
|
def writeLinPhysicalChannel(self, element: ET.Element, channel: LinPhysicalChannel):
|
|
2515
2575
|
self.logger.debug("Set LinPhysicalChannel %s" % channel.getShortName())
|
|
2516
2576
|
child_element = ET.SubElement(element, "LIN-PHYSICAL-CHANNEL")
|
|
2517
|
-
self.
|
|
2577
|
+
self.writeIdentifiable(child_element, channel)
|
|
2518
2578
|
self.writePhysicalChannel(child_element, channel)
|
|
2579
|
+
self.writeLinPhysicalChannelScheduleTables(child_element, channel)
|
|
2519
2580
|
|
|
2520
2581
|
def setIpv6Configuration(self, element: ET.Element, configuration: Ipv6Configuration):
|
|
2521
2582
|
if configuration is not None:
|
|
@@ -2537,10 +2598,21 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2537
2598
|
else:
|
|
2538
2599
|
self.notImplemented("Unsupported Network EndPoint Address <%s>" % type(address))
|
|
2539
2600
|
|
|
2601
|
+
def setDoIpEntity(self, element: ET.Element, key: str, entity: DoIpEntity):
|
|
2602
|
+
if entity is not None:
|
|
2603
|
+
child_element = ET.SubElement(element, key)
|
|
2604
|
+
self.setChildElementOptionalLiteral(child_element, "DO-IP-ENTITY-ROLE", entity.getDoIpEntityRole())
|
|
2605
|
+
|
|
2606
|
+
def setInfrastructureServices(self, element: ET.Element, key: str, services: InfrastructureServices):
|
|
2607
|
+
if services is not None:
|
|
2608
|
+
child_element = ET.SubElement(element, key)
|
|
2609
|
+
self.setDoIpEntity(child_element, "DO-IP-ENTITY", services.getDoIpEntity())
|
|
2610
|
+
|
|
2540
2611
|
def writeNetworkEndPoint(self, element: ET.Element, end_point: NetworkEndpoint):
|
|
2541
2612
|
self.logger.debug("Set NetworkEndpoint %s" % end_point.getShortName())
|
|
2542
2613
|
child_element = ET.SubElement(element, "NETWORK-ENDPOINT")
|
|
2543
|
-
self.
|
|
2614
|
+
self.writeIdentifiable(child_element, end_point)
|
|
2615
|
+
self.setInfrastructureServices(child_element, "INFRASTRUCTURE-SERVICES", end_point.getInfrastructureServices())
|
|
2544
2616
|
self.writeNetworkEndPointNetworkEndPointAddresses(child_element, end_point.getNetworkEndpointAddresses())
|
|
2545
2617
|
self.setChildElementOptionalPositiveInteger(child_element, "PRIORITY", end_point.getPriority())
|
|
2546
2618
|
|
|
@@ -2571,10 +2643,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2571
2643
|
def setSocketConnection(self, element: ET.Element, connection: SocketConnection):
|
|
2572
2644
|
if connection is not None:
|
|
2573
2645
|
child_element = ET.SubElement(element, "SOCKET-CONNECTION")
|
|
2646
|
+
self.setChildElementOptionalBooleanValue(child_element, "CLIENT-IP-ADDR-FROM-CONNECTION-REQUEST", connection.getClientIpAddrFromConnectionRequest())
|
|
2647
|
+
self.setChildElementOptionalBooleanValue(child_element, "CLIENT-PORT-FROM-CONNECTION-REQUEST", connection.getClientPortFromConnectionRequest())
|
|
2574
2648
|
self.setChildElementOptionalRefType(child_element, "CLIENT-PORT-REF", connection.getClientPortRef())
|
|
2575
2649
|
self.setSocketConnectionPdus(child_element, "PDUS", connection.getPdus())
|
|
2576
2650
|
self.setChildElementOptionalPositiveInteger(child_element, "PDU-COLLECTION-MAX-BUFFER-SIZE", connection.getPduCollectionMaxBufferSize())
|
|
2577
2651
|
self.setChildElementOptionalTimeValue(child_element, "PDU-COLLECTION-TIMEOUT", connection.getPduCollectionTimeout())
|
|
2652
|
+
self.setChildElementOptionalLiteral(child_element, "RUNTIME-IP-ADDRESS-CONFIGURATION", connection.getRuntimeIpAddressConfiguration())
|
|
2653
|
+
self.setChildElementOptionalLiteral(child_element, "RUNTIME-PORT-CONFIGURATION", connection.getRuntimePortConfiguration())
|
|
2578
2654
|
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", connection.getShortLabel())
|
|
2579
2655
|
|
|
2580
2656
|
def writeSocketConnectionBundleConnections(self, element: ET.Element, bundle: SocketConnectionBundle):
|
|
@@ -2604,18 +2680,166 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2604
2680
|
else:
|
|
2605
2681
|
self.notImplemented("Unsupported Connection Bundle <%s>" % type(bundle))
|
|
2606
2682
|
|
|
2607
|
-
def
|
|
2683
|
+
def setTpPort(self, element: ET.SubElement, key: str, port: TpPort):
|
|
2684
|
+
if port is not None:
|
|
2685
|
+
child_element = ET.SubElement(element, key)
|
|
2686
|
+
self.setChildElementOptionalBooleanValue(child_element, "DYNAMICALLY-ASSIGNED", port.getDynamicallyAssigned())
|
|
2687
|
+
self.setChildElementOptionalPositiveInteger(child_element, "PORT-NUMBER", port.getPortNumber())
|
|
2688
|
+
|
|
2689
|
+
def writeUdpTp(self, element: ET.Element, tp: UdpTp):
|
|
2690
|
+
child_element = ET.SubElement(element, "UDP-TP")
|
|
2691
|
+
self.setTpPort(child_element, "UDP-TP-PORT", tp.getUdpTpPort())
|
|
2692
|
+
|
|
2693
|
+
def writeTcpTp(self, element: ET.Element, tp: TcpTp):
|
|
2694
|
+
child_element = ET.SubElement(element, "TCP-TP")
|
|
2695
|
+
self.setChildElementOptionalTimeValue(child_element, "KEEP-ALIVE-INTERVAL", tp.getKeepAliveInterval())
|
|
2696
|
+
self.setChildElementOptionalPositiveInteger(child_element, "KEEP-ALIVE-PROBES-MAX", tp.getKeepAliveProbesMax())
|
|
2697
|
+
self.setChildElementOptionalTimeValue(child_element, "KEEP-ALIVE-TIME", tp.getKeepAliveTime())
|
|
2698
|
+
self.setChildElementOptionalBooleanValue(child_element, "KEEP-ALIVES", tp.getKeepAlives())
|
|
2699
|
+
self.setChildElementOptionalLiteral(child_element, "NAGLES-ALGORITHM", tp.getNaglesAlgorithm())
|
|
2700
|
+
self.setTpPort(child_element, "TCP-TP-PORT", tp.getTcpTpPort())
|
|
2701
|
+
|
|
2702
|
+
def writeGenericTp(self, element: ET.Element, tp: GenericTp):
|
|
2703
|
+
child_element = ET.SubElement(element, "GENERIC-TP")
|
|
2704
|
+
self.setChildElementOptionalLiteral(child_element, "TP-ADDRESS", tp.getTpAddress())
|
|
2705
|
+
self.setChildElementOptionalLiteral(child_element, "TP-TECHNOLOGY", tp.getTpTechnology())
|
|
2706
|
+
|
|
2707
|
+
def writeTransportProtocolConfiguration(self, element: ET.Element, configuration: TransportProtocolConfiguration):
|
|
2708
|
+
if configuration is not None:
|
|
2709
|
+
child_element = ET.SubElement(element, "TP-CONFIGURATION")
|
|
2710
|
+
if isinstance(configuration, UdpTp):
|
|
2711
|
+
self.writeUdpTp(child_element, configuration)
|
|
2712
|
+
elif isinstance(configuration, TcpTp):
|
|
2713
|
+
self.writeTcpTp(child_element, configuration)
|
|
2714
|
+
elif isinstance(configuration, GenericTp):
|
|
2715
|
+
self.writeGenericTp(child_element, configuration)
|
|
2716
|
+
else:
|
|
2717
|
+
self.notImplemented("Unsupported TransportProtocolConfiguration <%s>" % type(configuration))
|
|
2718
|
+
|
|
2719
|
+
return configuration
|
|
2720
|
+
|
|
2721
|
+
def writeConsumedEventGroupRoutingGroupRefs(self, element: ET.Element, group: ConsumedEventGroup):
|
|
2722
|
+
refs = group.getRoutingGroupRefs()
|
|
2723
|
+
if len(refs) > 0:
|
|
2724
|
+
child_element = ET.SubElement(element, "ROUTING-GROUP-REFS")
|
|
2725
|
+
for ref in refs:
|
|
2726
|
+
self.setChildElementOptionalRefType(child_element, "ROUTING-GROUP-REF", ref)
|
|
2727
|
+
|
|
2728
|
+
def setRequestResponseDelay(self, element: ET.Element, key: str, delay: RequestResponseDelay):
|
|
2729
|
+
if delay is not None:
|
|
2730
|
+
child_element = ET.SubElement(element, key)
|
|
2731
|
+
self.setChildElementOptionalTimeValue(child_element, "MAX-VALUE", delay.getMaxValue())
|
|
2732
|
+
self.setChildElementOptionalTimeValue(child_element, "MIN-VALUE", delay.getMinValue())
|
|
2733
|
+
|
|
2734
|
+
def setInitialSdDelayConfig(self, element: ET.Element, key: str, config: InitialSdDelayConfig):
|
|
2735
|
+
if config is not None:
|
|
2736
|
+
child_element = ET.SubElement(element, key)
|
|
2737
|
+
self.setChildElementOptionalTimeValue(child_element, "INITIAL-DELAY-MAX-VALUE", config.getInitialDelayMaxValue())
|
|
2738
|
+
self.setChildElementOptionalTimeValue(child_element, "INITIAL-DELAY-MIN-VALUE", config.getInitialDelayMinValue())
|
|
2739
|
+
self.setChildElementOptionalTimeValue(child_element, "INITIAL-REPETITIONS-BASE-DELAY", config.getInitialRepetitionsBaseDelay())
|
|
2740
|
+
self.setChildElementOptionalPositiveInteger(child_element, "INITIAL-REPETITIONS-MAX", config.getInitialRepetitionsMax())
|
|
2741
|
+
|
|
2742
|
+
def setSdClientConfig(self, element: ET.Element, key: str, config: SdClientConfig):
|
|
2743
|
+
if config is not None:
|
|
2744
|
+
child_element = ET.SubElement(element, key)
|
|
2745
|
+
|
|
2746
|
+
self.setChildElementOptionalPositiveInteger(child_element, "CLIENT-SERVICE-MAJOR-VERSION", config.getClientServiceMajorVersion())
|
|
2747
|
+
self.setChildElementOptionalPositiveInteger(child_element, "CLIENT-SERVICE-MINOR-VERSION", config.getClientServiceMinorVersion())
|
|
2748
|
+
self.setInitialSdDelayConfig(child_element, "INITIAL-FIND-BEHAVIOR", config.getInitialFindBehavior())
|
|
2749
|
+
self.setRequestResponseDelay(child_element, "REQUEST-RESPONSE-DELAY", config.getRequestResponseDelay())
|
|
2750
|
+
self.setChildElementOptionalPositiveInteger(child_element, "TTL", config.getTtl())
|
|
2751
|
+
|
|
2752
|
+
def writeConsumedEventGroup(self, element: ET.Element, group: ConsumedEventGroup):
|
|
2753
|
+
child_element = ET.SubElement(element, "CONSUMED-EVENT-GROUP")
|
|
2754
|
+
self.writeIdentifiable(child_element, group)
|
|
2755
|
+
self.setChildElementOptionalRefType(child_element, "APPLICATION-ENDPOINT-REF", group.getApplicationEndpointRef())
|
|
2756
|
+
self.setChildElementOptionalPositiveInteger(child_element, "EVENT-GROUP-IDENTIFIER", group.getEventGroupIdentifier())
|
|
2757
|
+
self.writeConsumedEventGroupRoutingGroupRefs(child_element, group)
|
|
2758
|
+
self.setSdClientConfig(child_element, "SD-CLIENT-CONFIG", group.getSdClientConfig())
|
|
2759
|
+
|
|
2760
|
+
def writeConsumedServiceInstanceConsumedEventGroups(self, element: ET.Element, instance: ConsumedServiceInstance):
|
|
2761
|
+
groups = instance.getConsumedEventGroups()
|
|
2762
|
+
if len(groups) > 0:
|
|
2763
|
+
child_element = ET.SubElement(element, "CONSUMED-EVENT-GROUPS")
|
|
2764
|
+
for group in groups:
|
|
2765
|
+
if isinstance(group, ConsumedEventGroup):
|
|
2766
|
+
self.writeConsumedEventGroup(child_element, group)
|
|
2767
|
+
else:
|
|
2768
|
+
self.notImplemented("Unsupported ConsumedEventGroups <%s>" % type(group))
|
|
2769
|
+
|
|
2770
|
+
def writeConsumedServiceInstance(self, element: ET.Element, instance: ConsumedServiceInstance):
|
|
2771
|
+
child_element = ET.SubElement(element, "CONSUMED-SERVICE-INSTANCE")
|
|
2772
|
+
self.writeIdentifiable(child_element, instance)
|
|
2773
|
+
self.writeConsumedServiceInstanceConsumedEventGroups(child_element, instance)
|
|
2774
|
+
self.setChildElementOptionalRefType(child_element, "PROVIDED-SERVICE-INSTANCE-REF", instance.getProvidedServiceInstanceRef())
|
|
2775
|
+
self.setSdClientConfig(child_element, "SD-CLIENT-CONFIG", instance.getSdClientConfig())
|
|
2776
|
+
|
|
2777
|
+
def writeSocketAddressApplicationEndpointConsumedServiceInstances(self, element: ET.Element, end_point: ApplicationEndpoint):
|
|
2778
|
+
instances = end_point.getConsumedServiceInstances()
|
|
2779
|
+
if len(instances) > 0:
|
|
2780
|
+
child_element = ET.SubElement(element, "CONSUMED-SERVICE-INSTANCES")
|
|
2781
|
+
for instance in instances:
|
|
2782
|
+
if isinstance(instance, ConsumedServiceInstance):
|
|
2783
|
+
self.writeConsumedServiceInstance(child_element, instance)
|
|
2784
|
+
else:
|
|
2785
|
+
self.notImplemented("Unsupported ConsumedServiceInstances <%s>" % type(instance))
|
|
2786
|
+
|
|
2787
|
+
def writeSocketAddressApplicationEndpoint(self, element: ET.Element, address: SocketAddress):
|
|
2788
|
+
end_point = address.getApplicationEndpoint()
|
|
2789
|
+
if end_point is not None:
|
|
2790
|
+
child_element = ET.SubElement(element, "APPLICATION-ENDPOINT")
|
|
2791
|
+
self.writeIdentifiable(child_element, end_point)
|
|
2792
|
+
self.writeSocketAddressApplicationEndpointConsumedServiceInstances(child_element, end_point)
|
|
2793
|
+
self.setChildElementOptionalRefType(child_element, "NETWORK-ENDPOINT-REF", end_point.getNetworkEndpointRef())
|
|
2794
|
+
self.setChildElementOptionalPositiveInteger(child_element, "PRIORITY", end_point.getPriority())
|
|
2795
|
+
self.writeTransportProtocolConfiguration(child_element, end_point.getTpConfiguration())
|
|
2796
|
+
|
|
2797
|
+
def writeSocketAddressMulticastConnectorRefs(self, element: ET.Element, address: SocketAddress):
|
|
2798
|
+
refs = address.getMulticastConnectorRefs()
|
|
2799
|
+
if len(refs) > 0:
|
|
2800
|
+
child_element = ET.SubElement(element, "MULTICAST-CONNECTOR-REFS")
|
|
2801
|
+
for ref in refs:
|
|
2802
|
+
self.setChildElementOptionalRefType(child_element, "MULTICAST-CONNECTOR-REF", ref)
|
|
2803
|
+
|
|
2804
|
+
def writeSocketAddress(self, element: ET.Element, address: SocketAddress):
|
|
2805
|
+
child_element = ET.SubElement(element, "SOCKET-ADDRESS")
|
|
2806
|
+
self.writeIdentifiable(child_element, address)
|
|
2807
|
+
self.writeSocketAddressApplicationEndpoint(child_element, address)
|
|
2808
|
+
self.writeSocketAddressMulticastConnectorRefs(child_element, address)
|
|
2809
|
+
self.setChildElementOptionalRefType(child_element, "CONNECTOR-REF", address.getConnectorRef())
|
|
2810
|
+
self.setChildElementOptionalPositiveInteger(child_element, "PORT-ADDRESS", address.getPortAddress())
|
|
2811
|
+
|
|
2812
|
+
def writeSoAdConfigSocketAddresses(self, element: ET.Element, config: SoAdConfig):
|
|
2813
|
+
addresses = config.getSocketAddresses()
|
|
2814
|
+
if len(addresses) > 0:
|
|
2815
|
+
child_element = ET.SubElement(element, "SOCKET-ADDRESSS")
|
|
2816
|
+
for address in addresses:
|
|
2817
|
+
if isinstance(address, SocketAddress):
|
|
2818
|
+
self.writeSocketAddress(child_element, address)
|
|
2819
|
+
else:
|
|
2820
|
+
self.notImplemented("Unsupported Socket Address <%s>" % type(address))
|
|
2821
|
+
|
|
2822
|
+
def writeSoAdConfig(self, element: ET.Element, key: str, config: SoAdConfig):
|
|
2608
2823
|
if config is not None:
|
|
2609
2824
|
child_element = ET.SubElement(element, key)
|
|
2610
2825
|
self.writeSoAdConfigConnectionBundles(child_element, config)
|
|
2826
|
+
self.writeSoAdConfigSocketAddresses(child_element, config)
|
|
2827
|
+
|
|
2828
|
+
def writeEthernetPhysicalChannelVlan(self, element: ET.Element, channel: EthernetPhysicalChannel):
|
|
2829
|
+
vlan = channel.getVlan()
|
|
2830
|
+
if vlan is not None:
|
|
2831
|
+
child_element = ET.SubElement(element, "VLAN")
|
|
2832
|
+
self.writeIdentifiable(child_element, vlan)
|
|
2833
|
+
self.setChildElementOptionalPositiveInteger(child_element, "VLAN-IDENTIFIER", vlan.getVlanIdentifier())
|
|
2611
2834
|
|
|
2612
|
-
def
|
|
2835
|
+
def writeEthernetPhysicalChannel(self, element: ET.Element, channel: EthernetPhysicalChannel):
|
|
2613
2836
|
self.logger.debug("Set EthernetPhysicalChannel %s" % channel.getShortName())
|
|
2614
2837
|
child_element = ET.SubElement(element, "ETHERNET-PHYSICAL-CHANNEL")
|
|
2615
|
-
self.
|
|
2838
|
+
self.writeIdentifiable(child_element, channel)
|
|
2616
2839
|
self.writePhysicalChannel(child_element, channel)
|
|
2617
2840
|
self.writeEthernetPhysicalChannelNetworkEndPoints(child_element, channel.getNetworkEndpoints())
|
|
2618
|
-
self.
|
|
2841
|
+
self.writeSoAdConfig(child_element, "SO-AD-CONFIG", channel.getSoAdConfig())
|
|
2842
|
+
self.writeEthernetPhysicalChannelVlan(child_element, channel)
|
|
2619
2843
|
|
|
2620
2844
|
def writeCommunicationClusterPhysicalChannels(self, element: ET.Element, cluster: CommunicationCluster):
|
|
2621
2845
|
channels = cluster.getPhysicalChannels()
|
|
@@ -2623,11 +2847,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2623
2847
|
child_element = ET.SubElement(element, "PHYSICAL-CHANNELS")
|
|
2624
2848
|
for channel in channels:
|
|
2625
2849
|
if isinstance(channel, CanPhysicalChannel):
|
|
2626
|
-
self.
|
|
2850
|
+
self.writeCanPhysicalChannel(child_element, channel)
|
|
2627
2851
|
elif isinstance(channel, LinPhysicalChannel):
|
|
2628
2852
|
self.writeLinPhysicalChannel(child_element, channel)
|
|
2629
2853
|
elif isinstance(channel, EthernetPhysicalChannel):
|
|
2630
|
-
self.
|
|
2854
|
+
self.writeEthernetPhysicalChannel(child_element, channel)
|
|
2631
2855
|
else:
|
|
2632
2856
|
self.notImplemented("Unsupported Physical Channel <%s>" % type(channel))
|
|
2633
2857
|
|
|
@@ -2637,14 +2861,22 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2637
2861
|
self.setChildElementOptionalLiteral(element, "PROTOCOL-NAME", cluster.getProtocolName())
|
|
2638
2862
|
self.setChildElementOptionalLiteral(element, "PROTOCOL-VERSION", cluster.getProtocolVersion())
|
|
2639
2863
|
|
|
2640
|
-
def
|
|
2864
|
+
def setCanClusterBusOffRecovery(self, element: ET.Element, key: str, recovery: CanClusterBusOffRecovery):
|
|
2865
|
+
if recovery is not None:
|
|
2866
|
+
child_element = ET.SubElement(element, key)
|
|
2867
|
+
self.setChildElementOptionalPositiveInteger(child_element, "BOR-COUNTER-L-1-TO-L-2", recovery.getBorCounterL1ToL2())
|
|
2868
|
+
self.setChildElementOptionalTimeValue(child_element, "BOR-TIME-L-1", recovery.getBorTimeL1())
|
|
2869
|
+
self.setChildElementOptionalTimeValue(child_element, "BOR-TIME-L-2", recovery.getBorTimeL2())
|
|
2870
|
+
|
|
2871
|
+
def writeAbstractCanCluster(self, element: ET.Element, cluster: AbstractCanCluster):
|
|
2872
|
+
self.setCanClusterBusOffRecovery(element, "BUS-OFF-RECOVERY", cluster.getBusOffRecovery())
|
|
2641
2873
|
self.setChildElementOptionalNumericalValue(element, "CAN-FD-BAUDRATE", cluster.getCanFdBaudrate())
|
|
2642
2874
|
self.setChildElementOptionalNumericalValue(element, "SPEED", cluster.getSpeed())
|
|
2643
2875
|
|
|
2644
2876
|
def writeLinCluster(self, element: ET.Element, cluster: LinCluster):
|
|
2645
2877
|
self.logger.debug("LinCluster %s" % cluster.getShortName())
|
|
2646
2878
|
child_element = ET.SubElement(element, "LIN-CLUSTER")
|
|
2647
|
-
self.
|
|
2879
|
+
self.writeIdentifiable(child_element, cluster)
|
|
2648
2880
|
child_element = ET.SubElement(child_element, "LIN-CLUSTER-VARIANTS")
|
|
2649
2881
|
child_element = ET.SubElement(child_element, "LIN-CLUSTER-CONDITIONAL")
|
|
2650
2882
|
self.writeCommunicationCluster(child_element, cluster)
|
|
@@ -2652,12 +2884,12 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2652
2884
|
def writeCanCluster(self, element: ET.Element, cluster: CanCluster):
|
|
2653
2885
|
self.logger.debug("CanCluster %s" % cluster.getShortName())
|
|
2654
2886
|
child_element = ET.SubElement(element, "CAN-CLUSTER")
|
|
2655
|
-
self.
|
|
2887
|
+
self.writeIdentifiable(child_element, cluster)
|
|
2656
2888
|
|
|
2657
2889
|
child_element = ET.SubElement(child_element, "CAN-CLUSTER-VARIANTS")
|
|
2658
2890
|
child_element = ET.SubElement(child_element, "CAN-CLUSTER-CONDITIONAL")
|
|
2659
2891
|
self.writeCommunicationCluster(child_element, cluster)
|
|
2660
|
-
self.
|
|
2892
|
+
self.writeAbstractCanCluster(child_element, cluster)
|
|
2661
2893
|
|
|
2662
2894
|
def writeEthernetCluster(self, element: ET.Element, cluster: EthernetCluster):
|
|
2663
2895
|
self.logger.debug("Set EthernetCluster %s" % cluster.getShortName())
|
|
@@ -2674,7 +2906,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2674
2906
|
self.writeFrame(child_element, frame)
|
|
2675
2907
|
|
|
2676
2908
|
def writeCommConnectorPort(self, element: ET.Element, port: CommConnectorPort):
|
|
2677
|
-
self.
|
|
2909
|
+
self.writeIdentifiable(element, port)
|
|
2678
2910
|
self.setChildElementOptionalLiteral(element, "COMMUNICATION-DIRECTION", port.getCommunicationDirection())
|
|
2679
2911
|
|
|
2680
2912
|
def writeFramePort(self, element: ET.Element, port: FramePort):
|
|
@@ -2704,30 +2936,32 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2704
2936
|
else:
|
|
2705
2937
|
self._raiseError("Unsupported CommConnectorPort <%s>" % type(port))
|
|
2706
2938
|
|
|
2707
|
-
def
|
|
2939
|
+
def writeCanCommunicationController(self, element: ET.Element, controller: CanCommunicationController):
|
|
2940
|
+
child_element = ET.SubElement(element, "CAN-COMMUNICATION-CONTROLLER")
|
|
2708
2941
|
self.logger.debug("Write CanCommunicationController %s" % controller.getShortName())
|
|
2709
|
-
self.
|
|
2942
|
+
self.writeIdentifiable(child_element, controller)
|
|
2710
2943
|
|
|
2711
|
-
def
|
|
2944
|
+
def writeEthernetCommunicationController(self, element: ET.Element, controller: EthernetCommunicationController):
|
|
2945
|
+
child_element = ET.SubElement(element, "ETHERNET-COMMUNICATION-CONTROLLER")
|
|
2712
2946
|
self.logger.debug("Write EthernetCommunicationController %s" % controller.getShortName())
|
|
2713
|
-
self.
|
|
2947
|
+
self.writeIdentifiable(child_element, controller)
|
|
2714
2948
|
|
|
2715
2949
|
def writeEcuInstanceCommControllers(self, element: ET.Element, instance: EcuInstance):
|
|
2716
2950
|
controllers = instance.getCommControllers()
|
|
2717
2951
|
if len(controllers) > 0:
|
|
2718
|
-
|
|
2952
|
+
child_element = ET.SubElement(element, "COMM-CONTROLLERS")
|
|
2719
2953
|
for controller in controllers:
|
|
2720
2954
|
if isinstance(controller, CanCommunicationController):
|
|
2721
|
-
|
|
2722
|
-
self.setCanCommunicationController(child_element, controller)
|
|
2955
|
+
self.writeCanCommunicationController(child_element, controller)
|
|
2723
2956
|
elif isinstance(controller, EthernetCommunicationController):
|
|
2724
|
-
|
|
2725
|
-
|
|
2957
|
+
self.writeEthernetCommunicationController(child_element, controller)
|
|
2958
|
+
elif isinstance(controller, LinMaster):
|
|
2959
|
+
self.writeLinMaster(child_element, controller)
|
|
2726
2960
|
else:
|
|
2727
2961
|
self.notImplemented("Unsupported Communication Controller <%s>" % type(controller))
|
|
2728
2962
|
|
|
2729
2963
|
def writeCommunicationConnector(self, element: ET.Element, connector: CommunicationConnector):
|
|
2730
|
-
self.
|
|
2964
|
+
self.writeIdentifiable(element, connector)
|
|
2731
2965
|
self.setChildElementOptionalRefType(element, "COMM-CONTROLLER-REF", connector.getCommControllerRef())
|
|
2732
2966
|
self.writeCommunicationConnectorEcuCommPortInstances(element, connector)
|
|
2733
2967
|
|
|
@@ -2739,6 +2973,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2739
2973
|
self.logger.debug("Write EthernetCommunicationConnector %s" % connector.getShortName())
|
|
2740
2974
|
self.writeCommunicationConnector(element, connector)
|
|
2741
2975
|
|
|
2976
|
+
def writeLinCommunicationConnector(self, element: ET.Element, connector: LinCommunicationConnector):
|
|
2977
|
+
self.logger.debug("Write LinCommunicationConnector %s" % connector.getShortName())
|
|
2978
|
+
self.writeCommunicationConnector(element, connector)
|
|
2979
|
+
|
|
2742
2980
|
def writeEcuInstanceConnectors(self, element: ET.Element, instance: EcuInstance):
|
|
2743
2981
|
connectors = instance.getConnectors()
|
|
2744
2982
|
if len(connectors) > 0:
|
|
@@ -2750,13 +2988,16 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2750
2988
|
elif isinstance(connector, EthernetCommunicationConnector):
|
|
2751
2989
|
child_element = ET.SubElement(connectors_tag, "ETHERNET-COMMUNICATION-CONNECTOR")
|
|
2752
2990
|
self.writeEthernetCommunicationConnector(child_element, connector)
|
|
2991
|
+
elif isinstance(connector, LinCommunicationConnector):
|
|
2992
|
+
child_element = ET.SubElement(connectors_tag, "LIN-COMMUNICATION-CONNECTOR")
|
|
2993
|
+
self.writeLinCommunicationConnector(child_element, connector)
|
|
2753
2994
|
else:
|
|
2754
2995
|
self._raiseError("Unsupported Communication connector <%s>" % type(connector))
|
|
2755
2996
|
|
|
2756
2997
|
def writeEcuInstance(self, element: ET.Element, instance: EcuInstance):
|
|
2757
2998
|
self.logger.debug("EcuInstance %s" % instance.getShortName())
|
|
2758
2999
|
child_element = ET.SubElement(element, "ECU-INSTANCE")
|
|
2759
|
-
self.
|
|
3000
|
+
self.writeIdentifiable(child_element, instance)
|
|
2760
3001
|
self.setChildElementOptionalTimeValue(child_element, "COM-CONFIGURATION-GW-TIME-BASE", instance.getComConfigurationGwTimeBase())
|
|
2761
3002
|
self.setChildElementOptionalTimeValue(child_element, "COM-CONFIGURATION-RX-TIME-BASE", instance.getComConfigurationRxTimeBase())
|
|
2762
3003
|
self.setChildElementOptionalTimeValue(child_element, "COM-CONFIGURATION-TX-TIME-BASE", instance.getComConfigurationTxTimeBase())
|
|
@@ -2769,7 +3010,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2769
3010
|
def writeSystemSignalGroup(self, element: ET.Element, group: SystemSignalGroup):
|
|
2770
3011
|
self.logger.debug("Write SystemSignalGroup %s" % group.getShortName())
|
|
2771
3012
|
child_element = ET.SubElement(element, "SYSTEM-SIGNAL-GROUP")
|
|
2772
|
-
self.
|
|
3013
|
+
self.writeIdentifiable(child_element, group)
|
|
2773
3014
|
signal_refs = group.getSystemSignalRefs()
|
|
2774
3015
|
if len(signal_refs) > 0:
|
|
2775
3016
|
signal_refs_tag = ET.SubElement(child_element, "SYSTEM-SIGNAL-REFS")
|
|
@@ -2801,7 +3042,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2801
3042
|
|
|
2802
3043
|
def setSwcToEcuMapping(self, element: ET.Element, mapping: SwcToEcuMapping):
|
|
2803
3044
|
child_element = ET.SubElement(element, "SWC-TO-ECU-MAPPING")
|
|
2804
|
-
self.
|
|
3045
|
+
self.writeIdentifiable(child_element, mapping)
|
|
2805
3046
|
irefs = mapping.getComponentIRefs()
|
|
2806
3047
|
if len(irefs) > 0:
|
|
2807
3048
|
irefs_tag = ET.SubElement(child_element, "COMPONENT-IREFS")
|
|
@@ -2822,7 +3063,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2822
3063
|
def writeSystemMapping(self, element: ET.Element, mapping: SystemMapping):
|
|
2823
3064
|
self.logger.debug("Write SystemMapping %s" % mapping.getShortName())
|
|
2824
3065
|
child_element = ET.SubElement(element, "SYSTEM-MAPPING")
|
|
2825
|
-
self.
|
|
3066
|
+
self.writeIdentifiable(child_element, mapping)
|
|
2826
3067
|
self.writeSystemMappingDataMappings(child_element, mapping)
|
|
2827
3068
|
self.writeSystemMappingSwMappings(child_element, mapping)
|
|
2828
3069
|
|
|
@@ -2842,7 +3083,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2842
3083
|
self.logger.debug("Write RootSwCompositionPrototype <%s>" % prototype.getShortName())
|
|
2843
3084
|
child_element = ET.SubElement(element, "ROOT-SOFTWARE-COMPOSITIONS")
|
|
2844
3085
|
child_element = ET.SubElement(child_element, "ROOT-SW-COMPOSITION-PROTOTYPE")
|
|
2845
|
-
self.
|
|
3086
|
+
self.writeIdentifiable(child_element, prototype)
|
|
2846
3087
|
self.setChildElementOptionalRefType(child_element, "FLAT-MAP-REF", prototype.getFlatMapRef())
|
|
2847
3088
|
self.setChildElementOptionalRefType(child_element, "SOFTWARE-COMPOSITION-TREF", prototype.getSoftwareCompositionTRef())
|
|
2848
3089
|
|
|
@@ -2874,7 +3115,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2874
3115
|
def setFlatInstanceDescriptor(self, element: ET.Element, desc: FlatInstanceDescriptor):
|
|
2875
3116
|
self.logger.debug("Set FlatInstanceDescriptor %s" % desc.getShortName())
|
|
2876
3117
|
child_element = ET.SubElement(element, "FLAT-INSTANCE-DESCRIPTOR")
|
|
2877
|
-
self.
|
|
3118
|
+
self.writeIdentifiable(child_element, desc)
|
|
2878
3119
|
self.setAnyInstanceRef(child_element, "UPSTREAM-REFERENCE-IREF", desc.getUpstreamReferenceIRef())
|
|
2879
3120
|
self.setAnyInstanceRef(child_element, "ECU-EXTRACT-REFERENCE-IREF", desc.getEcuExtractReferenceIRef())
|
|
2880
3121
|
|
|
@@ -2908,7 +3149,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2908
3149
|
def setVariableAndParameterInterfaceMapping(self, element: ET.Element, mapping: VariableAndParameterInterfaceMapping):
|
|
2909
3150
|
self.logger.debug("set VariableAndParameterInterfaceMapping %s" % mapping.getShortName())
|
|
2910
3151
|
child_element = ET.SubElement(element, "VARIABLE-AND-PARAMETER-INTERFACE-MAPPING")
|
|
2911
|
-
self.
|
|
3152
|
+
self.writeIdentifiable(child_element, mapping)
|
|
2912
3153
|
self.setDataPrototypeMappings(child_element, "DATA-MAPPINGS", mapping.getDataMappings())
|
|
2913
3154
|
|
|
2914
3155
|
def writePortInterfaceMappings(self, element: ET.Element, mapping_set: PortInterfaceMappingSet):
|
|
@@ -2938,14 +3179,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2938
3179
|
def writeGateway(self, element: ET.Element, gateway: Gateway):
|
|
2939
3180
|
self.logger.debug("Gateway %s" % gateway.getShortName())
|
|
2940
3181
|
child_element = ET.SubElement(element, "GATEWAY")
|
|
2941
|
-
self.
|
|
3182
|
+
self.writeIdentifiable(child_element, gateway)
|
|
2942
3183
|
self.setChildElementOptionalRefType(child_element, "ECU-REF", gateway.ecuRef)
|
|
2943
3184
|
self.setISignalMappings(child_element, gateway.getSignalMappings())
|
|
2944
3185
|
|
|
2945
3186
|
def writeISignal(self, element: ET.Element, signal: ISignal):
|
|
2946
3187
|
self.logger.debug("ISignal %s" % signal.getShortName())
|
|
2947
3188
|
child_element = ET.SubElement(element, "I-SIGNAL")
|
|
2948
|
-
self.
|
|
3189
|
+
self.writeIdentifiable(child_element, signal)
|
|
2949
3190
|
self.setChildElementOptionalLiteral(child_element, "DATA-TYPE-POLICY", signal.getDataTypePolicy())
|
|
2950
3191
|
self.setChildElementOptionalLiteral(child_element, "I-SIGNAL-TYPE", signal.getISignalType())
|
|
2951
3192
|
self.setValueSpecification(child_element, "INIT-VALUE", signal.getInitValue())
|
|
@@ -2964,7 +3205,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2964
3205
|
def writeEcucValueCollection(self, element: ET.Element, collection: EcucValueCollection):
|
|
2965
3206
|
self.logger.debug("EcucValueCollection %s" % collection.getShortName())
|
|
2966
3207
|
child_element = ET.SubElement(element, "ECUC-VALUE-COLLECTION")
|
|
2967
|
-
self.
|
|
3208
|
+
self.writeIdentifiable(child_element, collection)
|
|
2968
3209
|
self.setChildElementOptionalRefType(child_element, "ECU-EXTRACT-REF", collection.getEcuExtractRef())
|
|
2969
3210
|
self.writeEcucValueCollectionEcucValues(child_element, collection)
|
|
2970
3211
|
|
|
@@ -3044,7 +3285,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3044
3285
|
def writeEcucContainValue(self, element: ET.Element, container_value: EcucContainerValue):
|
|
3045
3286
|
self.logger.debug("EcucContainerValue %s" % container_value.getShortName())
|
|
3046
3287
|
child_element = ET.SubElement(element, "ECUC-CONTAINER-VALUE")
|
|
3047
|
-
self.
|
|
3288
|
+
self.writeIdentifiable(child_element, container_value)
|
|
3048
3289
|
self.setChildElementOptionalRefType(child_element, "DEFINITION-REF", container_value.getDefinitionRef())
|
|
3049
3290
|
self.writeEcucContainerValueParameterValues(child_element, container_value)
|
|
3050
3291
|
self.writeEcucContainerValueReferenceValues(child_element, container_value)
|
|
@@ -3063,7 +3304,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3063
3304
|
def writeEcucModuleConfigurationValues(self, element: ET.Element, values: EcucModuleConfigurationValues):
|
|
3064
3305
|
self.logger.debug("EcucModuleConfigurationValues %s" % values.getShortName())
|
|
3065
3306
|
child_element = ET.SubElement(element, "ECUC-MODULE-CONFIGURATION-VALUES")
|
|
3066
|
-
self.
|
|
3307
|
+
self.writeIdentifiable(child_element, values)
|
|
3067
3308
|
self.setChildElementOptionalRefType(child_element, "DEFINITION-REF", values.getDefinitionRef())
|
|
3068
3309
|
self.setChildElementOptionalLiteral(child_element, "IMPLEMENTATION-CONFIG-VARIANT", values.getImplementationConfigVariant())
|
|
3069
3310
|
self.setChildElementOptionalRefType(child_element, "MODULE-DESCRIPTION-REF", values.getModuleDescriptionRef())
|
|
@@ -3072,7 +3313,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3072
3313
|
def writeISignalGroup(self, element: ET.Element, group: ISignalGroup):
|
|
3073
3314
|
self.logger.debug("ISignalGroup %s" % group.getShortName())
|
|
3074
3315
|
child_element = ET.SubElement(element, "I-SIGNAL-GROUP")
|
|
3075
|
-
self.
|
|
3316
|
+
self.writeIdentifiable(child_element, group)
|
|
3076
3317
|
signal_refs = group.getISignalRefs()
|
|
3077
3318
|
if len(signal_refs) > 0:
|
|
3078
3319
|
signal_refs_tag = ET.SubElement(child_element, "I-SIGNAL-REFS")
|
|
@@ -3083,7 +3324,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3083
3324
|
def writeISignalIPduGroup(self, element: ET.Element, group: ISignalIPduGroup):
|
|
3084
3325
|
self.logger.debug("Set ISignalIPduGroup %s" % group.getShortName())
|
|
3085
3326
|
child_element = ET.SubElement(element, "I-SIGNAL-I-PDU-GROUP")
|
|
3086
|
-
self.
|
|
3327
|
+
self.writeIdentifiable(child_element, group)
|
|
3087
3328
|
self.setChildElementOptionalLiteral(child_element, "COMMUNICATION-DIRECTION", group.getCommunicationDirection())
|
|
3088
3329
|
self.setChildElementOptionalLiteral(child_element, "COMMUNICATION-MODE", group.getCommunicationMode())
|
|
3089
3330
|
group_refs = group.getContainedISignalIPduGroupRefs()
|
|
@@ -3101,19 +3342,84 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3101
3342
|
def writeSystemSignal(self, element: ET.Element, signal: SystemSignal):
|
|
3102
3343
|
self.logger.debug("SystemSignal %s" % signal.getShortName())
|
|
3103
3344
|
child_element = ET.SubElement(element, "SYSTEM-SIGNAL")
|
|
3104
|
-
self.
|
|
3345
|
+
self.writeIdentifiable(child_element, signal)
|
|
3105
3346
|
self.setChildElementOptionalBooleanValue(child_element, "DYNAMIC-LENGTH", signal.getDynamicLength())
|
|
3106
3347
|
self.setSwDataDefProps(child_element, "PHYSICAL-PROPS", signal.getPhysicalProps())
|
|
3107
3348
|
|
|
3108
|
-
def writeGenericEthernetFrame(self, element: ET.Element,
|
|
3109
|
-
self.logger.debug("Write GenericEthernetFrame %s" %
|
|
3349
|
+
def writeGenericEthernetFrame(self, element: ET.Element, frame: GenericEthernetFrame):
|
|
3350
|
+
self.logger.debug("Write GenericEthernetFrame %s" % frame.getShortName())
|
|
3110
3351
|
child_element = ET.SubElement(element, "ETHERNET-FRAME")
|
|
3111
|
-
self.writeFrame(child_element,
|
|
3352
|
+
self.writeFrame(child_element, frame)
|
|
3112
3353
|
|
|
3113
3354
|
def writeLifeCycleInfoSet(self, element: ET.Element, set: LifeCycleInfoSet):
|
|
3114
3355
|
self.logger.debug("Write LifeCycleInfoSet %s" % set.getShortName())
|
|
3115
3356
|
child_element = ET.SubElement(element, "LIFE-CYCLE-INFO-SET")
|
|
3116
|
-
self.
|
|
3357
|
+
self.writeIdentifiable(child_element, set)
|
|
3358
|
+
|
|
3359
|
+
def writeDiagnosticConnectionFunctionalRequestRefs(self, element: ET.Element, connection: DiagnosticConnection):
|
|
3360
|
+
refs = connection.getFunctionalRequestRefs()
|
|
3361
|
+
if len(refs) > 0:
|
|
3362
|
+
refs_tag = ET.SubElement(element, "FUNCTIONAL-REQUEST-REFS")
|
|
3363
|
+
for ref in refs:
|
|
3364
|
+
self.setChildElementOptionalRefType(refs_tag, "FUNCTIONAL-REQUEST-REF", ref)
|
|
3365
|
+
|
|
3366
|
+
def writeDiagnosticConnection(self, element: ET.Element, connection: DiagnosticConnection):
|
|
3367
|
+
self.logger.debug("Write DiagnosticConnection %s" % connection.getShortName())
|
|
3368
|
+
child_element = ET.SubElement(element, "DIAGNOSTIC-CONNECTION")
|
|
3369
|
+
self.writeIdentifiable(child_element, connection)
|
|
3370
|
+
self.writeDiagnosticConnectionFunctionalRequestRefs(child_element, connection)
|
|
3371
|
+
self.setChildElementOptionalRefType(child_element, "PHYSICAL-REQUEST-REF", connection.getPhysicalRequestRef())
|
|
3372
|
+
self.setChildElementOptionalRefType(child_element, "RESPONSE-REF", connection.getResponseOnEventRef())
|
|
3373
|
+
|
|
3374
|
+
def writeDiagnosticServiceTable(self, element: ET.Element, table: DiagnosticServiceTable):
|
|
3375
|
+
self.logger.debug("Write DiagnosticServiceTable %s" % table.getShortName())
|
|
3376
|
+
child_element = ET.SubElement(element, "DIAGNOSTIC-SERVICE-TABLE")
|
|
3377
|
+
self.writeIdentifiable(child_element, table)
|
|
3378
|
+
|
|
3379
|
+
def writeMultiplexedIPdu(self, element: ET.Element, i_pdu: MultiplexedIPdu):
|
|
3380
|
+
self.logger.debug("Write MultiplexedIPdu %s" % i_pdu.getShortName())
|
|
3381
|
+
child_element = ET.SubElement(element, "MULTIPLEXED-I-PDU")
|
|
3382
|
+
self.writeIdentifiable(child_element, i_pdu)
|
|
3383
|
+
|
|
3384
|
+
def writeUserDefinedIPdu(self, element: ET.Element, i_pdu: UserDefinedIPdu):
|
|
3385
|
+
self.logger.debug("Write UserDefinedIPdu %s" % i_pdu.getShortName())
|
|
3386
|
+
child_element = ET.SubElement(element, "USER-DEFINED-I-PDU")
|
|
3387
|
+
self.writeIdentifiable(child_element, i_pdu)
|
|
3388
|
+
|
|
3389
|
+
def writeUserDefinedPdu(self, element: ET.Element, pdu: UserDefinedPdu):
|
|
3390
|
+
self.logger.debug("Write UserDefinedPdu %s" % pdu.getShortName())
|
|
3391
|
+
child_element = ET.SubElement(element, "USER-DEFINED-PDU")
|
|
3392
|
+
self.writeIdentifiable(child_element, pdu)
|
|
3393
|
+
|
|
3394
|
+
def writeGeneralPurposePdu(self, element: ET.Element, pdu: GeneralPurposePdu):
|
|
3395
|
+
self.logger.debug("Write GeneralPurposePdu %s" % pdu.getShortName())
|
|
3396
|
+
child_element = ET.SubElement(element, "GENERAL-PURPOSE-PDU")
|
|
3397
|
+
self.writeIdentifiable(child_element, pdu)
|
|
3398
|
+
|
|
3399
|
+
def writeGeneralPurposeIPdu(self, element: ET.Element, i_pdu: GeneralPurposeIPdu):
|
|
3400
|
+
self.logger.debug("Write GeneralPurposeIPdu %s" % i_pdu.getShortName())
|
|
3401
|
+
child_element = ET.SubElement(element, "GENERAL-PURPOSE-I-PDU")
|
|
3402
|
+
self.writeIdentifiable(child_element, i_pdu)
|
|
3403
|
+
|
|
3404
|
+
def writeSecureCommunicationPropsSet(self, element: ET.Element, set: SecureCommunicationPropsSet):
|
|
3405
|
+
self.logger.debug("Write SecureCommunicationPropsSet %s" % set.getShortName())
|
|
3406
|
+
child_element = ET.SubElement(element, "SECURE-COMMUNICATION-PROPS-SET")
|
|
3407
|
+
self.writeIdentifiable(child_element, set)
|
|
3408
|
+
|
|
3409
|
+
def writeSoAdRoutingGroup(self, element: ET.Element, group: SoAdRoutingGroup):
|
|
3410
|
+
self.logger.debug("Write SoAdRoutingGroup %s" % group.getShortName())
|
|
3411
|
+
child_element = ET.SubElement(element, "SO-AD-ROUTING-GROUP")
|
|
3412
|
+
self.writeIdentifiable(child_element, group)
|
|
3413
|
+
|
|
3414
|
+
def writeDoIpTpConfig(self, element: ET.Element, config: DoIpTpConfig):
|
|
3415
|
+
self.logger.debug("Write DoIpTpConfig %s" % config.getShortName())
|
|
3416
|
+
child_element = ET.SubElement(element, "DO-IP-TP-CONFIG")
|
|
3417
|
+
self.writeIdentifiable(child_element, config)
|
|
3418
|
+
|
|
3419
|
+
def writeLinMaster(self, element: ET.Element, master: LinMaster):
|
|
3420
|
+
self.logger.debug("Write LinMaster %s" % master.getShortName())
|
|
3421
|
+
child_element = ET.SubElement(element, "LIN-MASTER")
|
|
3422
|
+
self.writeIdentifiable(child_element, master)
|
|
3117
3423
|
|
|
3118
3424
|
def writeISignalToPduMappings(self, element: ET.Element, parent: ISignalIPdu):
|
|
3119
3425
|
mappings = parent.getISignalToPduMappings()
|
|
@@ -3121,7 +3427,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3121
3427
|
mappings_tag = ET.SubElement(element, "I-SIGNAL-TO-PDU-MAPPINGS")
|
|
3122
3428
|
for mapping in mappings:
|
|
3123
3429
|
child_element = ET.SubElement(mappings_tag, "I-SIGNAL-TO-I-PDU-MAPPING")
|
|
3124
|
-
self.
|
|
3430
|
+
self.writeIdentifiable(child_element, mapping)
|
|
3125
3431
|
self.setChildElementOptionalRefType(child_element, "I-SIGNAL-REF", mapping.getISignalRef())
|
|
3126
3432
|
self.setChildElementOptionalRefType(child_element, "I-SIGNAL-GROUP-REF", mapping.getISignalGroupRef())
|
|
3127
3433
|
self.setChildElementOptionalLiteral(child_element, "PACKING-BYTE-ORDER", mapping.getPackingByteOrder())
|
|
@@ -3187,7 +3493,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3187
3493
|
def writeISignalIPdu(self, element: ET.Element, i_pdu: ISignalIPdu):
|
|
3188
3494
|
self.logger.debug("ISignalIPdu %s" % i_pdu.getShortName())
|
|
3189
3495
|
child_element = ET.SubElement(element, "I-SIGNAL-I-PDU")
|
|
3190
|
-
self.
|
|
3496
|
+
self.writeIdentifiable(child_element, i_pdu)
|
|
3191
3497
|
self.setChildElementOptionalNumericalValue(child_element, "LENGTH", i_pdu.getLength())
|
|
3192
3498
|
self.setISignalIPduIPduTimingSpecification(child_element, i_pdu.getIPduTimingSpecification())
|
|
3193
3499
|
self.writeISignalToPduMappings(child_element, i_pdu)
|
|
@@ -3300,6 +3606,26 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3300
3606
|
self.writeEthernetCluster(element, ar_element)
|
|
3301
3607
|
elif isinstance(ar_element, ISignalIPduGroup):
|
|
3302
3608
|
self.writeISignalIPduGroup(element, ar_element)
|
|
3609
|
+
elif isinstance(ar_element, DiagnosticConnection):
|
|
3610
|
+
self.writeDiagnosticConnection(element, ar_element)
|
|
3611
|
+
elif isinstance(ar_element, DiagnosticServiceTable):
|
|
3612
|
+
self.writeDiagnosticServiceTable(element, ar_element)
|
|
3613
|
+
elif isinstance(ar_element, MultiplexedIPdu):
|
|
3614
|
+
self.writeMultiplexedIPdu(element, ar_element)
|
|
3615
|
+
elif isinstance(ar_element, UserDefinedIPdu):
|
|
3616
|
+
self.writeUserDefinedIPdu(element, ar_element)
|
|
3617
|
+
elif isinstance(ar_element, UserDefinedPdu):
|
|
3618
|
+
self.writeUserDefinedPdu(element, ar_element)
|
|
3619
|
+
elif isinstance(ar_element, GeneralPurposePdu):
|
|
3620
|
+
self.writeGeneralPurposePdu(element, ar_element)
|
|
3621
|
+
elif isinstance(ar_element, GeneralPurposeIPdu):
|
|
3622
|
+
self.writeGeneralPurposeIPdu(element, ar_element)
|
|
3623
|
+
elif isinstance(ar_element, SecureCommunicationPropsSet):
|
|
3624
|
+
self.writeSecureCommunicationPropsSet(element, ar_element)
|
|
3625
|
+
elif isinstance(ar_element, SoAdRoutingGroup):
|
|
3626
|
+
self.writeSoAdRoutingGroup(element, ar_element)
|
|
3627
|
+
elif isinstance(ar_element, DoIpTpConfig):
|
|
3628
|
+
self.writeDoIpTpConfig(element, ar_element)
|
|
3303
3629
|
else:
|
|
3304
3630
|
self.notImplemented("Unsupported Elements of ARPackage <%s>" % type(ar_element))
|
|
3305
3631
|
|
|
@@ -3322,7 +3648,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3322
3648
|
for pkg in pkgs:
|
|
3323
3649
|
pkg_tag = ET.SubElement(pkgs_tag, "AR-PACKAGE")
|
|
3324
3650
|
|
|
3325
|
-
self.
|
|
3651
|
+
self.writeIdentifiable(pkg_tag, pkg)
|
|
3326
3652
|
self.logger.debug("writeARPackage %s" % pkg.full_name)
|
|
3327
3653
|
|
|
3328
3654
|
self.writeReferenceBases(pkg_tag, pkg.getReferenceBases())
|