armodel 1.7.2__py3-none-any.whl → 1.7.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- armodel/cli/arxml_dump_cli.py +1 -1
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +42 -19
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +104 -30
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +12 -16
- armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +70 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +12 -9
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +29 -22
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +33 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +10 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +23 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +93 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +39 -5
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +26 -2
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +48 -6
- armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +5 -5
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +21 -1
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +12 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +8 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +196 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +11 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +36 -21
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +10 -1
- armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +16 -1
- armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +34 -3
- armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +7 -0
- armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +33 -0
- armodel/models/__init__.py +3 -0
- armodel/parser/abstract_arxml_parser.py +4 -14
- armodel/parser/arxml_parser.py +347 -180
- armodel/tests/test_armodel/models/test_ar_object.py +6 -2
- armodel/tests/test_armodel/models/test_port_interface.py +4 -4
- armodel/tests/test_armodel/parser/test_parse_bswmd.py +48 -48
- armodel/writer/abstract_arxml_writer.py +1 -0
- armodel/writer/arxml_writer.py +351 -226
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/METADATA +15 -2
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/RECORD +40 -34
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/LICENSE +0 -0
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/WHEEL +0 -0
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.2.dist-info → armodel-1.7.3.dist-info}/top_level.txt +0 -0
armodel/writer/arxml_writer.py
CHANGED
|
@@ -2,10 +2,12 @@ import xml.etree.cElementTree as ET
|
|
|
2
2
|
|
|
3
3
|
from typing import List
|
|
4
4
|
|
|
5
|
+
|
|
6
|
+
|
|
5
7
|
from ..models.M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
|
|
6
8
|
from ..models.M2.MSR.AsamHdo.AdminData import AdminData
|
|
7
9
|
from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition, SwBaseType
|
|
8
|
-
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuConstTextContent, CompuMethod, CompuNominatorDenominator, CompuScale, CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
|
|
10
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import Compu, CompuConst, CompuConstContent, CompuConstFormulaContent, CompuConstNumericContent, CompuConstTextContent, CompuMethod, CompuNominatorDenominator, CompuScale, CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
|
|
9
11
|
from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr, InternalConstrs, PhysConstrs
|
|
10
12
|
from ..models.M2.MSR.AsamHdo.SpecialData import Sdg
|
|
11
13
|
from ..models.M2.MSR.AsamHdo.Units import PhysicalDimension, Unit
|
|
@@ -13,8 +15,9 @@ from ..models.M2.MSR.CalibrationData.CalibrationValue import SwValueCont, SwValu
|
|
|
13
15
|
from ..models.M2.MSR.DataDictionary.Axis import SwAxisGrouped, SwAxisIndividual
|
|
14
16
|
from ..models.M2.MSR.DataDictionary.AuxillaryObjects import SwAddrMethod
|
|
15
17
|
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxis, SwCalprmAxisSet
|
|
16
|
-
from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, ValueList
|
|
18
|
+
from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, SwPointerTargetProps, ValueList
|
|
17
19
|
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayout, SwRecordLayoutGroup, SwRecordLayoutV
|
|
20
|
+
from ..models.M2.MSR.DataDictionary.ServiceProcessTask import SwServiceArg
|
|
18
21
|
from ..models.M2.MSR.Documentation.Annotation import Annotation
|
|
19
22
|
from ..models.M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
|
|
20
23
|
from ..models.M2.MSR.Documentation.TextModel.BlockElements.ListElements import ListElement
|
|
@@ -25,20 +28,21 @@ from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
|
25
28
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
26
29
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
|
|
27
30
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
|
|
28
|
-
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswCalledEntity, BswEvent, BswInternalBehavior, BswModeSenderPolicy, BswModuleEntity, BswSchedulableEntity, BswScheduleEvent, BswTimingEvent
|
|
31
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswCalledEntity, BswEvent, BswInternalBehavior, BswInterruptEntity, BswModeSenderPolicy, BswModuleEntity, BswSchedulableEntity, BswScheduleEvent, BswTimingEvent
|
|
29
32
|
from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference, ConstantSpecification, NumericalValueSpecification, RecordValueSpecification, TextValueSpecification, ValueSpecification
|
|
33
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatInstanceDescriptor, FlatMap
|
|
30
34
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Filter import DataFilter
|
|
31
35
|
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping, SwcBswRunnableMapping
|
|
32
36
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import Code, Implementation
|
|
33
37
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming, TimingExtension
|
|
34
38
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import EOCExecutableEntityRef, ExecutionOrderConstraint
|
|
35
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagEventDebounceMonitorInternal, DiagnosticCommunicationManagerNeeds, DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds, NvBlockNeeds, RoleBasedDataAssignment, RoleBasedDataTypeAssignment, ServiceDependency
|
|
39
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagEventDebounceMonitorInternal, DiagnosticCommunicationManagerNeeds, DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds, EcuStateMgrUserNeeds, NvBlockNeeds, RoleBasedDataAssignment, RoleBasedDataTypeAssignment, ServiceDependency
|
|
36
40
|
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
|
|
37
41
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
|
|
38
42
|
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
|
|
39
43
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclaration, ModeDeclarationGroup, ModeDeclarationGroupPrototype
|
|
40
44
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import ResourceConsumption
|
|
41
|
-
|
|
45
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.StackUsage import RoughEstimateStackUsage, StackUsage
|
|
42
46
|
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
|
|
43
47
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
|
|
44
48
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, MultilanguageReferrable, Referrable
|
|
@@ -46,7 +50,7 @@ from ..models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyI
|
|
|
46
50
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage, ReferenceBase
|
|
47
51
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARLiteral, Limit
|
|
48
52
|
|
|
49
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption
|
|
53
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption, PortDefinedArgumentValue
|
|
50
54
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import AsynchronousServerCallReturnsEvent, DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent, TimingEvent
|
|
51
55
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
52
56
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType, AutosarDataType
|
|
@@ -69,7 +73,7 @@ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes im
|
|
|
69
73
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ServiceSwComponentType
|
|
70
74
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
|
|
71
75
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
|
|
72
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ClientServerInterface, ClientServerOperation, ModeSwitchInterface, ParameterInterface, PortInterface, SenderReceiverInterface, TriggerInterface
|
|
76
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ClientServerInterface, ClientServerOperation, DataPrototypeMapping, ModeSwitchInterface, ParameterInterface, PortInterface, PortInterfaceMappingSet, SenderReceiverInterface, TriggerInterface, VariableAndParameterInterfaceMapping
|
|
73
77
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
|
|
74
78
|
|
|
75
79
|
from ..models.M2.AUTOSARTemplates.SystemTemplate import SwcToEcuMapping, System, SystemMapping
|
|
@@ -127,7 +131,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
127
131
|
for sdg in sdgs:
|
|
128
132
|
self.setSdg(sdgs_tag, sdg)
|
|
129
133
|
|
|
130
|
-
def
|
|
134
|
+
def setChildLimitElement(self, element: ET.Element, key: str, limit: Limit):
|
|
131
135
|
if limit is not None:
|
|
132
136
|
limit_tag = ET.SubElement(element, key)
|
|
133
137
|
self.setARObjectAttributes(limit_tag, limit)
|
|
@@ -222,7 +226,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
222
226
|
child_element = ET.SubElement(element, "NONQUEUED-SENDER-COM-SPEC")
|
|
223
227
|
self.setARObjectAttributes(child_element, com_spec)
|
|
224
228
|
self.setSenderComSpec(child_element, com_spec)
|
|
225
|
-
self.
|
|
229
|
+
self.setValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
|
|
226
230
|
|
|
227
231
|
def setServerComSpec(self, element: ET.Element, com_spec: ServerComSpec):
|
|
228
232
|
child_element = ET.SubElement(element, "SERVER-COM-SPEC")
|
|
@@ -297,9 +301,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
297
301
|
if cont is not None:
|
|
298
302
|
child_element = ET.SubElement(element, "SW-VALUE-CONT")
|
|
299
303
|
self.setARObjectAttributes(child_element, cont)
|
|
300
|
-
self.setChildElementOptionalRefType(child_element, "UNIT-REF", cont.
|
|
301
|
-
self.setValueList(child_element, "SW-ARRAYSIZE", cont.
|
|
302
|
-
self.setSwValues(child_element, "SW-VALUES-PHYS", cont.
|
|
304
|
+
self.setChildElementOptionalRefType(child_element, "UNIT-REF", cont.unitRef)
|
|
305
|
+
self.setValueList(child_element, "SW-ARRAYSIZE", cont.swArraysize)
|
|
306
|
+
self.setSwValues(child_element, "SW-VALUES-PHYS", cont.swValuesPhys)
|
|
303
307
|
|
|
304
308
|
def writeValueSpecification(self, element: ET.Element, value_spec: ValueSpecification):
|
|
305
309
|
if value_spec is not None:
|
|
@@ -350,37 +354,34 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
350
354
|
self.writeValueSpecification(value_spec_tag, value_spec)
|
|
351
355
|
self.setChildElementOptionalRefType(value_spec_tag, "CONSTANT-REF", value_spec.getConstantRef())
|
|
352
356
|
|
|
353
|
-
def setValueSpecification(self, element: ET.Element, value_spec: ValueSpecification):
|
|
357
|
+
def setValueSpecification(self, element: ET.Element, key: str, value_spec: ValueSpecification):
|
|
354
358
|
if value_spec is not None:
|
|
359
|
+
child_element = ET.SubElement(element, key)
|
|
355
360
|
if isinstance(value_spec, ApplicationValueSpecification):
|
|
356
|
-
self.setApplicationValueSpecification(
|
|
361
|
+
self.setApplicationValueSpecification(child_element, value_spec)
|
|
357
362
|
elif isinstance(value_spec, TextValueSpecification):
|
|
358
|
-
self.setTextValueSpecification(
|
|
363
|
+
self.setTextValueSpecification(child_element, value_spec)
|
|
359
364
|
elif isinstance(value_spec, ConstantReference):
|
|
360
|
-
self.setConstantReference(
|
|
365
|
+
self.setConstantReference(child_element, value_spec)
|
|
361
366
|
elif isinstance(value_spec, NumericalValueSpecification):
|
|
362
|
-
self.setNumericalValueSpecification(
|
|
367
|
+
self.setNumericalValueSpecification(child_element, value_spec)
|
|
363
368
|
elif isinstance(value_spec, ArrayValueSpecification):
|
|
364
|
-
self.setArrayValueSpecification(
|
|
369
|
+
self.setArrayValueSpecification(child_element, value_spec)
|
|
365
370
|
elif isinstance(value_spec, RecordValueSpecification):
|
|
366
|
-
self.setRecordValueSpecification(
|
|
371
|
+
self.setRecordValueSpecification(child_element, value_spec)
|
|
367
372
|
else:
|
|
368
373
|
self.notImplemented("Unsupported ValueSpecification %s" % type(value_spec))
|
|
369
374
|
|
|
370
|
-
def setInitValue(self, element: ET.Element, init_value: ValueSpecification):
|
|
371
|
-
if init_value is not None:
|
|
372
|
-
child_element = ET.SubElement(element, "INIT-VALUE")
|
|
373
|
-
self.setValueSpecification(child_element, init_value)
|
|
374
|
-
|
|
375
375
|
def writeNonqueuedReceiverComSpec(self, element: ET.Element, com_spec: NonqueuedReceiverComSpec):
|
|
376
376
|
child_element = ET.SubElement(element, "NONQUEUED-RECEIVER-COM-SPEC")
|
|
377
377
|
self.setARObjectAttributes(child_element, com_spec)
|
|
378
378
|
self.writeReceiverComSpec(child_element, com_spec)
|
|
379
|
-
self.setChildElementOptionalFloatValue(child_element, "ALIVE-TIMEOUT", com_spec.
|
|
380
|
-
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-UPDATE", com_spec.
|
|
381
|
-
self.
|
|
382
|
-
self.
|
|
383
|
-
self.
|
|
379
|
+
self.setChildElementOptionalFloatValue(child_element, "ALIVE-TIMEOUT", com_spec.getAliveTimeout())
|
|
380
|
+
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-UPDATE", com_spec.getEnableUpdated())
|
|
381
|
+
self.setDataFilter(child_element, "FILTER", com_spec.getFilter())
|
|
382
|
+
self.setChildElementOptionalBooleanValue(child_element, "HANDLE-NEVER-RECEIVED", com_spec.getHandleNeverReceived())
|
|
383
|
+
self.setChildElementOptionalLiteral(child_element, "HANDLE-TIMEOUT-TYPE", com_spec.getHandleTimeoutType())
|
|
384
|
+
self.setValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
|
|
384
385
|
|
|
385
386
|
def writeQueuedReceiverComSpec(self, element: ET.Element, com_spec: QueuedReceiverComSpec):
|
|
386
387
|
child_element = ET.SubElement(element, "QUEUED-RECEIVER-COM-SPEC")
|
|
@@ -398,8 +399,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
398
399
|
self.logger.debug("writeParameterRequireComSpec")
|
|
399
400
|
child_element = ET.SubElement(element, "PARAMETER-REQUIRE-COM-SPEC")
|
|
400
401
|
self.setARObjectAttributes(child_element, com_spec)
|
|
401
|
-
self.setChildElementOptionalRefType(child_element, "PARAMETER-REF", com_spec.
|
|
402
|
-
self.
|
|
402
|
+
self.setChildElementOptionalRefType(child_element, "PARAMETER-REF", com_spec.getParameterRef())
|
|
403
|
+
self.setValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
|
|
403
404
|
|
|
404
405
|
def writeModeSwitchReceiverComSpec(self, element: ET.Element, com_spec: ModeSwitchReceiverComSpec):
|
|
405
406
|
self.logger.debug("writeModeSwitchReceiverComSpec")
|
|
@@ -432,7 +433,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
432
433
|
prototype_tag = ET.SubElement(ports_tag, "P-PORT-PROTOTYPE")
|
|
433
434
|
|
|
434
435
|
self.setIdentifiable(prototype_tag, prototype)
|
|
435
|
-
self.logger.debug("write PPortPrototype %s" % prototype.
|
|
436
|
+
self.logger.debug("write PPortPrototype %s" % prototype.getShortName())
|
|
436
437
|
self.setAbstractProvidedPortPrototype(prototype_tag, prototype)
|
|
437
438
|
self.setChildElementOptionalRefType(prototype_tag, "PROVIDED-INTERFACE-TREF", prototype.getProvidedInterfaceTRef())
|
|
438
439
|
|
|
@@ -444,14 +445,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
444
445
|
self.writeRPortComSpec(com_specs_tag, com_spec)
|
|
445
446
|
|
|
446
447
|
def writeRPortPrototype(self, ports_tag: ET.Element, prototype: RPortPrototype):
|
|
447
|
-
self.logger.debug("write RPortPrototype %s" % prototype.
|
|
448
|
+
self.logger.debug("write RPortPrototype %s" % prototype.getShortName())
|
|
448
449
|
prototype_tag = ET.SubElement(ports_tag, "R-PORT-PROTOTYPE")
|
|
449
450
|
self.setIdentifiable(prototype_tag, prototype)
|
|
450
451
|
self.setAbstractRequiredPortPrototype(prototype_tag, prototype)
|
|
451
452
|
self.setChildElementOptionalRefType(prototype_tag, "REQUIRED-INTERFACE-TREF", prototype.getRequiredInterfaceTRef())
|
|
452
453
|
|
|
453
454
|
def writePRPortPrototype(self, ports_tag: ET.Element, prototype: PRPortPrototype):
|
|
454
|
-
self.logger.debug("write PRPortPrototype %s" % prototype.
|
|
455
|
+
self.logger.debug("write PRPortPrototype %s" % prototype.getShortName())
|
|
455
456
|
prototype_tag = ET.SubElement(ports_tag, "PR-PORT-PROTOTYPE")
|
|
456
457
|
self.setIdentifiable(prototype_tag, prototype)
|
|
457
458
|
self.setAbstractProvidedPortPrototype(prototype_tag, prototype)
|
|
@@ -490,7 +491,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
490
491
|
self.setChildElementOptionalRefType(child_element, "PORT-PROTOTYPE-REF", ref)
|
|
491
492
|
|
|
492
493
|
def writePortGroup(self, element: ET.Element, port_group: PortGroup):
|
|
493
|
-
self.logger.debug("writePortGroup %s" % port_group.
|
|
494
|
+
self.logger.debug("writePortGroup %s" % port_group.getShortName())
|
|
494
495
|
child_element = ET.SubElement(element, "PORT-GROUP")
|
|
495
496
|
self.setIdentifiable(child_element, port_group)
|
|
496
497
|
self.writePortGroupInnerGroupIRefs(child_element, port_group)
|
|
@@ -524,18 +525,19 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
524
525
|
self.writeSwComponentPrototype(components_tag, prototype)
|
|
525
526
|
|
|
526
527
|
def writeAssemblySwConnector(self, element: ET.Element, sw_connector: AssemblySwConnector):
|
|
527
|
-
|
|
528
|
-
self.setIdentifiable(
|
|
528
|
+
child_element = ET.SubElement(element, "ASSEMBLY-SW-CONNECTOR")
|
|
529
|
+
self.setIdentifiable(child_element, sw_connector)
|
|
530
|
+
self.setChildElementOptionalRefType(child_element, "MAPPING-REF", sw_connector.getMappingRef())
|
|
529
531
|
|
|
530
532
|
if sw_connector.getProviderIRef() is not None:
|
|
531
|
-
provider_iref_tag = ET.SubElement(
|
|
533
|
+
provider_iref_tag = ET.SubElement(child_element, "PROVIDER-IREF")
|
|
532
534
|
provider_iref = sw_connector.getProviderIRef()
|
|
533
535
|
self.setARObjectAttributes(provider_iref_tag, provider_iref)
|
|
534
536
|
self.setChildElementOptionalRefType(provider_iref_tag, "CONTEXT-COMPONENT-REF", provider_iref.getContextComponentRef())
|
|
535
537
|
self.setChildElementOptionalRefType(provider_iref_tag, "TARGET-P-PORT-REF", provider_iref.getTargetPPortRef())
|
|
536
538
|
|
|
537
539
|
if sw_connector.getRequesterIRef() is not None:
|
|
538
|
-
requester_iref_tag = ET.SubElement(
|
|
540
|
+
requester_iref_tag = ET.SubElement(child_element, "REQUESTER-IREF")
|
|
539
541
|
requester_iref = sw_connector.getRequesterIRef()
|
|
540
542
|
self.setARObjectAttributes(requester_iref_tag, requester_iref)
|
|
541
543
|
self.setChildElementOptionalRefType(requester_iref_tag, "CONTEXT-COMPONENT-REF", requester_iref.getContextComponentRef())
|
|
@@ -681,32 +683,35 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
681
683
|
for axis in axises:
|
|
682
684
|
self.setSwCalprmAxis(child_element, axis)
|
|
683
685
|
|
|
684
|
-
def
|
|
685
|
-
if props
|
|
686
|
-
child_element = ET.SubElement(element,
|
|
687
|
-
self.
|
|
686
|
+
def setSwPointerTargetProps(self, element: ET.Element, key: str, props: SwPointerTargetProps):
|
|
687
|
+
if props is not None:
|
|
688
|
+
child_element = ET.SubElement(element, key)
|
|
689
|
+
self.setChildElementOptionalLiteral(child_element, "TARGET-CATEGORY", props.getTargetCategory())
|
|
690
|
+
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", props.getSwDataDefProps())
|
|
688
691
|
|
|
689
|
-
def setSwDataDefProps(self, element: ET.Element, key: str,
|
|
690
|
-
if
|
|
692
|
+
def setSwDataDefProps(self, element: ET.Element, key: str, props: SwDataDefProps):
|
|
693
|
+
if props is not None:
|
|
691
694
|
child_element = ET.SubElement(element, key)
|
|
692
|
-
self.setARObjectAttributes(child_element,
|
|
695
|
+
self.setARObjectAttributes(child_element, props)
|
|
693
696
|
sw_data_def_props_variants_tag = ET.SubElement(child_element, "SW-DATA-DEF-PROPS-VARIANTS")
|
|
694
|
-
|
|
695
|
-
self.setARObjectAttributes(
|
|
696
|
-
self.setAnnotations(
|
|
697
|
-
self.setChildElementOptionalRefType(
|
|
698
|
-
self.
|
|
699
|
-
self.
|
|
700
|
-
self.
|
|
701
|
-
self.setChildElementOptionalRefType(
|
|
702
|
-
self.
|
|
703
|
-
self.setChildElementOptionalRefType(
|
|
704
|
-
self.setChildElementOptionalLiteral(
|
|
705
|
-
self.
|
|
706
|
-
self.
|
|
707
|
-
self.
|
|
708
|
-
self.
|
|
709
|
-
self.setChildElementOptionalRefType(
|
|
697
|
+
conditional_tag = ET.SubElement(sw_data_def_props_variants_tag, "SW-DATA-DEF-PROPS-CONDITIONAL")
|
|
698
|
+
self.setARObjectAttributes(conditional_tag, props.conditional)
|
|
699
|
+
self.setAnnotations(conditional_tag, props.getAnnotations())
|
|
700
|
+
self.setChildElementOptionalRefType(conditional_tag, "BASE-TYPE-REF", props.getBaseTypeRef())
|
|
701
|
+
self.setChildElementOptionalRefType(conditional_tag, "COMPU-METHOD-REF", props.getCompuMethodRef())
|
|
702
|
+
self.setChildElementOptionalRefType(conditional_tag, "DATA-CONSTR-REF", props.getDataConstrRef())
|
|
703
|
+
self.setValueSpecification(conditional_tag, "INVALID-VALUE", props.getInvalidValue())
|
|
704
|
+
self.setChildElementOptionalRefType(conditional_tag, "IMPLEMENTATION-DATA-TYPE-REF", props.getImplementationDataTypeRef())
|
|
705
|
+
self.setChildElementOptionalFloatValue(conditional_tag, "STEP-SIZE", props.getStepSize())
|
|
706
|
+
self.setChildElementOptionalRefType(conditional_tag, "SW-ADDR-METHOD-REF", props.getSwAddrMethodRef())
|
|
707
|
+
self.setChildElementOptionalLiteral(conditional_tag, "SW-CALIBRATION-ACCESS", props.getSwCalibrationAccess())
|
|
708
|
+
self.setSwCalprmAxisSet(conditional_tag, "SW-CALPRM-AXIS-SET", props.getSwCalprmAxisSet())
|
|
709
|
+
self.setChildElementOptionalLiteral(conditional_tag, "SW-IMPL-POLICY", props.getSwImplPolicy())
|
|
710
|
+
self.setChildElementOptionalNumericalValue(conditional_tag, "SW-INTENDED-RESOLUTION", props.getSwIntendedResolution())
|
|
711
|
+
self.setSwPointerTargetProps(conditional_tag, "SW-POINTER-TARGET-PROPS", props.getSwPointerTargetProps())
|
|
712
|
+
self.setChildElementOptionalRefType(conditional_tag, "SW-RECORD-LAYOUT-REF", props.getSwRecordLayoutRef())
|
|
713
|
+
self.setChildElementOptionalRefType(conditional_tag, "VALUE-AXIS-DATA-TYPE-REF", props.getValueAxisDataTypeRef())
|
|
714
|
+
self.setChildElementOptionalRefType(conditional_tag, "UNIT-REF", props.getUnitRef())
|
|
710
715
|
|
|
711
716
|
def setApplicationDataType(self, element: ET.Element, data_type: ApplicationDataType):
|
|
712
717
|
self.setAutosarDataType(element, data_type)
|
|
@@ -718,7 +723,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
718
723
|
self.setARElement(element, data_type)
|
|
719
724
|
self.setSwDataDefProps(element, "SW-DATA-DEF-PROPS", data_type.getSwDataDefProps())
|
|
720
725
|
|
|
721
|
-
def
|
|
726
|
+
def setApplicationPrimitiveDataType(self, element: ET.Element, data_type: ApplicationPrimitiveDataType):
|
|
722
727
|
self.logger.debug("writeApplicationPrimitiveDataType %s" % data_type.getShortName())
|
|
723
728
|
data_type_tag = ET.SubElement(element, "APPLICATION-PRIMITIVE-DATA-TYPE")
|
|
724
729
|
self.setApplicationDataType(data_type_tag, data_type)
|
|
@@ -741,7 +746,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
741
746
|
child_element = ET.SubElement(elements_tag, "APPLICATION-RECORD-ELEMENT")
|
|
742
747
|
self.setApplicationRecordElement(child_element, record)
|
|
743
748
|
|
|
744
|
-
def
|
|
749
|
+
def setApplicationRecordDataType(self, element: ET.Element, data_type: ApplicationRecordDataType):
|
|
745
750
|
data_type_tag = ET.SubElement(element, "APPLICATION-RECORD-DATA-TYPE")
|
|
746
751
|
self.setApplicationDataType(data_type_tag, data_type)
|
|
747
752
|
self.writeApplicationRecordElements(data_type_tag, data_type)
|
|
@@ -749,9 +754,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
749
754
|
def writeApplicationDataTypes(self, parent: ET.Element, ar_package: ARPackage):
|
|
750
755
|
for data_type in ar_package.getApplicationDataType():
|
|
751
756
|
if isinstance(data_type, ApplicationPrimitiveDataType):
|
|
752
|
-
self.
|
|
757
|
+
self.setApplicationPrimitiveDataType(parent, data_type)
|
|
753
758
|
elif isinstance(data_type, ApplicationRecordDataType):
|
|
754
|
-
self.
|
|
759
|
+
self.setApplicationRecordDataType(parent, data_type)
|
|
755
760
|
else:
|
|
756
761
|
self.notImplemented("Unsupported ApplicationDataType <%s>" % type(data_type))
|
|
757
762
|
|
|
@@ -761,7 +766,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
761
766
|
self.setChildElementOptionalNumericalValue(element, "MEM-ALIGNMENT", base_type_definition.memAlignment)
|
|
762
767
|
self.setChildElementOptionalLiteral(element, "NATIVE-DECLARATION", base_type_definition.nativeDeclaration)
|
|
763
768
|
|
|
764
|
-
def
|
|
769
|
+
def setSwBaseType(self, element: ET.Element, base_type: SwBaseType):
|
|
765
770
|
data_type_tag = ET.SubElement(element, "SW-BASE-TYPE")
|
|
766
771
|
self.setIdentifiable(data_type_tag, base_type)
|
|
767
772
|
self.writeBaseTypeDirectDefinition(data_type_tag, base_type.baseTypeDefinition)
|
|
@@ -793,48 +798,49 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
793
798
|
else:
|
|
794
799
|
self.notImplemented("Unsupported CompuScaleContents %s" % type(compu_scale.compuScaleContents))
|
|
795
800
|
|
|
796
|
-
def
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
def
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
801
|
+
def setCompuConstContent(self, element: ET.Element, content: CompuConstContent):
|
|
802
|
+
if content is not None:
|
|
803
|
+
if isinstance(content, CompuConstFormulaContent):
|
|
804
|
+
self.setChildElementOptionalLiteral(element, "VF", content.getVf())
|
|
805
|
+
elif isinstance(content, CompuConstNumericContent):
|
|
806
|
+
self.setChildElementOptionalNumericalValue(element, "V", content.getV())
|
|
807
|
+
elif isinstance(content, CompuConstTextContent):
|
|
808
|
+
self.setChildElementOptionalLiteral(element, "VT", content.getVt())
|
|
809
|
+
else:
|
|
810
|
+
self.notImplemented("Unsupported CompuConstContent <%s>" % type(content))
|
|
811
|
+
|
|
812
|
+
def setCompuScales(self, element: ET.Element, compu_scales: CompuScales):
|
|
813
|
+
if compu_scales is not None:
|
|
814
|
+
compu_scales_tag = ET.SubElement(element, "COMPU-SCALES")
|
|
815
|
+
for compu_scale in compu_scales.getCompuScales():
|
|
816
|
+
child_element = ET.SubElement(compu_scales_tag, "COMPU-SCALE")
|
|
817
|
+
self.setARObjectAttributes(child_element, compu_scale)
|
|
818
|
+
self.setChildElementOptionalLiteral(child_element, "SHORT-LABEL", compu_scale.getShortLabel())
|
|
819
|
+
self.setChildElementOptionalLiteral(child_element, "SYMBOL", compu_scale.getSymbol())
|
|
820
|
+
self.setChildLimitElement(child_element, "LOWER-LIMIT", compu_scale.getLowerLimit())
|
|
821
|
+
self.setChildLimitElement(child_element, "UPPER-LIMIT", compu_scale.getUpperLimit())
|
|
822
|
+
self.writeCompuScaleContents(child_element, compu_scale)
|
|
823
|
+
|
|
824
|
+
def setCompuConst(self, element: ET.Element, key: str, compu_const: CompuConst):
|
|
825
|
+
if compu_const is not None:
|
|
826
|
+
child_element = ET.SubElement(element, key)
|
|
827
|
+
self.setARObjectAttributes(child_element, compu_const)
|
|
828
|
+
self.setCompuConstContent(child_element, compu_const.getCompuConstContentType())
|
|
818
829
|
|
|
819
|
-
def
|
|
820
|
-
compu = compu_method.getCompuPhysToInternal()
|
|
830
|
+
def setCompu(self, element: ET.Element, key: str, compu: Compu):
|
|
821
831
|
if compu is not None:
|
|
822
|
-
child_element = ET.SubElement(element,
|
|
832
|
+
child_element = ET.SubElement(element, key)
|
|
823
833
|
self.setARObjectAttributes(child_element, compu)
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
if isinstance(compu_content, CompuScales):
|
|
827
|
-
self.writeCompuScales(child_element, compu_content)
|
|
828
|
-
else:
|
|
829
|
-
self.notImplemented("Unsupported CompuContent <%s>" % type(compu_content))
|
|
834
|
+
self.setCompuScales(child_element, compu.getCompuContent())
|
|
835
|
+
self.setCompuConst(child_element, "COMPU-DEFAULT-VALUE", compu.getCompuDefaultValue())
|
|
830
836
|
|
|
831
|
-
def
|
|
837
|
+
def setCompuMethod(self, element: ET.Element, compu_method: CompuMethod):
|
|
832
838
|
child_element = ET.SubElement(element, "COMPU-METHOD")
|
|
833
|
-
self.logger.debug("
|
|
839
|
+
self.logger.debug("write CompuMethods %s" % compu_method.getShortName())
|
|
834
840
|
self.setIdentifiable(child_element, compu_method)
|
|
835
841
|
self.setChildElementOptionalRefType(child_element, "UNIT-REF", compu_method.getUnitRef())
|
|
836
|
-
self.
|
|
837
|
-
self.
|
|
842
|
+
self.setCompu(child_element, "COMPU-INTERNAL-TO-PHYS", compu_method.getCompuInternalToPhys())
|
|
843
|
+
self.setCompu(child_element, "COMPU-PHYS-TO-INTERNAL", compu_method.getCompuPhysToInternal())
|
|
838
844
|
|
|
839
845
|
def setApplicationValueSpecification(self, element: ET.Element, spec: ApplicationValueSpecification):
|
|
840
846
|
spec_tag = ET.SubElement(element, "APPLICATION-VALUE-SPECIFICATION")
|
|
@@ -868,26 +874,25 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
868
874
|
self.setIdentifiable(spec_tag, spec)
|
|
869
875
|
|
|
870
876
|
if spec.getValueSpec() is not None:
|
|
871
|
-
|
|
872
|
-
self.setValueSpecification(value_spec_tag, spec.getValueSpec())
|
|
877
|
+
self.setValueSpecification(spec_tag, "VALUE-SPEC", spec.getValueSpec())
|
|
873
878
|
|
|
874
879
|
def setInternalConstrs(self, element: ET.Element, constrs: InternalConstrs):
|
|
875
880
|
if constrs is not None:
|
|
876
881
|
constrs_tag = ET.SubElement(element, "INTERNAL-CONSTRS")
|
|
877
882
|
self.setARObjectAttributes(constrs_tag, constrs)
|
|
878
883
|
if constrs.lower_limit is not None:
|
|
879
|
-
self.
|
|
884
|
+
self.setChildLimitElement(constrs_tag, "LOWER-LIMIT", constrs.lower_limit)
|
|
880
885
|
if constrs.upper_limit is not None:
|
|
881
|
-
self.
|
|
886
|
+
self.setChildLimitElement(constrs_tag, "UPPER-LIMIT", constrs.upper_limit)
|
|
882
887
|
|
|
883
888
|
def setPhysConstrs(self, element: ET.Element, constrs: PhysConstrs):
|
|
884
889
|
if constrs is not None:
|
|
885
890
|
child_element = ET.SubElement(element, "PHYS-CONSTRS")
|
|
886
891
|
self.setARObjectAttributes(child_element, constrs)
|
|
887
892
|
if constrs.lower_limit is not None:
|
|
888
|
-
self.
|
|
893
|
+
self.setChildLimitElement(child_element, "LOWER-LIMIT", constrs.lower_limit)
|
|
889
894
|
if constrs.upper_limit is not None:
|
|
890
|
-
self.
|
|
895
|
+
self.setChildLimitElement(child_element, "UPPER-LIMIT", constrs.upper_limit)
|
|
891
896
|
self.setChildElementOptionalRefType(child_element, "UNIT-REF", constrs.unit_ref)
|
|
892
897
|
|
|
893
898
|
def writeDataConstrRules(self, element: ET.Element, parent: DataConstr):
|
|
@@ -907,7 +912,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
907
912
|
self.writeDataConstrRules(child_element, constr)
|
|
908
913
|
|
|
909
914
|
def writeUnit(self, element: ET.Element, unit: Unit):
|
|
910
|
-
self.logger.debug("writeUnit %s" % unit.
|
|
915
|
+
self.logger.debug("writeUnit %s" % unit.getShortName())
|
|
911
916
|
child_element = ET.SubElement(element, "UNIT")
|
|
912
917
|
self.setIdentifiable(child_element, unit)
|
|
913
918
|
self.setChildElementOptionalLiteral(child_element, "DISPLAY-NAME", unit.getDisplayName())
|
|
@@ -1064,9 +1069,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1064
1069
|
self.setIdentifiable(child_element, access)
|
|
1065
1070
|
self.setAutosarVariableRef(child_element, access.getAccessedVariableRef())
|
|
1066
1071
|
|
|
1067
|
-
|
|
1068
|
-
#accesses = entity.getDataReadAccesses():
|
|
1069
|
-
pass
|
|
1072
|
+
|
|
1070
1073
|
|
|
1071
1074
|
def setAutosarParameterRef(self, element: ET.Element, key: str, parameter_ref: AutosarParameterRef):
|
|
1072
1075
|
if parameter_ref is not None:
|
|
@@ -1099,12 +1102,19 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1099
1102
|
for point in points:
|
|
1100
1103
|
self.setVariableAccess(child_element, point)
|
|
1101
1104
|
|
|
1105
|
+
def writeDataReadAccesses(self, element: ET.Element, entity: RunnableEntity):
|
|
1106
|
+
accesses = entity.getDataReadAccesses()
|
|
1107
|
+
if len(accesses) > 0:
|
|
1108
|
+
child_element = ET.SubElement(element, "DATA-READ-ACCESSS")
|
|
1109
|
+
for access in accesses:
|
|
1110
|
+
self.setVariableAccess(child_element, access)
|
|
1111
|
+
|
|
1102
1112
|
def writeDataWriteAccesses(self, element: ET.Element, entity: RunnableEntity):
|
|
1103
|
-
|
|
1104
|
-
if len(
|
|
1113
|
+
accesses = entity.getDataWriteAccesses()
|
|
1114
|
+
if len(accesses) > 0:
|
|
1105
1115
|
child_element = ET.SubElement(element, "DATA-WRITE-ACCESSS")
|
|
1106
|
-
for
|
|
1107
|
-
self.setVariableAccess(child_element,
|
|
1116
|
+
for access in accesses:
|
|
1117
|
+
self.setVariableAccess(child_element, access)
|
|
1108
1118
|
|
|
1109
1119
|
def writeReadLocalVariables(self, element: ET.Element, entity: RunnableEntity):
|
|
1110
1120
|
variables = entity.getReadLocalVariables()
|
|
@@ -1214,6 +1224,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1214
1224
|
self.writeAsynchronousServerCallResultPoint(child_element, entity)
|
|
1215
1225
|
self.setChildElementOptionalBooleanValue(child_element, "CAN-BE-INVOKED-CONCURRENTLY", entity.getCanBeInvokedConcurrently())
|
|
1216
1226
|
self.writeParameterAccesses(child_element, entity)
|
|
1227
|
+
self.writeDataReadAccesses(child_element, entity)
|
|
1217
1228
|
self.writeDataReceivePointByArguments(child_element, entity)
|
|
1218
1229
|
self.writeDataSendPoints(child_element, entity)
|
|
1219
1230
|
self.writeDataWriteAccesses(child_element, entity)
|
|
@@ -1260,7 +1271,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1260
1271
|
child_element = ET.SubElement(element, "PARAMETER-DATA-PROTOTYPE")
|
|
1261
1272
|
self.setIdentifiable(child_element, prototype)
|
|
1262
1273
|
self.setAutosarDataPrototype(child_element, prototype)
|
|
1263
|
-
self.
|
|
1274
|
+
self.setValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
|
|
1264
1275
|
|
|
1265
1276
|
def writePerInstanceParameters(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1266
1277
|
prototypes = behavior.getPerInstanceParameters()
|
|
@@ -1269,16 +1280,14 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1269
1280
|
for prototype in prototypes:
|
|
1270
1281
|
self.writeParameterDataPrototype(child_element, prototype)
|
|
1271
1282
|
|
|
1272
|
-
def writePortDefinedArgumentValues(self, element: ET.Element,
|
|
1273
|
-
argument_values = option.getPortArgValues()
|
|
1283
|
+
def writePortDefinedArgumentValues(self, element: ET.Element, argument_values: List[PortDefinedArgumentValue]) :
|
|
1274
1284
|
if len(argument_values) > 0:
|
|
1275
1285
|
child_element = ET.SubElement(element, "PORT-ARG-VALUES")
|
|
1276
1286
|
for argument_value in argument_values:
|
|
1277
1287
|
child_element = ET.SubElement(child_element, "PORT-DEFINED-ARGUMENT-VALUE")
|
|
1278
|
-
if argument_value.
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
self.setChildElementOptionalRefType(child_element, "VALUE-TYPE-TREF", argument_value.valueTypeTRef)
|
|
1288
|
+
if argument_value.getValue() is not None:
|
|
1289
|
+
self.setValueSpecification(child_element, "VALUE", argument_value.getValue())
|
|
1290
|
+
self.setChildElementOptionalRefType(child_element, "VALUE-TYPE-TREF", argument_value.getValueTypeTRef())
|
|
1282
1291
|
|
|
1283
1292
|
def writePortAPIOptions(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1284
1293
|
options = behavior.getPortAPIOptions()
|
|
@@ -1286,10 +1295,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1286
1295
|
port_api_options_tag = ET.SubElement(element, "PORT-API-OPTIONS")
|
|
1287
1296
|
for option in options:
|
|
1288
1297
|
child_element = ET.SubElement(port_api_options_tag, "PORT-API-OPTION")
|
|
1289
|
-
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS", option.
|
|
1290
|
-
self.
|
|
1291
|
-
self.
|
|
1292
|
-
self.
|
|
1298
|
+
self.setChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS", option.getEnableTakeAddress())
|
|
1299
|
+
self.setChildElementOptionalLiteral(child_element, "ERROR-HANDLING", option.getErrorHandling())
|
|
1300
|
+
self.setChildElementOptionalBooleanValue(child_element, "INDIRECT-API", option.getIndirectAPI())
|
|
1301
|
+
self.writePortDefinedArgumentValues(child_element, option.getPortArgValues())
|
|
1302
|
+
self.setChildElementOptionalRefType(child_element, "PORT-REF", option.getPortRef())
|
|
1293
1303
|
|
|
1294
1304
|
def writeRoleBasedDataTypeAssignment(self, element: ET.Element, assignment: RoleBasedDataTypeAssignment):
|
|
1295
1305
|
child_element = ET.SubElement(element, "ROLE-BASED-DATA-TYPE-ASSIGNMENT")
|
|
@@ -1343,7 +1353,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1343
1353
|
|
|
1344
1354
|
def writeNvBlockNeeds(self, element: ET.Element, needs: NvBlockNeeds):
|
|
1345
1355
|
child_element = ET.SubElement(element, "NV-BLOCK-NEEDS")
|
|
1346
|
-
self.logger.debug("write NvBlockNeeds %s" % needs.
|
|
1356
|
+
self.logger.debug("write NvBlockNeeds %s" % needs.getShortName())
|
|
1347
1357
|
self.setIdentifiable(child_element, needs)
|
|
1348
1358
|
self.setChildElementOptionalBooleanValue(child_element, "CALC-RAM-BLOCK-CRC", needs.getCalcRamBlockCrc())
|
|
1349
1359
|
self.setChildElementOptionalBooleanValue(child_element, "CHECK-STATIC-BLOCK-ID", needs.getCheckStaticBlockId())
|
|
@@ -1366,20 +1376,20 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1366
1376
|
|
|
1367
1377
|
def writeDiagnosticCommunicationManagerNeeds(self, element: ET.Element, needs: DiagnosticCommunicationManagerNeeds):
|
|
1368
1378
|
child_element = ET.SubElement(element, "DIAGNOSTIC-COMMUNICATION-MANAGER-NEEDS")
|
|
1369
|
-
self.logger.debug("write DiagnosticCommunicationManagerNeeds %s" % needs.
|
|
1379
|
+
self.logger.debug("write DiagnosticCommunicationManagerNeeds %s" % needs.getShortName())
|
|
1370
1380
|
self.setIdentifiable(child_element, needs)
|
|
1371
1381
|
self.setChildElementOptionalLiteral(child_element, "SERVICE-REQUEST-CALLBACK-TYPE", needs.getServiceRequestCallbackType())
|
|
1372
1382
|
|
|
1373
1383
|
def writeDiagnosticRoutineNeeds(self, element: ET.Element, needs: DiagnosticRoutineNeeds):
|
|
1374
1384
|
child_element = ET.SubElement(element, "DIAGNOSTIC-ROUTINE-NEEDS")
|
|
1375
|
-
self.logger.debug("write DiagnosticRoutineNeeds %s" % needs.
|
|
1385
|
+
self.logger.debug("write DiagnosticRoutineNeeds %s" % needs.getShortName())
|
|
1376
1386
|
self.setIdentifiable(child_element, needs)
|
|
1377
1387
|
self.setChildElementOptionalLiteral(child_element, "DIAG-ROUTINE-TYPE", needs.getDiagRoutineType())
|
|
1378
1388
|
self.setChildElementOptionalIntegerValue(child_element, "RID-NUMBER", needs.getRidNumber())
|
|
1379
1389
|
|
|
1380
1390
|
def writeDiagnosticValueNeeds(self, element: ET.Element, needs: DiagnosticValueNeeds):
|
|
1381
1391
|
child_element = ET.SubElement(element, "DIAGNOSTIC-VALUE-NEEDS")
|
|
1382
|
-
self.logger.debug("write DiagnosticValueNeeds %s" % needs.
|
|
1392
|
+
self.logger.debug("write DiagnosticValueNeeds %s" % needs.getShortName())
|
|
1383
1393
|
self.setIdentifiable(child_element, needs)
|
|
1384
1394
|
self.setChildElementOptionalPositiveInteger(child_element, "DATA-LENGTH", needs.getDataLength())
|
|
1385
1395
|
self.setChildElementOptionalLiteral(child_element, "DIAGNOSTIC-VALUE-ACCESS", needs.getDiagnosticValueAccess())
|
|
@@ -1402,7 +1412,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1402
1412
|
|
|
1403
1413
|
def writeDiagnosticEventNeeds(self, element: ET.Element, needs: DiagnosticEventNeeds):
|
|
1404
1414
|
child_element = ET.SubElement(element, "DIAGNOSTIC-EVENT-NEEDS")
|
|
1405
|
-
self.logger.debug("write DiagnosticEventNeeds %s" % needs.
|
|
1415
|
+
self.logger.debug("write DiagnosticEventNeeds %s" % needs.getShortName())
|
|
1406
1416
|
self.setIdentifiable(child_element, needs)
|
|
1407
1417
|
self.writeDiagEventDebounceAlgorithm(child_element, needs)
|
|
1408
1418
|
self.setChildElementOptionalLiteral(child_element, "DTC-KIND", needs.getDtcKind())
|
|
@@ -1410,10 +1420,15 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1410
1420
|
|
|
1411
1421
|
def writeCryptoServiceNeeds(self, element: ET.Element, needs: CryptoServiceNeeds):
|
|
1412
1422
|
child_element = ET.SubElement(element, "CRYPTO-SERVICE-NEEDS")
|
|
1413
|
-
self.logger.debug("write CryptoServiceNeeds %s" % needs.
|
|
1423
|
+
self.logger.debug("write CryptoServiceNeeds %s" % needs.getShortName())
|
|
1414
1424
|
self.setIdentifiable(child_element, needs)
|
|
1415
1425
|
self.setChildElementOptionalPositiveInteger(child_element, "MAXIMUM-KEY-LENGTH", needs.getMaximumKeyLength())
|
|
1416
1426
|
|
|
1427
|
+
def writeEcuStateMgrUserNeeds(self, element: ET.Element, needs: EcuStateMgrUserNeeds):
|
|
1428
|
+
child_element = ET.SubElement(element, "ECU-STATE-MGR-USER-NEEDS")
|
|
1429
|
+
self.logger.debug("write EcuStateMgrUserNeeds %s" % needs.getShortName())
|
|
1430
|
+
self.setIdentifiable(child_element, needs)
|
|
1431
|
+
|
|
1417
1432
|
def writeSwcServiceDependencyServiceNeeds(self, element: ET.Element, parent: SwcServiceDependency):
|
|
1418
1433
|
needs = parent.getServiceNeeds()
|
|
1419
1434
|
if len(needs) > 0:
|
|
@@ -1431,6 +1446,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1431
1446
|
self.writeDiagnosticEventNeeds(child_element, need)
|
|
1432
1447
|
elif isinstance(need, CryptoServiceNeeds):
|
|
1433
1448
|
self.writeCryptoServiceNeeds(child_element, need)
|
|
1449
|
+
elif isinstance(need, EcuStateMgrUserNeeds):
|
|
1450
|
+
self.writeEcuStateMgrUserNeeds(child_element, need)
|
|
1434
1451
|
else:
|
|
1435
1452
|
self._raiseError("Unsupported service needs <%s>" % type(need))
|
|
1436
1453
|
|
|
@@ -1464,20 +1481,20 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1464
1481
|
self.setChildElementOptionalRefType(data_type_refs_tag, "DATA-TYPE-REF", type_ref)
|
|
1465
1482
|
|
|
1466
1483
|
def writeSwcInternalBehavior(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1467
|
-
self.logger.debug("writeSwInternalBehavior %s" % behavior.
|
|
1484
|
+
self.logger.debug("writeSwInternalBehavior %s" % behavior.getShortName())
|
|
1468
1485
|
|
|
1469
1486
|
child_element = ET.SubElement(element, "SWC-INTERNAL-BEHAVIOR")
|
|
1470
1487
|
self.writeInternalBehavior(child_element, behavior)
|
|
1471
1488
|
self.writeRTEEvents(child_element, behavior)
|
|
1472
1489
|
self.writeExplicitInterRunnableVariables(child_element, behavior)
|
|
1473
|
-
self.setChildElementOptionalLiteral(child_element, "HANDLE-TERMINATION-AND-RESTART", behavior.
|
|
1490
|
+
self.setChildElementOptionalLiteral(child_element, "HANDLE-TERMINATION-AND-RESTART", behavior.handleTerminationAndRestart)
|
|
1474
1491
|
self.setIncludedDataTypeSets(child_element, behavior.getIncludedDataTypeSets())
|
|
1475
1492
|
self.writePerInstanceMemories(child_element, behavior)
|
|
1476
1493
|
self.writePerInstanceParameters(child_element, behavior)
|
|
1477
1494
|
self.writePortAPIOptions(child_element, behavior)
|
|
1478
1495
|
self.writeSwcInternalBehaviorRunnableEntities(child_element, behavior)
|
|
1479
1496
|
self.writeSwcInternalBehaviorServiceDependencies(child_element, behavior)
|
|
1480
|
-
self.setChildElementOptionalBooleanValue(child_element, "SUPPORTS-MULTIPLE-INSTANTIATION", behavior.
|
|
1497
|
+
self.setChildElementOptionalBooleanValue(child_element, "SUPPORTS-MULTIPLE-INSTANTIATION", behavior.supportsMultipleInstantiation)
|
|
1481
1498
|
|
|
1482
1499
|
def writeAtomicSwComponentTypeInternalBehaviors(self, element: ET.Element, behavior: InternalBehavior):
|
|
1483
1500
|
if behavior is not None:
|
|
@@ -1492,7 +1509,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1492
1509
|
self.writeAtomicSwComponentTypeInternalBehaviors(element, sw_component.internal_behavior)
|
|
1493
1510
|
|
|
1494
1511
|
def writeComplexDeviceDriverSwComponentType(self, element: ET.Element, sw_component: ComplexDeviceDriverSwComponentType):
|
|
1495
|
-
self.logger.debug("writeComplexDeviceDriverSwComponentType %s" % sw_component.
|
|
1512
|
+
self.logger.debug("writeComplexDeviceDriverSwComponentType %s" % sw_component.getShortName())
|
|
1496
1513
|
child_element = ET.SubElement(element, "COMPLEX-DEVICE-DRIVER-SW-COMPONENT-TYPE")
|
|
1497
1514
|
self.writeAtomicSwComponentType(child_element, sw_component)
|
|
1498
1515
|
|
|
@@ -1508,7 +1525,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1508
1525
|
self.setChildElementOptionalLiteral(artifact_desc_tag, "CATEGORY", artifact_desc.category)
|
|
1509
1526
|
|
|
1510
1527
|
def setCode(self, element: ET.SubElement, code_desc: Code):
|
|
1511
|
-
self.logger.debug("setCode %s" % code_desc.
|
|
1528
|
+
self.logger.debug("setCode %s" % code_desc.getShortName())
|
|
1512
1529
|
child_element = ET.SubElement(element, "CODE")
|
|
1513
1530
|
self.setIdentifiable(child_element, code_desc)
|
|
1514
1531
|
self.writeArtifactDescriptor(child_element, code_desc)
|
|
@@ -1542,13 +1559,33 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1542
1559
|
self.setChildElementOptionalNumericalValue(child_element, "SIZE", memory_section.getSize())
|
|
1543
1560
|
self.setChildElementOptionalRefType(child_element, "SW-ADDRMETHOD-REF", memory_section.getSwAddrMethodRef())
|
|
1544
1561
|
self.setChildElementOptionalLiteral(child_element, "SYMBOL", memory_section.getSymbol())
|
|
1545
|
-
self.logger.debug("
|
|
1562
|
+
self.logger.debug("Write MemorySection %s" % memory_section.getShortName())
|
|
1563
|
+
|
|
1564
|
+
def setStackUsage(self, element: ET.Element, usage: StackUsage):
|
|
1565
|
+
self.logger.debug("Write StackUsage %s" % usage.getShortName())
|
|
1566
|
+
self.setIdentifiable(element, usage)
|
|
1567
|
+
|
|
1568
|
+
def setRoughEstimateStackUsage(self, element: ET.Element, usage: RoughEstimateStackUsage):
|
|
1569
|
+
if usage is not None:
|
|
1570
|
+
child_element = ET.SubElement(element, "ROUGH-ESTIMATE-STACK-USAGE")
|
|
1571
|
+
self.setStackUsage(child_element, usage)
|
|
1572
|
+
self.setChildElementOptionalPositiveInteger(child_element, "MEMORY-CONSUMPTION", usage.getMemoryConsumption())
|
|
1573
|
+
|
|
1574
|
+
def writeStackUsages(self, element: ET.Element, usages: List[StackUsage]):
|
|
1575
|
+
if len(usages) > 0:
|
|
1576
|
+
child_element = ET.SubElement(element, "STACK-USAGES")
|
|
1577
|
+
for usage in usages:
|
|
1578
|
+
if isinstance(usage, RoughEstimateStackUsage):
|
|
1579
|
+
self.setRoughEstimateStackUsage(child_element, usage)
|
|
1580
|
+
else:
|
|
1581
|
+
self.notImplemented("Unsupported Stack Usages: <%s>" % type(usage))
|
|
1546
1582
|
|
|
1547
1583
|
def setResourceConsumption(self, element: ET.Element, consumption: ResourceConsumption):
|
|
1548
1584
|
if consumption is not None:
|
|
1549
1585
|
child_element = ET.SubElement(element, "RESOURCE-CONSUMPTION")
|
|
1550
1586
|
self.setIdentifiable(child_element, consumption)
|
|
1551
1587
|
self.writeMemorySections(child_element, consumption)
|
|
1588
|
+
self.writeStackUsages(child_element, consumption.getStackUsages())
|
|
1552
1589
|
|
|
1553
1590
|
def writeImplementation(self, element: ET.Element, impl: Implementation):
|
|
1554
1591
|
self.setIdentifiable(element, impl)
|
|
@@ -1561,7 +1598,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1561
1598
|
self.setChildElementOptionalNumericalValue(element, "VENDOR-ID", impl.getVendorId())
|
|
1562
1599
|
|
|
1563
1600
|
def writeSwcImplementation(self, element: ET.Element, impl: SwcImplementation):
|
|
1564
|
-
self.logger.debug("writeSwcImplementation %s" % impl.
|
|
1601
|
+
self.logger.debug("writeSwcImplementation %s" % impl.getShortName())
|
|
1565
1602
|
child_element = ET.SubElement(element, "SWC-IMPLEMENTATION")
|
|
1566
1603
|
self.writeImplementation(child_element, impl)
|
|
1567
1604
|
self.setChildElementOptionalRefType(child_element, "BEHAVIOR-REF", impl.getBehaviorRef())
|
|
@@ -1627,7 +1664,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1627
1664
|
self.setEndToEndProtection(child_element, protection)
|
|
1628
1665
|
|
|
1629
1666
|
def writeEndToEndProtectionSet(self, element: ET.Element, protection_set: EndToEndProtectionSet):
|
|
1630
|
-
self.logger.debug("writeEndToEndProtectionSet %s" % protection_set.
|
|
1667
|
+
self.logger.debug("writeEndToEndProtectionSet %s" % protection_set.getShortName())
|
|
1631
1668
|
child_element = ET.SubElement(element, "END-TO-END-PROTECTION-SET")
|
|
1632
1669
|
self.setIdentifiable(child_element, protection_set)
|
|
1633
1670
|
self.writeEndToEndProtections(child_element, protection_set)
|
|
@@ -1637,11 +1674,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1637
1674
|
self.setChildElementOptionalRefType(element, "TYPE-TREF", prototype.typeTRef)
|
|
1638
1675
|
|
|
1639
1676
|
def writeVariableDataPrototype(self, element: ET.Element, prototype: VariableDataPrototype):
|
|
1640
|
-
self.logger.debug("writeVariableDataPrototype %s" % prototype.
|
|
1677
|
+
self.logger.debug("writeVariableDataPrototype %s" % prototype.getShortName())
|
|
1641
1678
|
child_element = ET.SubElement(element, "VARIABLE-DATA-PROTOTYPE")
|
|
1642
1679
|
self.setIdentifiable(child_element, prototype)
|
|
1643
1680
|
self.setAutosarDataPrototype(child_element, prototype)
|
|
1644
|
-
self.
|
|
1681
|
+
self.setValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
|
|
1645
1682
|
|
|
1646
1683
|
def writeSenderReceiverInterfaceDataElements(self, element: ET.Element, sr_interface: SenderReceiverInterface):
|
|
1647
1684
|
data_elements = sr_interface.getDataElements()
|
|
@@ -1663,7 +1700,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1663
1700
|
self.setChildElementOptionalLiteral(child_element, "HANDLE-INVALID", policy.getHandleInvalid())
|
|
1664
1701
|
|
|
1665
1702
|
def writeSenderReceiverInterface(self, element: ET.Element, sr_interface: SenderReceiverInterface):
|
|
1666
|
-
self.logger.debug("writeSenderReceiverInterface %s" % sr_interface.
|
|
1703
|
+
self.logger.debug("writeSenderReceiverInterface %s" % sr_interface.getShortName())
|
|
1667
1704
|
child_element = ET.SubElement(element, "SENDER-RECEIVER-INTERFACE")
|
|
1668
1705
|
self.setIdentifiable(child_element, sr_interface)
|
|
1669
1706
|
self.setChildElementOptionalBooleanValue(child_element, "IS-SERVICE", sr_interface.getIsService())
|
|
@@ -1717,15 +1754,22 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1717
1754
|
self.writeBswModuleEntityManagedModeGroup(element, entity)
|
|
1718
1755
|
|
|
1719
1756
|
def setBswCalledEntity(self, element: ET.Element, entity: BswCalledEntity):
|
|
1720
|
-
self.logger.debug("setBswCalledEntity %s" % entity.
|
|
1757
|
+
self.logger.debug("setBswCalledEntity %s" % entity.getShortName())
|
|
1721
1758
|
child_element = ET.SubElement(element, "BSW-CALLED-ENTITY")
|
|
1722
1759
|
self.setBswModuleEntity(child_element, entity)
|
|
1723
1760
|
|
|
1724
1761
|
def setBswSchedulableEntity(self, element: ET.Element, entity: BswSchedulableEntity):
|
|
1725
|
-
self.logger.debug("
|
|
1762
|
+
self.logger.debug("set BswSchedulableEntity %s" % entity.getShortName())
|
|
1726
1763
|
child_element = ET.SubElement(element, "BSW-SCHEDULABLE-ENTITY")
|
|
1727
1764
|
self.setBswModuleEntity(child_element, entity)
|
|
1728
1765
|
|
|
1766
|
+
def setBswInterruptEntity(self, element: ET.Element, entity: BswInterruptEntity):
|
|
1767
|
+
self.logger.debug("read BswInterruptEntity %s" % entity.getShortName())
|
|
1768
|
+
child_element = ET.SubElement(element, "BSW-INTERRUPT-ENTITY")
|
|
1769
|
+
self.setBswModuleEntity(child_element, entity)
|
|
1770
|
+
self.setChildElementOptionalLiteral(child_element, "INTERRUPT-CATEGORY", entity.getInterruptCategory())
|
|
1771
|
+
self.setChildElementOptionalLiteral(child_element, "INTERRUPT-SOURCE", entity.getInterruptSource())
|
|
1772
|
+
|
|
1729
1773
|
def writeBswInternalBehaviorBswModuleEntities(self, element: ET.Element, parent: BswInternalBehavior):
|
|
1730
1774
|
entities = parent.getBswModuleEntities()
|
|
1731
1775
|
if len(entities) > 0:
|
|
@@ -1735,8 +1779,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1735
1779
|
self.setBswCalledEntity(child_element, entity)
|
|
1736
1780
|
elif isinstance(entity, BswSchedulableEntity):
|
|
1737
1781
|
self.setBswSchedulableEntity(child_element, entity)
|
|
1782
|
+
elif isinstance(entity, BswInterruptEntity):
|
|
1783
|
+
self.setBswInterruptEntity(child_element, entity)
|
|
1738
1784
|
else:
|
|
1739
|
-
self.
|
|
1785
|
+
self.notImplemented("Unsupported BswModuleEntity <%s>" % type(entity))
|
|
1740
1786
|
|
|
1741
1787
|
def setBswEvent(self, element: ET.Element, event: BswEvent):
|
|
1742
1788
|
self.setIdentifiable(element, event)
|
|
@@ -1746,7 +1792,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1746
1792
|
self.setBswEvent(element, event)
|
|
1747
1793
|
|
|
1748
1794
|
def setBswTimingEvent(self, element: ET.Element, event: BswTimingEvent):
|
|
1749
|
-
self.logger.debug("setBswTimingEvent %s" % event.
|
|
1795
|
+
self.logger.debug("setBswTimingEvent %s" % event.getShortName())
|
|
1750
1796
|
child_element = ET.SubElement(element, "BSW-TIMING-EVENT")
|
|
1751
1797
|
self.setBswScheduleEvent(child_element, event)
|
|
1752
1798
|
self.setChildElementOptionalTimeValue(child_element, "PERIOD", event.getPeriod())
|
|
@@ -1804,10 +1850,10 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1804
1850
|
self._raiseError("Unsupported BswInternalBehavior <%s>" % type(behavior))
|
|
1805
1851
|
|
|
1806
1852
|
def writeBswModuleDescription(self, element: ET.Element, desc: BswModuleDescription):
|
|
1807
|
-
self.logger.debug("writeBswModuleDescription %s" % desc.
|
|
1853
|
+
self.logger.debug("writeBswModuleDescription %s" % desc.getShortName())
|
|
1808
1854
|
child_element = ET.SubElement(element, "BSW-MODULE-DESCRIPTION")
|
|
1809
1855
|
self.setIdentifiable(child_element, desc)
|
|
1810
|
-
self.setChildElementOptionalNumericalValue(child_element, "MODULE-ID", desc.
|
|
1856
|
+
self.setChildElementOptionalNumericalValue(child_element, "MODULE-ID", desc.getModuleId())
|
|
1811
1857
|
self.writerBswModuleDescriptionImplementedEntry(child_element, desc)
|
|
1812
1858
|
self.writeProvidedModeGroup(child_element, desc)
|
|
1813
1859
|
#self.readRequiredModeGroup(element, bsw_module_description)
|
|
@@ -1821,22 +1867,37 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1821
1867
|
child_element = ET.SubElement(mode_groups_tag, "MODE-DECLARATION-GROUP-PROTOTYPE-REF-CONDITIONAL")
|
|
1822
1868
|
self.setChildElementOptionalRefType(child_element, "MODE-DECLARATION-GROUP-PROTOTYPE-REF", mode_group_ref)
|
|
1823
1869
|
|
|
1870
|
+
def setSwServiceArg(self, element: ET.Element, arg: SwServiceArg):
|
|
1871
|
+
self.logger.debug("Set SwServiceArg <%s>" % arg.getShortName())
|
|
1872
|
+
if arg is not None:
|
|
1873
|
+
child_element = ET.SubElement(element, "SW-SERVICE-ARG")
|
|
1874
|
+
self.setIdentifiable(child_element, arg)
|
|
1875
|
+
self.setChildElementOptionalLiteral(child_element, "DIRECTION", arg.getDirection())
|
|
1876
|
+
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", arg.getSwDataDefProps())
|
|
1877
|
+
|
|
1878
|
+
def writeBswModuleEntryArguments(self, element: ET.Element, entry: BswModuleEntry):
|
|
1879
|
+
arguments = entry.getArguments()
|
|
1880
|
+
if len(arguments) > 0:
|
|
1881
|
+
child_element = ET.SubElement(element, "ARGUMENTS")
|
|
1882
|
+
for argument in arguments:
|
|
1883
|
+
self.setSwServiceArg(child_element, argument)
|
|
1884
|
+
|
|
1824
1885
|
def writeBswModuleEntry(self, element: ET.Element, entry: BswModuleEntry):
|
|
1825
|
-
self.logger.debug("writeBswModuleDescription %s" % entry.
|
|
1886
|
+
self.logger.debug("writeBswModuleDescription %s" % entry.getShortName())
|
|
1826
1887
|
child_element = ET.SubElement(element, "BSW-MODULE-ENTRY")
|
|
1827
1888
|
self.setIdentifiable(child_element, entry)
|
|
1828
|
-
self.setChildElementOptionalNumericalValue(child_element, "SERVICE-ID", entry.
|
|
1829
|
-
self.setChildElementOptionalBooleanValue(child_element, "IS-REENTRANT", entry.
|
|
1830
|
-
self.setChildElementOptionalBooleanValue(child_element, "IS-SYNCHRONOUS", entry.
|
|
1831
|
-
self.setChildElementOptionalLiteral(child_element, "CALL-TYPE", entry.
|
|
1832
|
-
self.setChildElementOptionalLiteral(child_element, "EXECUTION-CONTEXT", entry.
|
|
1833
|
-
self.setChildElementOptionalLiteral(child_element, "SW-SERVICE-IMPL-POLICY", entry.
|
|
1834
|
-
|
|
1889
|
+
self.setChildElementOptionalNumericalValue(child_element, "SERVICE-ID", entry.getServiceId())
|
|
1890
|
+
self.setChildElementOptionalBooleanValue(child_element, "IS-REENTRANT", entry.getIsReentrant())
|
|
1891
|
+
self.setChildElementOptionalBooleanValue(child_element, "IS-SYNCHRONOUS", entry.getIsSynchronous())
|
|
1892
|
+
self.setChildElementOptionalLiteral(child_element, "CALL-TYPE", entry.getCallType())
|
|
1893
|
+
self.setChildElementOptionalLiteral(child_element, "EXECUTION-CONTEXT", entry.getExecutionContext())
|
|
1894
|
+
self.setChildElementOptionalLiteral(child_element, "SW-SERVICE-IMPL-POLICY", entry.getSwServiceImplPolicy())
|
|
1895
|
+
self.writeBswModuleEntryArguments(child_element, entry)
|
|
1835
1896
|
|
|
1836
1897
|
def setSwcBswRunnableMapping(self, element: ET.SubElement, mapping: SwcBswRunnableMapping):
|
|
1837
1898
|
child_element = ET.SubElement(element, "SWC-BSW-RUNNABLE-MAPPING")
|
|
1838
|
-
self.setChildElementOptionalRefType(child_element, "BSW-ENTITY-REF", mapping.
|
|
1839
|
-
self.setChildElementOptionalRefType(child_element, "SWC-RUNNABLE-REF", mapping.
|
|
1899
|
+
self.setChildElementOptionalRefType(child_element, "BSW-ENTITY-REF", mapping.getBswEntityRef())
|
|
1900
|
+
self.setChildElementOptionalRefType(child_element, "SWC-RUNNABLE-REF", mapping.getSwcRunnableRef())
|
|
1840
1901
|
|
|
1841
1902
|
def writeSwcBswRunnableMappings(self, element: ET.Element, parent: SwcBswMapping):
|
|
1842
1903
|
runnable_mappings = parent.getRunnableMappings()
|
|
@@ -1849,12 +1910,12 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1849
1910
|
self._raiseError("Unsupported Runnable Mapping <%s>" % type(mapping))
|
|
1850
1911
|
|
|
1851
1912
|
def setSwcBswMapping(self, element: ET.Element, mapping: SwcBswMapping):
|
|
1852
|
-
self.logger.debug("writeBswModuleDescription %s" % mapping.
|
|
1913
|
+
self.logger.debug("writeBswModuleDescription %s" % mapping.getShortName())
|
|
1853
1914
|
child_element = ET.SubElement(element, "SWC-BSW-MAPPING")
|
|
1854
1915
|
self.setIdentifiable(child_element, mapping)
|
|
1855
|
-
self.setChildElementOptionalRefType(child_element, "BSW-BEHAVIOR-REF", mapping.
|
|
1916
|
+
self.setChildElementOptionalRefType(child_element, "BSW-BEHAVIOR-REF", mapping.getBswBehaviorRef())
|
|
1856
1917
|
self.writeSwcBswRunnableMappings(child_element, mapping)
|
|
1857
|
-
self.setChildElementOptionalRefType(child_element, "SWC-BEHAVIOR-REF", mapping.
|
|
1918
|
+
self.setChildElementOptionalRefType(child_element, "SWC-BEHAVIOR-REF", mapping.getSwcBehaviorRef())
|
|
1858
1919
|
|
|
1859
1920
|
def writeEngineeringObject(self, element: ET.Element, engineering_obj: EngineeringObject):
|
|
1860
1921
|
self.setARObjectAttributes(element, engineering_obj)
|
|
@@ -1885,7 +1946,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1885
1946
|
self.setChildElementOptionalRefType(child_element, "VENDOR-SPECIFIC-MODULE-DEF-REF", ref)
|
|
1886
1947
|
|
|
1887
1948
|
def writeBswImplementation(self, element: ET.Element, impl: BswImplementation):
|
|
1888
|
-
self.logger.debug("writeBswModuleDescription %s" % impl.
|
|
1949
|
+
self.logger.debug("writeBswModuleDescription %s" % impl.getShortName())
|
|
1889
1950
|
child_element = ET.SubElement(element, "BSW-IMPLEMENTATION")
|
|
1890
1951
|
self.writeImplementation(child_element, impl)
|
|
1891
1952
|
self.setChildElementOptionalLiteral(child_element, "AR-RELEASE-VERSION", impl.getArReleaseVersion())
|
|
@@ -1906,7 +1967,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1906
1967
|
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", type_element.getSwDataDefProps())
|
|
1907
1968
|
|
|
1908
1969
|
def writeImplementationDataType(self, element: ET.Element, data_type: ImplementationDataType):
|
|
1909
|
-
self.logger.debug("writeImplementationDataType %s" % data_type.
|
|
1970
|
+
self.logger.debug("writeImplementationDataType %s" % data_type.getShortName())
|
|
1910
1971
|
child_element = ET.SubElement(element, "IMPLEMENTATION-DATA-TYPE")
|
|
1911
1972
|
self.setAutosarDataType(child_element, data_type)
|
|
1912
1973
|
self.setChildElementOptionalLiteral(child_element, "DYNAMIC-ARRAY-SIZE-PROFILE", data_type.getDynamicArraySizeProfile())
|
|
@@ -1923,7 +1984,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1923
1984
|
self.setSwDataDefProps(child_element, "SW-DATA-DEF-PROPS", prototype.swDataDefProps)
|
|
1924
1985
|
self.setChildElementOptionalRefType(child_element, "TYPE-TREF", prototype.typeTRef)
|
|
1925
1986
|
self.setChildElementOptionalLiteral(child_element, "DIRECTION", prototype.direction)
|
|
1926
|
-
self.setChildElementOptionalLiteral(child_element, "SERVER-ARGUMENT-IMPL-POLICY", prototype.
|
|
1987
|
+
self.setChildElementOptionalLiteral(child_element, "SERVER-ARGUMENT-IMPL-POLICY", prototype.serverArgumentImplPolicy)
|
|
1927
1988
|
|
|
1928
1989
|
def writePossibleErrorRefs(self, element: ET.Element, parent: ClientServerOperation):
|
|
1929
1990
|
error_refs = parent.getPossbileErrorRefs()
|
|
@@ -1933,7 +1994,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1933
1994
|
self.setChildElementOptionalRefType(error_refs_tag, "POSSIBLE-ERROR-REF", error_ref)
|
|
1934
1995
|
|
|
1935
1996
|
def writeClientServerOperation(self, element: ET.Element, operation: ClientServerOperation):
|
|
1936
|
-
self.logger.debug("writeClientServerOperation %s" % operation.
|
|
1997
|
+
self.logger.debug("writeClientServerOperation %s" % operation.getShortName())
|
|
1937
1998
|
child_element = ET.SubElement(element, "CLIENT-SERVER-OPERATION")
|
|
1938
1999
|
self.setIdentifiable(child_element, operation)
|
|
1939
2000
|
self.writeArgumentDataPrototypes(child_element, operation)
|
|
@@ -1950,7 +2011,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1950
2011
|
self._raiseError("Unsupported Operation <%s>" % type(operation))
|
|
1951
2012
|
|
|
1952
2013
|
def writeApplicationError(self, element: ET.Element, error: ApplicationError):
|
|
1953
|
-
self.logger.debug("writeApplicationError %s" % error.
|
|
2014
|
+
self.logger.debug("writeApplicationError %s" % error.getShortName())
|
|
1954
2015
|
child_element = ET.SubElement(element, "APPLICATION-ERROR")
|
|
1955
2016
|
self.setIdentifiable(child_element, error)
|
|
1956
2017
|
self.setChildElementOptionalNumericalValue(child_element, "ERROR-CODE", error.error_code)
|
|
@@ -1978,25 +2039,25 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1978
2039
|
self.writeParameterDataPrototype(child_element, prototype)
|
|
1979
2040
|
|
|
1980
2041
|
def writeParameterInterface(self, element: ET.Element, param_interface: ParameterInterface):
|
|
1981
|
-
self.logger.debug("Write ParameterInterface %s" % param_interface.
|
|
2042
|
+
self.logger.debug("Write ParameterInterface %s" % param_interface.getShortName())
|
|
1982
2043
|
child_element = ET.SubElement(element, "PARAMETER-INTERFACE")
|
|
1983
2044
|
self.setPortInterface(child_element, param_interface)
|
|
1984
2045
|
self.writeParameterInterfaceParameters(child_element, param_interface)
|
|
1985
2046
|
|
|
1986
2047
|
def writeClientServerInterface(self, element: ET.Element, cs_interface: ClientServerInterface):
|
|
1987
|
-
self.logger.debug("writeClientServerInterface %s" % cs_interface.
|
|
2048
|
+
self.logger.debug("writeClientServerInterface %s" % cs_interface.getShortName())
|
|
1988
2049
|
child_element = ET.SubElement(element, "CLIENT-SERVER-INTERFACE")
|
|
1989
2050
|
self.setPortInterface(child_element, cs_interface)
|
|
1990
2051
|
self.writeOperations(child_element, cs_interface)
|
|
1991
2052
|
self.writePossibleErrors(child_element, cs_interface)
|
|
1992
2053
|
|
|
1993
2054
|
def writeApplicationSwComponentType(self, element: ET.Element, sw_component: ApplicationSwComponentType):
|
|
1994
|
-
self.logger.debug("writeApplicationSwComponentType %s" % sw_component.
|
|
2055
|
+
self.logger.debug("writeApplicationSwComponentType %s" % sw_component.getShortName())
|
|
1995
2056
|
child_element = ET.SubElement(element, "APPLICATION-SW-COMPONENT-TYPE")
|
|
1996
2057
|
self.writeAtomicSwComponentType(child_element, sw_component)
|
|
1997
2058
|
|
|
1998
2059
|
def writeEcuAbstractionSwComponentType(self, element: ET.Element, sw_component: EcuAbstractionSwComponentType):
|
|
1999
|
-
self.logger.debug("writeEcuAbstractionSwComponentType %s" % sw_component.
|
|
2060
|
+
self.logger.debug("writeEcuAbstractionSwComponentType %s" % sw_component.getShortName())
|
|
2000
2061
|
child_element = ET.SubElement(element, "ECU-ABSTRACTION-SW-COMPONENT-TYPE")
|
|
2001
2062
|
self.writeAtomicSwComponentType(child_element, sw_component)
|
|
2002
2063
|
|
|
@@ -2008,7 +2069,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2008
2069
|
self.setChildElementOptionalNumericalValue(child_element, "MAX-NUMBER-OF-ELEMENTS", prototype.maxNumberOfElements)
|
|
2009
2070
|
|
|
2010
2071
|
def writeApplicationArrayDataType(self, element: ET.Element, data_type: ApplicationArrayDataType):
|
|
2011
|
-
self.logger.debug("writeApplicationArrayDataType %s" % data_type.
|
|
2072
|
+
self.logger.debug("writeApplicationArrayDataType %s" % data_type.getShortName())
|
|
2012
2073
|
child_element = ET.SubElement(element, "APPLICATION-ARRAY-DATA-TYPE")
|
|
2013
2074
|
self.setApplicationCompositeDataType(child_element, data_type)
|
|
2014
2075
|
self.setApplicationArrayElement(child_element, data_type.element)
|
|
@@ -2037,13 +2098,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2037
2098
|
return group
|
|
2038
2099
|
|
|
2039
2100
|
def writeSwRecordLayout(self, element: ET.Element, layout: SwRecordLayout):
|
|
2040
|
-
self.logger.debug("writeSwRecordLayout %s" % layout.
|
|
2101
|
+
self.logger.debug("writeSwRecordLayout %s" % layout.getShortName())
|
|
2041
2102
|
child_element = ET.SubElement(element, "SW-RECORD-LAYOUT")
|
|
2042
2103
|
self.setIdentifiable(child_element, layout)
|
|
2043
2104
|
self.setSwRecordLayoutGroup(child_element, "SW-RECORD-LAYOUT-GROUP", layout.getSwRecordLayoutGroup())
|
|
2044
2105
|
|
|
2045
2106
|
def writeSwAddrMethod(self, element: ET.Element, method: SwAddrMethod):
|
|
2046
|
-
self.logger.debug("writeSwAddrMethod %s" % method.
|
|
2107
|
+
self.logger.debug("writeSwAddrMethod %s" % method.getShortName())
|
|
2047
2108
|
child_element = ET.SubElement(element, "SW-ADDR-METHOD")
|
|
2048
2109
|
self.setIdentifiable(child_element, method)
|
|
2049
2110
|
self.setChildElementOptionalLiteral(child_element, "MEMORY-ALLOCATION-KEYWORD-POLICY", method.getMemoryAllocationKeywordPolicy())
|
|
@@ -2056,11 +2117,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2056
2117
|
self.setChildElementOptionalLiteral(child_element, "SECTION-TYPE", method.getSectionType())
|
|
2057
2118
|
|
|
2058
2119
|
def writeTriggerInterface(self, element: ET.Element, trigger_if: TriggerInterface):
|
|
2059
|
-
self.logger.debug("writeTriggerInterface %s" % trigger_if.
|
|
2120
|
+
self.logger.debug("writeTriggerInterface %s" % trigger_if.getShortName())
|
|
2060
2121
|
child_element = ET.SubElement(element, "TRIGGER-INTERFACE")
|
|
2061
2122
|
|
|
2062
2123
|
def writeServiceSwComponentType(self, element: ET.Element, sw_component: ServiceSwComponentType):
|
|
2063
|
-
self.logger.debug("writeServiceSwComponentType %s" % sw_component.
|
|
2124
|
+
self.logger.debug("writeServiceSwComponentType %s" % sw_component.getShortName())
|
|
2064
2125
|
child_element = ET.SubElement(element, "SERVICE-SW-COMPONENT-TYPE")
|
|
2065
2126
|
self.writeAtomicSwComponentType(child_element, sw_component)
|
|
2066
2127
|
|
|
@@ -2085,7 +2146,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2085
2146
|
self.setChildElementOptionalRefType(child_element, "MODE-GROUP-REF", map.getModeGroupRef())
|
|
2086
2147
|
|
|
2087
2148
|
def writeDataTypeMappingSet(self, element: ET.Element, mapping_set: DataTypeMappingSet):
|
|
2088
|
-
self.logger.debug("writeDataTypeMappingSet %s" % mapping_set.
|
|
2149
|
+
self.logger.debug("writeDataTypeMappingSet %s" % mapping_set.getShortName())
|
|
2089
2150
|
child_element = ET.SubElement(element, "DATA-TYPE-MAPPING-SET")
|
|
2090
2151
|
self.setIdentifiable(child_element, mapping_set)
|
|
2091
2152
|
self.writeDataTypeMaps(child_element, mapping_set)
|
|
@@ -2104,7 +2165,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2104
2165
|
self.setModeDeclaration(child_element, mode_declaration)
|
|
2105
2166
|
|
|
2106
2167
|
def writeModeDeclarationGroup(self, element: ET.Element, group: ModeDeclarationGroup):
|
|
2107
|
-
self.logger.debug("writeModeDeclarationGroup %s" % group.
|
|
2168
|
+
self.logger.debug("writeModeDeclarationGroup %s" % group.getShortName())
|
|
2108
2169
|
child_element = ET.SubElement(element, "MODE-DECLARATION-GROUP")
|
|
2109
2170
|
self.setIdentifiable(child_element, group)
|
|
2110
2171
|
self.setChildElementOptionalRefType(child_element, "INITIAL-MODE-REF", group.initialModeRef)
|
|
@@ -2120,7 +2181,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2120
2181
|
self.setChildElementOptionalRefType(child_element, "TYPE-TREF", mode_group.type_tref)
|
|
2121
2182
|
|
|
2122
2183
|
def writeModeSwitchInterface(self, element: ET.Element, mode_interface: ModeSwitchInterface):
|
|
2123
|
-
self.logger.debug("writeModeSwitchInterface %s" % mode_interface.
|
|
2184
|
+
self.logger.debug("writeModeSwitchInterface %s" % mode_interface.getShortName())
|
|
2124
2185
|
child_element = ET.SubElement(element, "MODE-SWITCH-INTERFACE")
|
|
2125
2186
|
self.setPortInterface(child_element, mode_interface)
|
|
2126
2187
|
self.writeModeSwitchInterfaceModeGroup(child_element, mode_interface)
|
|
@@ -2147,7 +2208,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2147
2208
|
self._raiseError("Unsupported order element <%s>" % type(order_element))
|
|
2148
2209
|
|
|
2149
2210
|
def writeExecutionOrderConstraint(self, element: ET.Element, constraint: ExecutionOrderConstraint):
|
|
2150
|
-
self.logger.debug("writeExecutionOrderConstraint %s" % constraint.
|
|
2211
|
+
self.logger.debug("writeExecutionOrderConstraint %s" % constraint.getShortName())
|
|
2151
2212
|
child_element = ET.SubElement(element, "EXECUTION-ORDER-CONSTRAINT")
|
|
2152
2213
|
self.setIdentifiable(child_element, constraint)
|
|
2153
2214
|
self.writeExecutionOrderConstraintOrderedElement(child_element, constraint)
|
|
@@ -2166,7 +2227,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2166
2227
|
self.writeTimingRequirements(element, extension)
|
|
2167
2228
|
|
|
2168
2229
|
def writeSwcTiming(self, element: ET.Element, timing: SwcTiming):
|
|
2169
|
-
self.logger.debug("writeSWcTiming %s" % timing.
|
|
2230
|
+
self.logger.debug("writeSWcTiming %s" % timing.getShortName())
|
|
2170
2231
|
child_element = ET.SubElement(element, "SWC-TIMING")
|
|
2171
2232
|
self.setIdentifiable(child_element, timing)
|
|
2172
2233
|
self.writeTimingExtension(child_element, timing)
|
|
@@ -2188,7 +2249,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2188
2249
|
self.writePduToFrameMappings(element, frame)
|
|
2189
2250
|
|
|
2190
2251
|
def writeLinUnconditionalFrame(self, element: ET.Element, frame: LinUnconditionalFrame):
|
|
2191
|
-
self.logger.debug("LinUnconditionalFrame %s" % frame.
|
|
2252
|
+
self.logger.debug("LinUnconditionalFrame %s" % frame.getShortName())
|
|
2192
2253
|
child_element = ET.SubElement(element, "LIN-UNCONDITIONAL-FRAME")
|
|
2193
2254
|
self.writeFrame(child_element, frame)
|
|
2194
2255
|
|
|
@@ -2210,7 +2271,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2210
2271
|
self.setChildElementOptionalRefType(refs_tag, "TX-NM-PDU-REF", ref)
|
|
2211
2272
|
|
|
2212
2273
|
def writeCanNmNode(self, element: ET.Element, nm_node: CanNmNode):
|
|
2213
|
-
self.logger.debug("writeCanNmNode %s" % nm_node.
|
|
2274
|
+
self.logger.debug("writeCanNmNode %s" % nm_node.getShortName())
|
|
2214
2275
|
child_element = ET.SubElement(element, "CAN-NM-NODE")
|
|
2215
2276
|
self.setIdentifiable(child_element, nm_node)
|
|
2216
2277
|
self.writeNmNode(child_element, nm_node)
|
|
@@ -2259,7 +2320,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2259
2320
|
self.setChildElementOptionalBooleanValue(element, "NM-SYNCHRONIZING-NETWORK", cluster.getNmSynchronizingNetwork())
|
|
2260
2321
|
|
|
2261
2322
|
def writeCanNmCluster(self, element: ET.Element, cluster: CanNmCluster):
|
|
2262
|
-
self.logger.debug("WriteCanNmCluster %s" % cluster.
|
|
2323
|
+
self.logger.debug("WriteCanNmCluster %s" % cluster.getShortName())
|
|
2263
2324
|
child_element = ET.SubElement(element, "CAN-NM-CLUSTER")
|
|
2264
2325
|
self.setIdentifiable(child_element, cluster)
|
|
2265
2326
|
self.writeNmCluster(child_element, cluster)
|
|
@@ -2290,20 +2351,20 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2290
2351
|
self._raiseError("Unsupported Nm Cluster <%s>" % type(cluster))
|
|
2291
2352
|
|
|
2292
2353
|
def writeNmConfig(self, element: ET.Element, config: NmConfig):
|
|
2293
|
-
self.logger.debug("WriteNmConfig %s" % config.
|
|
2354
|
+
self.logger.debug("WriteNmConfig %s" % config.getShortName())
|
|
2294
2355
|
child_element = ET.SubElement(element, "NM-CONFIG")
|
|
2295
2356
|
self.setIdentifiable(child_element, config)
|
|
2296
2357
|
self.writeNmConfigNmClusters(child_element, config)
|
|
2297
2358
|
self.writeNmConfigNmClusterCouplings(child_element, config)
|
|
2298
2359
|
|
|
2299
2360
|
def writeNmPdu(self, element: ET.Element, pdu: NmPdu):
|
|
2300
|
-
self.logger.debug("NmPdu %s" % pdu.
|
|
2361
|
+
self.logger.debug("NmPdu %s" % pdu.getShortName())
|
|
2301
2362
|
child_element = ET.SubElement(element, "NM-PDU")
|
|
2302
2363
|
self.setIdentifiable(child_element, pdu)
|
|
2303
2364
|
self.writeIPdu(child_element, pdu)
|
|
2304
2365
|
|
|
2305
2366
|
def writeNPdu(self, element: ET.Element, pdu: NPdu):
|
|
2306
|
-
self.logger.debug("NPdu %s" % pdu.
|
|
2367
|
+
self.logger.debug("NPdu %s" % pdu.getShortName())
|
|
2307
2368
|
child_element = ET.SubElement(element, "N-PDU")
|
|
2308
2369
|
self.setIdentifiable(child_element, pdu)
|
|
2309
2370
|
self.writeIPdu(child_element, pdu)
|
|
@@ -2312,20 +2373,20 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2312
2373
|
self.setChildElementOptionalLiteral(element, "LENGTH", pdu.getLength())
|
|
2313
2374
|
|
|
2314
2375
|
def writeDcmIPdu(self, element: ET.Element, pdu: DcmIPdu):
|
|
2315
|
-
self.logger.debug("DcmIPdu %s" % pdu.
|
|
2376
|
+
self.logger.debug("DcmIPdu %s" % pdu.getShortName())
|
|
2316
2377
|
child_element = ET.SubElement(element, "DCM-I-PDU")
|
|
2317
2378
|
self.setIdentifiable(child_element, pdu)
|
|
2318
2379
|
self.writeIPdu(child_element, pdu)
|
|
2319
2380
|
self.setChildElementOptionalLiteral(child_element, "DIAG-PDU-TYPE", pdu.getDiagPduType())
|
|
2320
2381
|
|
|
2321
2382
|
def writeSecuredIPdu(self, element: ET.Element, pdu: DcmIPdu):
|
|
2322
|
-
self.logger.debug("SecuredIPdu %s" % pdu.
|
|
2383
|
+
self.logger.debug("SecuredIPdu %s" % pdu.getShortName())
|
|
2323
2384
|
child_element = ET.SubElement(element, "SECURED-I-PDU")
|
|
2324
2385
|
self.setIdentifiable(child_element, pdu)
|
|
2325
2386
|
self.writeIPdu(child_element, pdu)
|
|
2326
2387
|
|
|
2327
2388
|
def writeCanTpConfig(self, element: ET.Element, config: CanTpConfig):
|
|
2328
|
-
self.logger.debug("CanTpConfig %s" % config.
|
|
2389
|
+
self.logger.debug("CanTpConfig %s" % config.getShortName())
|
|
2329
2390
|
child_element = ET.SubElement(element, "CAN-TP-CONFIG")
|
|
2330
2391
|
self.setIdentifiable(child_element, config)
|
|
2331
2392
|
|
|
@@ -2432,13 +2493,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2432
2493
|
self.notImplemented("Unsupported PduTriggering <%s>" % type(triggering))
|
|
2433
2494
|
|
|
2434
2495
|
def writeCanPhysicalChannel(self, element: ET.Element, channel: CanPhysicalChannel):
|
|
2435
|
-
self.logger.debug("CanPhysicalChannel %s" % channel.
|
|
2496
|
+
self.logger.debug("CanPhysicalChannel %s" % channel.getShortName())
|
|
2436
2497
|
child_element = ET.SubElement(element, "CAN-PHYSICAL-CHANNEL")
|
|
2437
2498
|
self.setIdentifiable(child_element, channel)
|
|
2438
2499
|
self.writePhysicalChannel(child_element, channel)
|
|
2439
2500
|
|
|
2440
2501
|
def writeLinPhysicalChannel(self, element: ET.Element, channel: LinPhysicalChannel):
|
|
2441
|
-
self.logger.debug("LinPhysicalChannel %s" % channel.
|
|
2502
|
+
self.logger.debug("LinPhysicalChannel %s" % channel.getShortName())
|
|
2442
2503
|
child_element = ET.SubElement(element, "LIN-PHYSICAL-CHANNEL")
|
|
2443
2504
|
self.setIdentifiable(child_element, channel)
|
|
2444
2505
|
self.writePhysicalChannel(child_element, channel)
|
|
@@ -2466,7 +2527,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2466
2527
|
self.setChildElementOptionalNumericalValue(element, "SPEED", cluster.getSpeed())
|
|
2467
2528
|
|
|
2468
2529
|
def writeLinCluster(self, element: ET.Element, cluster: LinCluster):
|
|
2469
|
-
self.logger.debug("LinCluster %s" % cluster.
|
|
2530
|
+
self.logger.debug("LinCluster %s" % cluster.getShortName())
|
|
2470
2531
|
child_element = ET.SubElement(element, "LIN-CLUSTER")
|
|
2471
2532
|
self.setIdentifiable(child_element, cluster)
|
|
2472
2533
|
child_element = ET.SubElement(child_element, "LIN-CLUSTER-VARIANTS")
|
|
@@ -2474,7 +2535,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2474
2535
|
self.writeCommunicationCluster(child_element, cluster)
|
|
2475
2536
|
|
|
2476
2537
|
def writeCanCluster(self, element: ET.Element, cluster: CanCluster):
|
|
2477
|
-
self.logger.debug("CanCluster %s" % cluster.
|
|
2538
|
+
self.logger.debug("CanCluster %s" % cluster.getShortName())
|
|
2478
2539
|
child_element = ET.SubElement(element, "CAN-CLUSTER")
|
|
2479
2540
|
self.setIdentifiable(child_element, cluster)
|
|
2480
2541
|
|
|
@@ -2484,7 +2545,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2484
2545
|
self.readAbstractCanCluster(child_element, cluster)
|
|
2485
2546
|
|
|
2486
2547
|
def writeCanFrame(self, element: ET.Element, frame: CanFrame):
|
|
2487
|
-
self.logger.debug("Write CanFrame %s" % frame.
|
|
2548
|
+
self.logger.debug("Write CanFrame %s" % frame.getShortName())
|
|
2488
2549
|
child_element = ET.SubElement(element, "CAN-FRAME")
|
|
2489
2550
|
self.writeFrame(child_element, frame)
|
|
2490
2551
|
|
|
@@ -2556,7 +2617,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2556
2617
|
self._raiseError("Unsupported Communication connector <%s>" % type(connector))
|
|
2557
2618
|
|
|
2558
2619
|
def writeEcuInstance(self, element: ET.Element, instance: EcuInstance):
|
|
2559
|
-
self.logger.debug("EcuInstance %s" % instance.
|
|
2620
|
+
self.logger.debug("EcuInstance %s" % instance.getShortName())
|
|
2560
2621
|
child_element = ET.SubElement(element, "ECU-INSTANCE")
|
|
2561
2622
|
self.setIdentifiable(child_element, instance)
|
|
2562
2623
|
self.setChildElementOptionalTimeValue(child_element, "COM-CONFIGURATION-GW-TIME-BASE", instance.getComConfigurationGwTimeBase())
|
|
@@ -2569,7 +2630,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2569
2630
|
self.setChildElementOptionalBooleanValue(child_element, "WAKE-UP-OVER-BUS-SUPPORTED", instance.getWakeUpOverBusSupported())
|
|
2570
2631
|
|
|
2571
2632
|
def writeSystemSignalGroup(self, element: ET.Element, group: SystemSignalGroup):
|
|
2572
|
-
self.logger.debug("Write SystemSignalGroup %s" % group.
|
|
2633
|
+
self.logger.debug("Write SystemSignalGroup %s" % group.getShortName())
|
|
2573
2634
|
child_element = ET.SubElement(element, "SYSTEM-SIGNAL-GROUP")
|
|
2574
2635
|
self.setIdentifiable(child_element, group)
|
|
2575
2636
|
signal_refs = group.getSystemSignalRefs()
|
|
@@ -2580,6 +2641,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2580
2641
|
|
|
2581
2642
|
def setSenderReceiverToSignalMapping(self, element: ET.Element, mapping: SenderReceiverToSignalMapping):
|
|
2582
2643
|
child_element = ET.SubElement(element, "SENDER-RECEIVER-TO-SIGNAL-MAPPING")
|
|
2644
|
+
self.setChildElementOptionalLiteral(child_element, "COMMUNICATION-DIRECTION", mapping.getCommunicationDirection())
|
|
2583
2645
|
self.setVariableDataPrototypeInSystemInstanceRef(child_element, "DATA-ELEMENT-IREF", mapping.getDataElementIRef())
|
|
2584
2646
|
self.setChildElementOptionalRefType(child_element, "SYSTEM-SIGNAL-REF", mapping.getSystemSignalRef())
|
|
2585
2647
|
|
|
@@ -2621,7 +2683,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2621
2683
|
self.notImplemented("Unsupported Sw Mapping %s" % type(sw_mapping))
|
|
2622
2684
|
|
|
2623
2685
|
def writeSystemMapping(self, element: ET.Element, mapping: SystemMapping):
|
|
2624
|
-
self.logger.debug("Write SystemMapping %s" % mapping.
|
|
2686
|
+
self.logger.debug("Write SystemMapping %s" % mapping.getShortName())
|
|
2625
2687
|
child_element = ET.SubElement(element, "SYSTEM-MAPPING")
|
|
2626
2688
|
self.setIdentifiable(child_element, mapping)
|
|
2627
2689
|
self.writeSystemMappingDataMappings(child_element, mapping)
|
|
@@ -2644,10 +2706,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2644
2706
|
child_element = ET.SubElement(element, "ROOT-SOFTWARE-COMPOSITIONS")
|
|
2645
2707
|
child_element = ET.SubElement(child_element, "ROOT-SW-COMPOSITION-PROTOTYPE")
|
|
2646
2708
|
self.setIdentifiable(child_element, prototype)
|
|
2709
|
+
self.setChildElementOptionalRefType(child_element, "FLAT-MAP-REF", prototype.getFlatMapRef())
|
|
2647
2710
|
self.setChildElementOptionalRefType(child_element, "SOFTWARE-COMPOSITION-TREF", prototype.getSoftwareCompositionTRef())
|
|
2648
2711
|
|
|
2649
2712
|
def writeSystem(self, element: ET.Element, system: System):
|
|
2650
|
-
self.logger.debug("Write System %s" % system.
|
|
2713
|
+
self.logger.debug("Write System %s" % system.getShortName())
|
|
2651
2714
|
child_element = ET.SubElement(element, "SYSTEM")
|
|
2652
2715
|
self.setARElement(child_element, system)
|
|
2653
2716
|
|
|
@@ -2663,14 +2726,70 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2663
2726
|
self.writeRootSwCompositionPrototype(child_element, system)
|
|
2664
2727
|
self.setChildElementOptionalRevisionLabelString(child_element, "SYSTEM-VERSION", system.getSystemVersion())
|
|
2665
2728
|
|
|
2666
|
-
def
|
|
2667
|
-
self.logger.debug("
|
|
2729
|
+
def setPhysicalDimension(self, element: ET.Element, dimension: PhysicalDimension):
|
|
2730
|
+
self.logger.debug("Set PhysicalDimension %s" % dimension.getShortName())
|
|
2668
2731
|
child_element = ET.SubElement(element, "PHYSICAL-DIMENSION")
|
|
2669
2732
|
self.setARElement(child_element, dimension)
|
|
2670
2733
|
self.setChildElementOptionalNumericalValue(child_element, "CURRENT-EXP", dimension.getCurrentExp())
|
|
2671
2734
|
self.setChildElementOptionalNumericalValue(child_element, "LENGTH-EXP", dimension.getLengthExp())
|
|
2672
2735
|
self.setChildElementOptionalNumericalValue(child_element, "TIME-EXP", dimension.getTimeExp())
|
|
2673
2736
|
|
|
2737
|
+
def setFlatInstanceDescriptor(self, element: ET.Element, desc: FlatInstanceDescriptor):
|
|
2738
|
+
self.logger.debug("Set FlatInstanceDescriptor %s" % desc.getShortName())
|
|
2739
|
+
child_element = ET.SubElement(element, "FLAT-INSTANCE-DESCRIPTOR")
|
|
2740
|
+
self.setIdentifiable(child_element, desc)
|
|
2741
|
+
self.setAnyInstanceRef(child_element, "UPSTREAM-REFERENCE-IREF", desc.getUpstreamReferenceIRef())
|
|
2742
|
+
self.setAnyInstanceRef(child_element, "ECU-EXTRACT-REFERENCE-IREF", desc.getEcuExtractReferenceIRef())
|
|
2743
|
+
|
|
2744
|
+
def writeFlatMapInstances(self, element: ET.Element, map: FlatMap):
|
|
2745
|
+
instances = map.getInstances()
|
|
2746
|
+
if len(instances) > 0:
|
|
2747
|
+
child_element = ET.SubElement(element, "INSTANCES")
|
|
2748
|
+
for instance in instances:
|
|
2749
|
+
if isinstance(instance, FlatInstanceDescriptor):
|
|
2750
|
+
self.setFlatInstanceDescriptor(child_element, instance)
|
|
2751
|
+
else:
|
|
2752
|
+
self.notImplemented("Unsupported Flat Map Instances <%s>" % type(instance))
|
|
2753
|
+
|
|
2754
|
+
def setFlatMap(self, element: ET.Element, map: FlatMap):
|
|
2755
|
+
self.logger.debug("Set FlatMap %s" % map.getShortName())
|
|
2756
|
+
child_element = ET.SubElement(element, "FLAT-MAP")
|
|
2757
|
+
self.setARElement(child_element, map)
|
|
2758
|
+
self.writeFlatMapInstances(child_element, map)
|
|
2759
|
+
|
|
2760
|
+
def setDataPrototypeMapping(self, element: ET.Element, mapping: DataPrototypeMapping):
|
|
2761
|
+
child_element = ET.SubElement(element, "DATA-PROTOTYPE-MAPPING")
|
|
2762
|
+
self.setChildElementOptionalRefType(child_element, "FIRST-DATA-PROTOTYPE-REF", mapping.getFirstDataPrototypeRef())
|
|
2763
|
+
self.setChildElementOptionalRefType(child_element, "SECOND-DATA-PROTOTYPE-REF", mapping.getSecondDataPrototypeRef())
|
|
2764
|
+
|
|
2765
|
+
def setDataPrototypeMappings(self, element: ET.Element, key: str, mappings: List[DataPrototypeMapping]):
|
|
2766
|
+
if len(mappings) > 0:
|
|
2767
|
+
child_element = ET.SubElement(element, key)
|
|
2768
|
+
for mapping in mappings:
|
|
2769
|
+
self.setDataPrototypeMapping(child_element, mapping)
|
|
2770
|
+
|
|
2771
|
+
def setVariableAndParameterInterfaceMapping(self, element: ET.Element, mapping: VariableAndParameterInterfaceMapping):
|
|
2772
|
+
self.logger.debug("set VariableAndParameterInterfaceMapping %s" % mapping.getShortName())
|
|
2773
|
+
child_element = ET.SubElement(element, "VARIABLE-AND-PARAMETER-INTERFACE-MAPPING")
|
|
2774
|
+
self.setIdentifiable(child_element, mapping)
|
|
2775
|
+
self.setDataPrototypeMappings(child_element, "DATA-MAPPINGS", mapping.getDataMappings())
|
|
2776
|
+
|
|
2777
|
+
def writePortInterfaceMappings(self, element: ET.Element, mapping_set: PortInterfaceMappingSet):
|
|
2778
|
+
mappings = mapping_set.getPortInterfaceMappings()
|
|
2779
|
+
if len(mappings) > 0:
|
|
2780
|
+
child_element = ET.SubElement(element, "PORT-INTERFACE-MAPPINGS")
|
|
2781
|
+
for mapping in mappings:
|
|
2782
|
+
if isinstance(mapping, VariableAndParameterInterfaceMapping):
|
|
2783
|
+
self.setVariableAndParameterInterfaceMapping(child_element, mapping)
|
|
2784
|
+
else:
|
|
2785
|
+
self.notImplemented("Unsupported PortInterfaceMapping <%s>" % type(mapping))
|
|
2786
|
+
|
|
2787
|
+
def setPortInterfaceMappingSet(self, element: ET.Element, mapping_set: PortInterfaceMappingSet):
|
|
2788
|
+
self.logger.debug("Set PortInterfaceMappingSet %s" % mapping_set.getShortName())
|
|
2789
|
+
child_element = ET.SubElement(element, "PORT-INTERFACE-MAPPING-SET")
|
|
2790
|
+
self.setARElement(child_element, mapping_set)
|
|
2791
|
+
self.writePortInterfaceMappings(child_element, mapping_set)
|
|
2792
|
+
|
|
2674
2793
|
def setISignalMappings(self, element: ET.Element, mappings: List[ISignalMapping]):
|
|
2675
2794
|
if len(mappings) > 0:
|
|
2676
2795
|
mappings_tag = ET.SubElement(element, "SIGNAL-MAPPINGS")
|
|
@@ -2680,21 +2799,21 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2680
2799
|
self.setChildElementOptionalRefType(child_element, "TARGET-SIGNAL-REF", mapping.targetSignalRef)
|
|
2681
2800
|
|
|
2682
2801
|
def writeGateway(self, element: ET.Element, gateway: Gateway):
|
|
2683
|
-
self.logger.debug("Gateway %s" % gateway.
|
|
2802
|
+
self.logger.debug("Gateway %s" % gateway.getShortName())
|
|
2684
2803
|
child_element = ET.SubElement(element, "GATEWAY")
|
|
2685
2804
|
self.setIdentifiable(child_element, gateway)
|
|
2686
2805
|
self.setChildElementOptionalRefType(child_element, "ECU-REF", gateway.ecuRef)
|
|
2687
2806
|
self.setISignalMappings(child_element, gateway.getSignalMappings())
|
|
2688
2807
|
|
|
2689
2808
|
def writeISignal(self, element: ET.Element, signal: ISignal):
|
|
2690
|
-
self.logger.debug("ISignal %s" % signal.
|
|
2809
|
+
self.logger.debug("ISignal %s" % signal.getShortName())
|
|
2691
2810
|
child_element = ET.SubElement(element, "I-SIGNAL")
|
|
2692
2811
|
self.setIdentifiable(child_element, signal)
|
|
2693
|
-
self.setChildElementOptionalLiteral(child_element, "DATA-TYPE-POLICY", signal.
|
|
2694
|
-
self.
|
|
2695
|
-
self.setChildElementOptionalNumericalValue(child_element, "LENGTH", signal.
|
|
2696
|
-
self.setSwDataDefProps(child_element, "NETWORK-REPRESENTATION-PROPS", signal.
|
|
2697
|
-
self.setChildElementOptionalRefType(child_element, "SYSTEM-SIGNAL-REF", signal.
|
|
2812
|
+
self.setChildElementOptionalLiteral(child_element, "DATA-TYPE-POLICY", signal.getDataTypePolicy())
|
|
2813
|
+
self.setValueSpecification(element, "INIT-VALUE", signal.getInitValue())
|
|
2814
|
+
self.setChildElementOptionalNumericalValue(child_element, "LENGTH", signal.getLength())
|
|
2815
|
+
self.setSwDataDefProps(child_element, "NETWORK-REPRESENTATION-PROPS", signal.getNetworkRepresentationProps())
|
|
2816
|
+
self.setChildElementOptionalRefType(child_element, "SYSTEM-SIGNAL-REF", signal.getSystemSignalRef())
|
|
2698
2817
|
|
|
2699
2818
|
def writeEcucValueCollectionEcucValues(self, element: ET.Element, collection: EcucValueCollection):
|
|
2700
2819
|
value_refs = collection.getEcucValueRefs()
|
|
@@ -2705,7 +2824,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2705
2824
|
self.setChildElementOptionalRefType(child_element, "ECUC-MODULE-CONFIGURATION-VALUES-REF", value_ref)
|
|
2706
2825
|
|
|
2707
2826
|
def writeEcucValueCollection(self, element: ET.Element, collection: EcucValueCollection):
|
|
2708
|
-
self.logger.debug("EcucValueCollection %s" % collection.
|
|
2827
|
+
self.logger.debug("EcucValueCollection %s" % collection.getShortName())
|
|
2709
2828
|
child_element = ET.SubElement(element, "ECUC-VALUE-COLLECTION")
|
|
2710
2829
|
self.setIdentifiable(child_element, collection)
|
|
2711
2830
|
self.setChildElementOptionalRefType(child_element, "ECU-EXTRACT-REF", collection.getEcuExtractRef())
|
|
@@ -2761,7 +2880,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2761
2880
|
if instance_ref is not None:
|
|
2762
2881
|
child_element = ET.SubElement(element, key)
|
|
2763
2882
|
self.setChildElementOptionalRefType(child_element, "BASE-REF", instance_ref.getBaseRef())
|
|
2764
|
-
|
|
2883
|
+
for ref in instance_ref.getContextElementRefs():
|
|
2884
|
+
self.setChildElementOptionalRefType(child_element, "CONTEXT-ELEMENT-REF", ref)
|
|
2765
2885
|
self.setChildElementOptionalRefType(child_element, "TARGET-REF", instance_ref.getTargetRef())
|
|
2766
2886
|
return instance_ref
|
|
2767
2887
|
|
|
@@ -2784,7 +2904,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2784
2904
|
self.notImplemented("Unsupported EcucParameterValue <%s>" % type(reference_value))
|
|
2785
2905
|
|
|
2786
2906
|
def writeEcucContainValue(self, element: ET.Element, container_value: EcucContainerValue):
|
|
2787
|
-
self.logger.debug("EcucContainerValue %s" % container_value.
|
|
2907
|
+
self.logger.debug("EcucContainerValue %s" % container_value.getShortName())
|
|
2788
2908
|
child_element = ET.SubElement(element, "ECUC-CONTAINER-VALUE")
|
|
2789
2909
|
self.setIdentifiable(child_element, container_value)
|
|
2790
2910
|
self.setChildElementOptionalRefType(child_element, "DEFINITION-REF", container_value.getDefinitionRef())
|
|
@@ -2803,7 +2923,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2803
2923
|
self.notImplemented("Unsupported Container %s" % type(container))
|
|
2804
2924
|
|
|
2805
2925
|
def writeEcucModuleConfigurationValues(self, element: ET.Element, values: EcucModuleConfigurationValues):
|
|
2806
|
-
self.logger.debug("EcucModuleConfigurationValues %s" % values.
|
|
2926
|
+
self.logger.debug("EcucModuleConfigurationValues %s" % values.getShortName())
|
|
2807
2927
|
child_element = ET.SubElement(element, "ECUC-MODULE-CONFIGURATION-VALUES")
|
|
2808
2928
|
self.setIdentifiable(child_element, values)
|
|
2809
2929
|
self.setChildElementOptionalRefType(child_element, "DEFINITION-REF", values.getDefinitionRef())
|
|
@@ -2812,7 +2932,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2812
2932
|
self.writeEcucModuleConfigurationValuesContainers(child_element, values)
|
|
2813
2933
|
|
|
2814
2934
|
def writeISignalGroup(self, element: ET.Element, group: ISignalGroup):
|
|
2815
|
-
self.logger.debug("ISignalGroup %s" % group.
|
|
2935
|
+
self.logger.debug("ISignalGroup %s" % group.getShortName())
|
|
2816
2936
|
child_element = ET.SubElement(element, "I-SIGNAL-GROUP")
|
|
2817
2937
|
self.setIdentifiable(child_element, group)
|
|
2818
2938
|
signal_refs = group.getISignalRefs()
|
|
@@ -2823,7 +2943,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2823
2943
|
self.setChildElementOptionalRefType(child_element, "SYSTEM-SIGNAL-GROUP-REF", group.getSystemSignalGroupRef())
|
|
2824
2944
|
|
|
2825
2945
|
def writeISignalIPduGroup(self, element: ET.Element, group: ISignalIPduGroup):
|
|
2826
|
-
self.logger.debug("ISignalIPduGroup %s" % group.
|
|
2946
|
+
self.logger.debug("ISignalIPduGroup %s" % group.getShortName())
|
|
2827
2947
|
child_element = ET.SubElement(element, "I-SIGNAL-I-PDU-GROUP")
|
|
2828
2948
|
self.setIdentifiable(child_element, group)
|
|
2829
2949
|
self.setChildElementOptionalLiteral(child_element, "COMMUNICATION-DIRECTION", group.getCommunicationDirection())
|
|
@@ -2841,7 +2961,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2841
2961
|
self.setChildElementOptionalRefType(ref_conditional_tag, "I-SIGNAL-I-PDU-REF", pdu_ref)
|
|
2842
2962
|
|
|
2843
2963
|
def writeSystemSignal(self, element: ET.Element, signal: SystemSignal):
|
|
2844
|
-
self.logger.debug("SystemSignal %s" % signal.
|
|
2964
|
+
self.logger.debug("SystemSignal %s" % signal.getShortName())
|
|
2845
2965
|
child_element = ET.SubElement(element, "SYSTEM-SIGNAL")
|
|
2846
2966
|
self.setIdentifiable(child_element, signal)
|
|
2847
2967
|
self.setChildElementOptionalBooleanValue(child_element, "DYNAMIC-LENGTH", signal.getDynamicLength())
|
|
@@ -2849,12 +2969,12 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2849
2969
|
|
|
2850
2970
|
|
|
2851
2971
|
def writeGenericEthernetFrame(self, element: ET.Element, signal: GenericEthernetFrame):
|
|
2852
|
-
self.logger.debug("Write GenericEthernetFrame %s" % signal.
|
|
2972
|
+
self.logger.debug("Write GenericEthernetFrame %s" % signal.getShortName())
|
|
2853
2973
|
child_element = ET.SubElement(element, "ETHERNET-FRAME")
|
|
2854
2974
|
self.writeFrame(child_element, signal)
|
|
2855
2975
|
|
|
2856
2976
|
def writeLifeCycleInfoSet(self, element: ET.Element, set: LifeCycleInfoSet):
|
|
2857
|
-
self.logger.debug("Write LifeCycleInfoSet %s" % set.
|
|
2977
|
+
self.logger.debug("Write LifeCycleInfoSet %s" % set.getShortName())
|
|
2858
2978
|
child_element = ET.SubElement(element, "LIFE-CYCLE-INFO-SET")
|
|
2859
2979
|
self.setIdentifiable(child_element, set)
|
|
2860
2980
|
|
|
@@ -2873,8 +2993,9 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2873
2993
|
self.setChildElementOptionalNumericalValue(child_element, "UPDATE-INDICATION-BIT-POSITION", mapping.getUpdateIndicationBitPosition())
|
|
2874
2994
|
|
|
2875
2995
|
def setDataFilter(self, element: ET.Element, key: str, filter: DataFilter):
|
|
2876
|
-
|
|
2877
|
-
|
|
2996
|
+
if filter is not None:
|
|
2997
|
+
child_element = ET.SubElement(element, key)
|
|
2998
|
+
self.setChildElementOptionalLiteral(child_element, "DATA-FILTER-TYPE", filter.getDataFilterType())
|
|
2878
2999
|
|
|
2879
3000
|
def setTransmissionModeConditions(self, element: ET.Element, conditions: List[TransmissionModeCondition]):
|
|
2880
3001
|
if len(conditions) > 0:
|
|
@@ -2915,7 +3036,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2915
3036
|
self.setTransmissionModeDeclaration(child_element, "TRANSMISSION-MODE-DECLARATION", timing.getTransmissionModeDeclaration())
|
|
2916
3037
|
|
|
2917
3038
|
def writeISignalIPdu(self, element: ET.Element, i_pdu: ISignalIPdu):
|
|
2918
|
-
self.logger.debug("ISignalIPdu %s" % i_pdu.
|
|
3039
|
+
self.logger.debug("ISignalIPdu %s" % i_pdu.getShortName())
|
|
2919
3040
|
child_element = ET.SubElement(element, "I-SIGNAL-I-PDU")
|
|
2920
3041
|
self.setIdentifiable(child_element, i_pdu)
|
|
2921
3042
|
self.setChildElementOptionalNumericalValue(child_element, "LENGTH", i_pdu.getLength())
|
|
@@ -2931,13 +3052,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2931
3052
|
elif isinstance(ar_element, CompositionSwComponentType):
|
|
2932
3053
|
self.writeCompositionSwComponentType(element, ar_element)
|
|
2933
3054
|
elif isinstance(ar_element, ApplicationPrimitiveDataType):
|
|
2934
|
-
self.
|
|
3055
|
+
self.setApplicationPrimitiveDataType(element, ar_element)
|
|
2935
3056
|
elif isinstance(ar_element, ApplicationRecordDataType):
|
|
2936
|
-
self.
|
|
3057
|
+
self.setApplicationRecordDataType(element, ar_element)
|
|
2937
3058
|
elif isinstance(ar_element, SwBaseType):
|
|
2938
|
-
self.
|
|
3059
|
+
self.setSwBaseType(element, ar_element)
|
|
2939
3060
|
elif isinstance(ar_element, CompuMethod):
|
|
2940
|
-
self.
|
|
3061
|
+
self.setCompuMethod(element, ar_element)
|
|
2941
3062
|
elif isinstance(ar_element, ConstantSpecification):
|
|
2942
3063
|
self.writeConstantSpecification(element, ar_element)
|
|
2943
3064
|
elif isinstance(ar_element, DataConstr):
|
|
@@ -3021,7 +3142,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3021
3142
|
elif isinstance(ar_element, LifeCycleInfoSet):
|
|
3022
3143
|
self.writeLifeCycleInfoSet(element, ar_element)
|
|
3023
3144
|
elif isinstance(ar_element, PhysicalDimension):
|
|
3024
|
-
self.
|
|
3145
|
+
self.setPhysicalDimension(element, ar_element)
|
|
3146
|
+
elif isinstance(ar_element, FlatMap):
|
|
3147
|
+
self.setFlatMap(element, ar_element)
|
|
3148
|
+
elif isinstance(ar_element, PortInterfaceMappingSet):
|
|
3149
|
+
self.setPortInterfaceMappingSet(element, ar_element)
|
|
3025
3150
|
else:
|
|
3026
3151
|
self.notImplemented("Unsupported Elements of ARPackage <%s>" % type(ar_element))
|
|
3027
3152
|
|