armodel 1.7.8__py3-none-any.whl → 1.8.0__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_format_cli.py +1 -0
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +71 -11
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +102 -12
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +80 -9
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +17 -10
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +10 -8
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +30 -28
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +7 -5
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +38 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +96 -18
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +73 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +45 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +27 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +33 -4
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +73 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +40 -14
- armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +151 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +4 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +55 -12
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +80 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +11 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +34 -10
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +11 -10
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +18 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +8 -2
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +35 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +25 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +83 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +84 -32
- armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +10 -1
- armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +163 -0
- armodel/models/M2/MSR/Documentation/BlockElements/__init__.py +0 -0
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +5 -3
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +22 -1
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +94 -9
- armodel/models/__init__.py +4 -0
- armodel/models/utils/__init__.py +0 -0
- armodel/models/utils/uuid_mgr.py +23 -0
- armodel/parser/abstract_arxml_parser.py +10 -2
- armodel/parser/arxml_parser.py +332 -104
- armodel/tests/test_armodel/models/test_datatype.py +136 -138
- armodel/tests/test_armodel/parser/test_sw_components.py +266 -4
- armodel/writer/arxml_writer.py +337 -74
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/METADATA +35 -1
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/RECORD +51 -40
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/LICENSE +0 -0
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/WHEEL +0 -0
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/top_level.txt +0 -0
armodel/writer/arxml_writer.py
CHANGED
|
@@ -17,21 +17,25 @@ from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, SwP
|
|
|
17
17
|
from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayout, SwRecordLayoutGroup, SwRecordLayoutV
|
|
18
18
|
from ..models.M2.MSR.DataDictionary.ServiceProcessTask import SwServiceArg
|
|
19
19
|
from ..models.M2.MSR.Documentation.Annotation import Annotation
|
|
20
|
+
from ..models.M2.MSR.Documentation.BlockElements.Figure import Graphic, MlFigure
|
|
21
|
+
from ..models.M2.MSR.Documentation.TextModel.BlockElements.PaginationAndView import DocumentViewSelectable, Paginateable
|
|
20
22
|
from ..models.M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
|
|
21
|
-
from ..models.M2.MSR.Documentation.TextModel.BlockElements.ListElements import
|
|
23
|
+
from ..models.M2.MSR.Documentation.TextModel.BlockElements.ListElements import ARList
|
|
22
24
|
from ..models.M2.MSR.Documentation.TextModel.LanguageDataModel import LLongName, LPlainText, LanguageSpecific
|
|
23
25
|
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph, MultiLanguageParagraph, MultiLanguagePlainText
|
|
24
26
|
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
|
|
25
27
|
|
|
26
28
|
from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
27
|
-
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswApiOptions,
|
|
29
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswApiOptions, BswAsynchronousServerCallPoint, BswBackgroundEvent
|
|
30
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswCalledEntity, BswDataReceivedEvent, BswModuleCallPoint
|
|
31
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalTriggerOccurredEvent, BswOperationInvokedEvent
|
|
28
32
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswDataReceptionPolicy, BswEvent, BswExternalTriggerOccurredEvent
|
|
29
33
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalBehavior, BswInterruptEntity, BswModeSenderPolicy, BswModuleEntity
|
|
30
34
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswQueuedDataReceptionPolicy, BswSchedulableEntity, BswScheduleEvent
|
|
31
|
-
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswTimingEvent, BswVariableAccess
|
|
35
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswTimingEvent, BswVariableAccess, BswInternalTriggeringPoint
|
|
32
36
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
33
37
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
|
|
34
|
-
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
|
|
38
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleClientServerEntry, BswModuleEntry
|
|
35
39
|
from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference
|
|
36
40
|
from ..models.M2.AUTOSARTemplates.CommonStructure import ConstantSpecification, NumericalValueSpecification, RecordValueSpecification
|
|
37
41
|
from ..models.M2.AUTOSARTemplates.CommonStructure import TextValueSpecification, ValueSpecification
|
|
@@ -45,11 +49,14 @@ from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDec
|
|
|
45
49
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import ResourceConsumption
|
|
46
50
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.StackUsage import RoughEstimateStackUsage, StackUsage
|
|
47
51
|
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping, SwcBswRunnableMapping
|
|
48
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagEventDebounceMonitorInternal
|
|
52
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagEventDebounceMonitorInternal, DltUserNeeds, ServiceNeeds
|
|
53
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticCapabilityElement, DtcStatusChangeNotificationNeeds
|
|
49
54
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticCommunicationManagerNeeds, DiagnosticEventInfoNeeds
|
|
50
55
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds
|
|
51
56
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import EcuStateMgrUserNeeds, NvBlockNeeds, RoleBasedDataAssignment
|
|
52
57
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import RoleBasedDataTypeAssignment, ServiceDependency
|
|
58
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.Keyword import KeywordSet, Keyword
|
|
59
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.BlueprintDedicated.PortPrototypeBlueprint import PortPrototypeBlueprint
|
|
53
60
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming, TimingExtension
|
|
54
61
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import EOCExecutableEntityRef
|
|
55
62
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import ExecutionOrderConstraint
|
|
@@ -61,12 +68,13 @@ from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucReferenceVa
|
|
|
61
68
|
from ..models.M2.AUTOSARTemplates.EcuResourceTemplate import HwDescriptionEntity, HwElement, HwPinGroup
|
|
62
69
|
from ..models.M2.AUTOSARTemplates.EcuResourceTemplate.HwElementCategory import HwAttributeDef, HwCategory, HwType
|
|
63
70
|
from ..models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
|
|
71
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ElementCollection import Collection
|
|
64
72
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage, ReferenceBase
|
|
65
73
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
|
|
66
74
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Describable, Identifiable
|
|
67
75
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Referrable, MultilanguageReferrable
|
|
68
76
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARLiteral, Limit
|
|
69
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
|
|
77
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfo, LifeCycleInfoSet, LifeCyclePeriod
|
|
70
78
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import CompositeNetworkRepresentation, ModeSwitchedAckRequest
|
|
71
79
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import TransmissionAcknowledgementRequest
|
|
72
80
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec
|
|
@@ -99,6 +107,7 @@ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import
|
|
|
99
107
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionVariablePrototype
|
|
100
108
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
|
|
101
109
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ArgumentDataPrototype, ClientServerInterface
|
|
110
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerInterfaceMapping, ClientServerOperationMapping
|
|
102
111
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerOperation, DataInterface
|
|
103
112
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import DataPrototypeMapping, ModeSwitchInterface, ParameterInterface
|
|
104
113
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import PortInterface, PortInterfaceMappingSet, SenderReceiverInterface
|
|
@@ -312,7 +321,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
312
321
|
self.setAnnotations(element, identifiable.getAnnotations())
|
|
313
322
|
self.setMultiLanguageOverviewParagraph(element, "DESC", identifiable.getDesc())
|
|
314
323
|
self.setChildElementOptionalLiteral(element, "CATEGORY", identifiable.getCategory())
|
|
315
|
-
self.
|
|
324
|
+
self.writeDocumentationBlock(element, "INTRODUCTION", identifiable.getIntroduction())
|
|
316
325
|
self.setAdminData(element, identifiable.getAdminData())
|
|
317
326
|
|
|
318
327
|
def writeARElement(self, parent: ET.Element, ar_element: ARElement):
|
|
@@ -735,27 +744,57 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
735
744
|
self.writeLParagraphs(child_element, paragraph)
|
|
736
745
|
return paragraphs
|
|
737
746
|
|
|
738
|
-
def setListElement(self, element: ET.Element, key: str, list:
|
|
747
|
+
def setListElement(self, element: ET.Element, key: str, list: ARList):
|
|
739
748
|
if list is not None:
|
|
740
749
|
child_element = ET.SubElement(element, key)
|
|
741
750
|
type = list.getType()
|
|
742
751
|
if type is not None:
|
|
743
752
|
child_element.attrib['TYPE'] = type
|
|
744
753
|
for item in list.getItems():
|
|
745
|
-
self.
|
|
754
|
+
self.writeDocumentationBlock(child_element, "ITEM", item)
|
|
746
755
|
|
|
747
|
-
def
|
|
756
|
+
def setGraphic(self, element: ET.Element, key: str, graphic: Graphic):
|
|
757
|
+
if graphic is not None:
|
|
758
|
+
child_element = ET.SubElement(element, key)
|
|
759
|
+
if graphic.getFilename() is not None:
|
|
760
|
+
child_element.attrib["FILENAME"] = graphic.getFilename()
|
|
761
|
+
|
|
762
|
+
def writeMlFigureLGraphics(self, element: ET.Element, figure: MlFigure):
|
|
763
|
+
graphics = figure.getLGraphics()
|
|
764
|
+
for graphic in graphics:
|
|
765
|
+
child_element = ET.SubElement(element, "L-GRAPHIC")
|
|
766
|
+
if graphic.getL() is not None:
|
|
767
|
+
child_element.attrib["L"] = graphic.getL()
|
|
768
|
+
self.setGraphic(child_element, "GRAPHIC", graphic.getGraphic())
|
|
769
|
+
|
|
770
|
+
def writeDocumentViewSelectable(self, element: ET.Element, selectable: DocumentViewSelectable):
|
|
771
|
+
self.writeARObjectAttributes(element, selectable)
|
|
772
|
+
|
|
773
|
+
def writePaginateable(self, element: ET.Element, paginateable: Paginateable):
|
|
774
|
+
self.writeDocumentViewSelectable(element, paginateable)
|
|
775
|
+
|
|
776
|
+
def writeMlFigure(self, element: ET.Element, figure: MlFigure):
|
|
777
|
+
self.writePaginateable(element, figure)
|
|
778
|
+
self.writeMlFigureLGraphics(element, figure)
|
|
779
|
+
|
|
780
|
+
def setMlFigures(self, element: ET.Element, key: str, figures: List[MlFigure]):
|
|
781
|
+
for figure in figures:
|
|
782
|
+
child_element = ET.SubElement(element, key)
|
|
783
|
+
self.writeMlFigure(child_element, figure)
|
|
784
|
+
|
|
785
|
+
def writeDocumentationBlock(self, element: ET.Element, key: str, block: DocumentationBlock):
|
|
748
786
|
if block is not None:
|
|
749
787
|
child_element = ET.SubElement(element, key)
|
|
750
788
|
self.writeARObjectAttributes(child_element, block)
|
|
751
789
|
self.setMultiLanguageParagraphs(child_element, "P", block.getPs())
|
|
752
790
|
for list in block.getLists():
|
|
753
791
|
self.setListElement(child_element, "LIST", list)
|
|
792
|
+
self.setMlFigures(child_element, "FIGURE", block.getFigures())
|
|
754
793
|
|
|
755
794
|
def writeGeneralAnnotation(self, element: ET.Element, annotation: Annotation):
|
|
756
795
|
self.setMultiLongName(element, "LABEL", annotation.getLabel())
|
|
757
796
|
self.setChildElementOptionalLiteral(element, "ANNOTATION-ORIGIN", annotation.getAnnotationOrigin())
|
|
758
|
-
self.
|
|
797
|
+
self.writeDocumentationBlock(element, "ANNOTATION-TEXT", annotation.getAnnotationText())
|
|
759
798
|
|
|
760
799
|
def setAnnotations(self, element: ET.Element, annotations: List[Annotation]):
|
|
761
800
|
if len(annotations) > 0:
|
|
@@ -813,11 +852,11 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
813
852
|
self.writeARObjectAttributes(conditional_tag, props.conditional)
|
|
814
853
|
self.setAnnotations(conditional_tag, props.getAnnotations())
|
|
815
854
|
self.setChildElementOptionalRefType(conditional_tag, "BASE-TYPE-REF", props.getBaseTypeRef())
|
|
855
|
+
self.setChildElementOptionalRefType(conditional_tag, "SW-ADDR-METHOD-REF", props.getSwAddrMethodRef())
|
|
816
856
|
self.setChildElementOptionalLiteral(conditional_tag, "SW-CALIBRATION-ACCESS", props.getSwCalibrationAccess())
|
|
817
857
|
self.setChildElementOptionalRefType(conditional_tag, "COMPU-METHOD-REF", props.getCompuMethodRef())
|
|
818
858
|
self.setValueSpecification(conditional_tag, "INVALID-VALUE", props.getInvalidValue())
|
|
819
859
|
self.setChildElementOptionalFloatValue(conditional_tag, "STEP-SIZE", props.getStepSize())
|
|
820
|
-
self.setChildElementOptionalRefType(conditional_tag, "SW-ADDR-METHOD-REF", props.getSwAddrMethodRef())
|
|
821
860
|
self.setChildElementOptionalRefType(conditional_tag, "DATA-CONSTR-REF", props.getDataConstrRef())
|
|
822
861
|
self.setChildElementOptionalRefType(conditional_tag, "IMPLEMENTATION-DATA-TYPE-REF", props.getImplementationDataTypeRef())
|
|
823
862
|
self.setSwCalprmAxisSet(conditional_tag, "SW-CALPRM-AXIS-SET", props.getSwCalprmAxisSet())
|
|
@@ -1538,10 +1577,13 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1538
1577
|
else:
|
|
1539
1578
|
self.notImplemented("Unsupported Assigned Data <%s>" % type(data))
|
|
1540
1579
|
|
|
1541
|
-
def
|
|
1580
|
+
def writeServiceNeeds(self, element: ET.Element, needs: ServiceNeeds):
|
|
1581
|
+
self.writeIdentifiable(element, needs)
|
|
1582
|
+
|
|
1583
|
+
def writeNvBlockNeeds(self, element: ET.Element, needs: NvBlockNeeds):
|
|
1542
1584
|
child_element = ET.SubElement(element, "NV-BLOCK-NEEDS")
|
|
1543
1585
|
self.logger.debug("write NvBlockNeeds %s" % needs.getShortName())
|
|
1544
|
-
self.
|
|
1586
|
+
self.writeServiceNeeds(child_element, needs)
|
|
1545
1587
|
self.setChildElementOptionalBooleanValue(child_element, "CALC-RAM-BLOCK-CRC", needs.getCalcRamBlockCrc())
|
|
1546
1588
|
self.setChildElementOptionalBooleanValue(child_element, "CHECK-STATIC-BLOCK-ID", needs.getCheckStaticBlockId())
|
|
1547
1589
|
self.setChildElementOptionalNumericalValue(child_element, "N-DATA-SETS", needs.getNDataSets())
|
|
@@ -1562,23 +1604,26 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1562
1604
|
self.setChildElementOptionalPositiveInteger(child_element, "WRITING-FREQUENCY", needs.getWritingFrequency())
|
|
1563
1605
|
self.setChildElementOptionalLiteral(child_element, "WRITING-PRIORITY", needs.getWritingPriority())
|
|
1564
1606
|
|
|
1565
|
-
def
|
|
1607
|
+
def writeDiagnosticCapabilityElement(self, element: ET.Element, needs: DiagnosticCapabilityElement):
|
|
1608
|
+
self.writeServiceNeeds(element, needs)
|
|
1609
|
+
|
|
1610
|
+
def writeDiagnosticCommunicationManagerNeeds(self, element: ET.Element, needs: DiagnosticCommunicationManagerNeeds):
|
|
1566
1611
|
child_element = ET.SubElement(element, "DIAGNOSTIC-COMMUNICATION-MANAGER-NEEDS")
|
|
1567
1612
|
self.logger.debug("write DiagnosticCommunicationManagerNeeds %s" % needs.getShortName())
|
|
1568
|
-
self.
|
|
1613
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1569
1614
|
self.setChildElementOptionalLiteral(child_element, "SERVICE-REQUEST-CALLBACK-TYPE", needs.getServiceRequestCallbackType())
|
|
1570
1615
|
|
|
1571
|
-
def
|
|
1616
|
+
def writeDiagnosticRoutineNeeds(self, element: ET.Element, needs: DiagnosticRoutineNeeds):
|
|
1572
1617
|
child_element = ET.SubElement(element, "DIAGNOSTIC-ROUTINE-NEEDS")
|
|
1573
1618
|
self.logger.debug("write DiagnosticRoutineNeeds %s" % needs.getShortName())
|
|
1574
|
-
self.
|
|
1619
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1575
1620
|
self.setChildElementOptionalLiteral(child_element, "DIAG-ROUTINE-TYPE", needs.getDiagRoutineType())
|
|
1576
1621
|
self.setChildElementOptionalIntegerValue(child_element, "RID-NUMBER", needs.getRidNumber())
|
|
1577
1622
|
|
|
1578
|
-
def
|
|
1623
|
+
def writeDiagnosticValueNeeds(self, element: ET.Element, needs: DiagnosticValueNeeds):
|
|
1579
1624
|
child_element = ET.SubElement(element, "DIAGNOSTIC-VALUE-NEEDS")
|
|
1580
1625
|
self.logger.debug("write DiagnosticValueNeeds %s" % needs.getShortName())
|
|
1581
|
-
self.
|
|
1626
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1582
1627
|
self.setChildElementOptionalPositiveInteger(child_element, "DATA-LENGTH", needs.getDataLength())
|
|
1583
1628
|
self.setChildElementOptionalLiteral(child_element, "DIAGNOSTIC-VALUE-ACCESS", needs.getDiagnosticValueAccess())
|
|
1584
1629
|
self.setChildElementOptionalIntegerValue(child_element, "DID-NUMBER", needs.getDidNumber())
|
|
@@ -1587,7 +1632,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1587
1632
|
|
|
1588
1633
|
def setDiagEventDebounceMonitorInternal(self, element: ET.Element, algorithm: DiagEventDebounceMonitorInternal):
|
|
1589
1634
|
child_element = ET.SubElement(element, "DIAG-EVENT-DEBOUNCE-MONITOR-INTERNAL")
|
|
1590
|
-
self.
|
|
1635
|
+
self.writeDiagnosticCapabilityElement(child_element, algorithm)
|
|
1591
1636
|
|
|
1592
1637
|
def writeDiagEventDebounceAlgorithm(self, element: ET.Element, needs: DiagnosticEventNeeds):
|
|
1593
1638
|
algorithm = needs.getDiagEventDebounceAlgorithm()
|
|
@@ -1598,54 +1643,70 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1598
1643
|
else:
|
|
1599
1644
|
self.notImplemented("Unsupported DiagEventDebounceAlgorithm <%s>" % type(algorithm))
|
|
1600
1645
|
|
|
1601
|
-
def
|
|
1646
|
+
def writeDiagnosticEventNeeds(self, element: ET.Element, needs: DiagnosticEventNeeds):
|
|
1647
|
+
# self.logger.debug("Write DiagnosticEventNeeds %s" % needs.getShortName())
|
|
1602
1648
|
child_element = ET.SubElement(element, "DIAGNOSTIC-EVENT-NEEDS")
|
|
1603
|
-
self.
|
|
1604
|
-
self.writeIdentifiable(child_element, needs)
|
|
1649
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1605
1650
|
self.writeDiagEventDebounceAlgorithm(child_element, needs)
|
|
1606
1651
|
self.setChildElementOptionalLiteral(child_element, "DTC-KIND", needs.getDtcKind())
|
|
1607
1652
|
self.setChildElementOptionalIntegerValue(child_element, "UDS-DTC-NUMBER", needs.getUdsDtcNumber())
|
|
1608
1653
|
|
|
1609
|
-
def
|
|
1654
|
+
def writeDiagnosticEventInfoNeeds(self, element: ET.Element, needs: DiagnosticEventInfoNeeds):
|
|
1655
|
+
# self.logger.debug("Write DiagnosticEventNeeds %s" % needs.getShortName())
|
|
1610
1656
|
child_element = ET.SubElement(element, "DIAGNOSTIC-EVENT-INFO-NEEDS")
|
|
1611
|
-
self.
|
|
1612
|
-
self.
|
|
1657
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1658
|
+
self.setChildElementOptionalLiteral(child_element, "DTC-KIND", needs.getDtcKind())
|
|
1613
1659
|
self.setChildElementOptionalPositiveInteger(child_element, "UDS-DTC-NUMBER", needs.getUdsDtcNumber())
|
|
1614
1660
|
|
|
1615
|
-
def
|
|
1661
|
+
def writeCryptoServiceNeeds(self, element: ET.Element, needs: CryptoServiceNeeds):
|
|
1662
|
+
# self.logger.debug("Write CryptoServiceNeeds %s" % needs.getShortName())
|
|
1616
1663
|
child_element = ET.SubElement(element, "CRYPTO-SERVICE-NEEDS")
|
|
1617
|
-
self.
|
|
1618
|
-
self.writeIdentifiable(child_element, needs)
|
|
1664
|
+
self.writeServiceNeeds(child_element, needs)
|
|
1619
1665
|
self.setChildElementOptionalPositiveInteger(child_element, "MAXIMUM-KEY-LENGTH", needs.getMaximumKeyLength())
|
|
1620
1666
|
|
|
1621
|
-
def
|
|
1667
|
+
def writeEcuStateMgrUserNeeds(self, element: ET.Element, needs: EcuStateMgrUserNeeds):
|
|
1668
|
+
# self.logger.debug("write EcuStateMgrUserNeeds %s" % needs.getShortName())
|
|
1622
1669
|
child_element = ET.SubElement(element, "ECU-STATE-MGR-USER-NEEDS")
|
|
1623
|
-
self.
|
|
1624
|
-
|
|
1670
|
+
self.writeServiceNeeds(child_element, needs)
|
|
1671
|
+
|
|
1672
|
+
def writeDtcStatusChangeNotificationNeeds(self, element: ET.Element, needs: DtcStatusChangeNotificationNeeds):
|
|
1673
|
+
# self.logger.debug("Write DtcStatusChangeNotificationNeeds %s" % needs.getShortName())
|
|
1674
|
+
child_element = ET.SubElement(element, "DTC-STATUS-CHANGE-NOTIFICATION-NEEDS")
|
|
1675
|
+
self.writeDiagnosticCapabilityElement(child_element, needs)
|
|
1676
|
+
self.setChildElementOptionalLiteral(child_element, "DTC-FORMAT-TYPE", needs.getDtcFormatType())
|
|
1677
|
+
|
|
1678
|
+
def writeDltUserNeeds(self, element: ET.Element, needs: DtcStatusChangeNotificationNeeds):
|
|
1679
|
+
# self.logger.debug("Write DtcStatusChangeNotificationNeeds %s" % needs.getShortName())
|
|
1680
|
+
child_element = ET.SubElement(element, "DLT-USER-NEEDS")
|
|
1681
|
+
self.writeServiceNeeds(child_element, needs)
|
|
1625
1682
|
|
|
1626
1683
|
def writeSwcServiceDependencyServiceNeeds(self, element: ET.Element, parent: SwcServiceDependency):
|
|
1627
|
-
|
|
1628
|
-
if len(
|
|
1684
|
+
needs_list = parent.getServiceNeeds()
|
|
1685
|
+
if len(needs_list) > 0:
|
|
1629
1686
|
child_element = ET.SubElement(element, "SERVICE-NEEDS")
|
|
1630
|
-
for
|
|
1631
|
-
if isinstance(
|
|
1632
|
-
self.
|
|
1633
|
-
elif isinstance(
|
|
1634
|
-
self.
|
|
1635
|
-
elif isinstance(
|
|
1636
|
-
self.
|
|
1637
|
-
elif isinstance(
|
|
1638
|
-
self.
|
|
1639
|
-
elif isinstance(
|
|
1640
|
-
self.
|
|
1641
|
-
elif isinstance(
|
|
1642
|
-
self.
|
|
1643
|
-
elif isinstance(
|
|
1644
|
-
self.
|
|
1645
|
-
elif isinstance(
|
|
1646
|
-
self.
|
|
1687
|
+
for needs in needs_list:
|
|
1688
|
+
if isinstance(needs, NvBlockNeeds):
|
|
1689
|
+
self.writeNvBlockNeeds(child_element, needs)
|
|
1690
|
+
elif isinstance(needs, DiagnosticCommunicationManagerNeeds):
|
|
1691
|
+
self.writeDiagnosticCommunicationManagerNeeds(child_element, needs)
|
|
1692
|
+
elif isinstance(needs, DiagnosticRoutineNeeds):
|
|
1693
|
+
self.writeDiagnosticRoutineNeeds(child_element, needs)
|
|
1694
|
+
elif isinstance(needs, DiagnosticValueNeeds):
|
|
1695
|
+
self.writeDiagnosticValueNeeds(child_element, needs)
|
|
1696
|
+
elif isinstance(needs, DiagnosticEventNeeds):
|
|
1697
|
+
self.writeDiagnosticEventNeeds(child_element, needs)
|
|
1698
|
+
elif isinstance(needs, DiagnosticEventInfoNeeds):
|
|
1699
|
+
self.writeDiagnosticEventInfoNeeds(child_element, needs)
|
|
1700
|
+
elif isinstance(needs, CryptoServiceNeeds):
|
|
1701
|
+
self.writeCryptoServiceNeeds(child_element, needs)
|
|
1702
|
+
elif isinstance(needs, EcuStateMgrUserNeeds):
|
|
1703
|
+
self.writeEcuStateMgrUserNeeds(child_element, needs)
|
|
1704
|
+
elif isinstance(needs, DtcStatusChangeNotificationNeeds):
|
|
1705
|
+
self.writeDtcStatusChangeNotificationNeeds(child_element, needs)
|
|
1706
|
+
elif isinstance(needs, DltUserNeeds):
|
|
1707
|
+
self.writeDltUserNeeds(child_element, needs)
|
|
1647
1708
|
else:
|
|
1648
|
-
self.notImplemented("Unsupported service needs <%s>" % type(
|
|
1709
|
+
self.notImplemented("Unsupported service needs <%s>" % type(needs))
|
|
1649
1710
|
|
|
1650
1711
|
def writeSwcServiceDependency(self, element: ET.Element, dependency: SwcServiceDependency):
|
|
1651
1712
|
child_element = ET.SubElement(element, "SWC-SERVICE-DEPENDENCY")
|
|
@@ -1743,8 +1804,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1743
1804
|
self.setChildElementOptionalLiteral(artifact_desc_tag, "SHORT-LABEL", artifact_desc.short_label)
|
|
1744
1805
|
self.setChildElementOptionalLiteral(artifact_desc_tag, "CATEGORY", artifact_desc.category)
|
|
1745
1806
|
|
|
1746
|
-
def
|
|
1747
|
-
self.logger.debug("
|
|
1807
|
+
def writeCode(self, element: ET.SubElement, code_desc: Code):
|
|
1808
|
+
# self.logger.debug("Write Code %s" % code_desc.getShortName())
|
|
1748
1809
|
child_element = ET.SubElement(element, "CODE")
|
|
1749
1810
|
self.writeIdentifiable(child_element, code_desc)
|
|
1750
1811
|
self.writeArtifactDescriptor(child_element, code_desc)
|
|
@@ -1755,7 +1816,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
1755
1816
|
child_element = ET.SubElement(element, "CODE-DESCRIPTORS")
|
|
1756
1817
|
for desc in descs:
|
|
1757
1818
|
if isinstance(desc, Code):
|
|
1758
|
-
self.
|
|
1819
|
+
self.writeCode(child_element, desc)
|
|
1759
1820
|
else:
|
|
1760
1821
|
self.notImplemented("Unsupported Code Descriptor <%s>" % type(desc))
|
|
1761
1822
|
|
|
@@ -2035,8 +2096,36 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2035
2096
|
cond_tag = ET.SubElement(child_element, "TRIGGER-REF-CONDITIONAL")
|
|
2036
2097
|
self.setChildElementOptionalRefType(cond_tag, "TRIGGER-REF", ref)
|
|
2037
2098
|
|
|
2099
|
+
def writeBswModuleEntityActivationPointRefs(self, element: ET.Element, entity: BswModuleEntity):
|
|
2100
|
+
refs = entity.getActivationPointRefs()
|
|
2101
|
+
if len(refs) > 0:
|
|
2102
|
+
child_element = ET.SubElement(element, "ACTIVATION-POINTS")
|
|
2103
|
+
for ref in refs:
|
|
2104
|
+
cond_tag = ET.SubElement(child_element, "BSW-INTERNAL-TRIGGERING-POINT-REF-CONDITIONAL")
|
|
2105
|
+
self.setChildElementOptionalRefType(cond_tag, "BSW-INTERNAL-TRIGGERING-POINT-REF", ref)
|
|
2106
|
+
|
|
2107
|
+
def writeBswModuleCallPoint(self, element: ET.Element, point: BswModuleCallPoint):
|
|
2108
|
+
self.writeReferrable(element, point)
|
|
2109
|
+
|
|
2110
|
+
def writeBswAsynchronousServerCallPoint(self, element: ET.Element, point: BswAsynchronousServerCallPoint):
|
|
2111
|
+
child_element = ET.SubElement(element, "BSW-ASYNCHRONOUS-SERVER-CALL-POINT")
|
|
2112
|
+
self.writeBswModuleCallPoint(child_element, point)
|
|
2113
|
+
self.setChildElementOptionalRefType(child_element, "CALLED-ENTRY-REF", point.getCalledEntryRef())
|
|
2114
|
+
|
|
2115
|
+
def writeBswModuleEntityCallPoints(self, element: ET.Element, entity: BswModuleEntity):
|
|
2116
|
+
points = entity.getCallPoints()
|
|
2117
|
+
if len(points) > 0:
|
|
2118
|
+
child_element = ET.SubElement(element, "CALL-POINTS")
|
|
2119
|
+
for point in points:
|
|
2120
|
+
if isinstance(point, BswAsynchronousServerCallPoint):
|
|
2121
|
+
self.writeBswAsynchronousServerCallPoint(child_element, point)
|
|
2122
|
+
else:
|
|
2123
|
+
self.notImplemented("Unsupported Call Point <%s>" % type(point))
|
|
2124
|
+
|
|
2038
2125
|
def writeBswModuleEntity(self, element: ET.Element, entity: BswModuleEntity):
|
|
2039
2126
|
self.writeExecutableEntity(element, entity)
|
|
2127
|
+
self.writeBswModuleEntityActivationPointRefs(element, entity)
|
|
2128
|
+
self.writeBswModuleEntityCallPoints(element, entity)
|
|
2040
2129
|
self.writeBswModuleEntityDataSendPoints(element, entity)
|
|
2041
2130
|
self.writeBswModuleEntityDataReceivePoints(element, entity)
|
|
2042
2131
|
self.setChildElementOptionalRefType(element, "IMPLEMENTED-ENTRY-REF", entity.implementedEntryRef)
|
|
@@ -2060,7 +2149,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2060
2149
|
self.setChildElementOptionalLiteral(child_element, "INTERRUPT-CATEGORY", entity.getInterruptCategory())
|
|
2061
2150
|
self.setChildElementOptionalLiteral(child_element, "INTERRUPT-SOURCE", entity.getInterruptSource())
|
|
2062
2151
|
|
|
2063
|
-
def
|
|
2152
|
+
def writeBswInternalBehaviorEntities(self, element: ET.Element, parent: BswInternalBehavior):
|
|
2064
2153
|
entities = parent.getBswModuleEntities()
|
|
2065
2154
|
if len(entities) > 0:
|
|
2066
2155
|
child_element = ET.SubElement(element, "ENTITYS")
|
|
@@ -2118,7 +2207,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2118
2207
|
self.writeBswEvent(child_element, event)
|
|
2119
2208
|
self.setChildElementOptionalRefType(child_element, "ENTRY-REF", event.getEntryRef())
|
|
2120
2209
|
|
|
2121
|
-
def
|
|
2210
|
+
def writeBswInternalBehaviorEvents(self, element: ET.Element, parent: BswInternalBehavior):
|
|
2122
2211
|
events = parent.getBswEvents()
|
|
2123
2212
|
if len(events) > 0:
|
|
2124
2213
|
child_element = ET.SubElement(element, "EVENTS")
|
|
@@ -2183,11 +2272,26 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2183
2272
|
else:
|
|
2184
2273
|
self.notImplemented("Unsupported Reception Policies <%s>" % type(policy))
|
|
2185
2274
|
|
|
2275
|
+
def writeBswInternalTriggeringPoint(self, element: ET.Element, point: BswInternalTriggeringPoint):
|
|
2276
|
+
child_element = ET.SubElement(element, "BSW-INTERNAL-TRIGGERING-POINT")
|
|
2277
|
+
self.writeIdentifiable(child_element, point)
|
|
2278
|
+
|
|
2279
|
+
def writeBswInternalBehaviorInternalTriggeringPoints(self, element: ET.Element, behavior: BswInternalBehavior):
|
|
2280
|
+
points = behavior.getInternalTriggeringPoints()
|
|
2281
|
+
if len(points) > 0:
|
|
2282
|
+
child_element = ET.SubElement(element, "INTERNAL-TRIGGERING-POINTS")
|
|
2283
|
+
for point in points:
|
|
2284
|
+
if isinstance(point, BswInternalTriggeringPoint):
|
|
2285
|
+
self.writeBswInternalTriggeringPoint(child_element, point)
|
|
2286
|
+
else:
|
|
2287
|
+
self.notImplemented("Unsupported Internal Triggering Points <%s>" % type(point))
|
|
2288
|
+
|
|
2186
2289
|
def writeBswInternalBehavior(self, element: ET.Element, behavior: BswInternalBehavior):
|
|
2187
2290
|
child_element = ET.SubElement(element, "BSW-INTERNAL-BEHAVIOR")
|
|
2188
2291
|
self.writeInternalBehavior(child_element, behavior)
|
|
2189
|
-
self.
|
|
2190
|
-
self.
|
|
2292
|
+
self.writeBswInternalBehaviorInternalTriggeringPoints(child_element, behavior)
|
|
2293
|
+
self.writeBswInternalBehaviorEntities(child_element, behavior)
|
|
2294
|
+
self.writeBswInternalBehaviorEvents(child_element, behavior)
|
|
2191
2295
|
self.writeBswInternalBehaviorModeSenderPolicy(child_element, behavior)
|
|
2192
2296
|
self.writeBswInternalBehaviorIncludedModeDeclarationGroupSets(child_element, behavior)
|
|
2193
2297
|
self.writeBswInternalBehaviorReceptionPolicies(child_element, behavior)
|
|
@@ -2245,7 +2349,35 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2245
2349
|
self.writeVariableDataPrototype(child_element, data)
|
|
2246
2350
|
else:
|
|
2247
2351
|
self.notImplemented("Unsupported Required Data <%s>" % type(data))
|
|
2248
|
-
|
|
2352
|
+
|
|
2353
|
+
def writeBswModuleClientServerEntry(self, element: ET.Element, entry: BswModuleClientServerEntry):
|
|
2354
|
+
if entry is not None:
|
|
2355
|
+
child_element = ET.SubElement(element, "BSW-MODULE-CLIENT-SERVER-ENTRY")
|
|
2356
|
+
self.writeReferrable(child_element, entry)
|
|
2357
|
+
self.setChildElementOptionalRefType(child_element, "ENCAPSULATED-ENTRY-REF", entry.getEncapsulatedEntryRef())
|
|
2358
|
+
self.setChildElementOptionalBooleanValue(child_element, "IS-REENTRANT", entry.getIsReentrant())
|
|
2359
|
+
self.setChildElementOptionalBooleanValue(child_element, "IS-SYNCHRONOUS", entry.getIsSynchronous())
|
|
2360
|
+
|
|
2361
|
+
def writeBswModuleDescriptionProvidedClientServerEntries(self, element: ET.Element, desc: BswModuleDescription):
|
|
2362
|
+
entries = desc.getProvidedClientServerEntries()
|
|
2363
|
+
if len(entries) > 0:
|
|
2364
|
+
child_element = ET.SubElement(element, "PROVIDED-CLIENT-SERVER-ENTRYS")
|
|
2365
|
+
for entry in entries:
|
|
2366
|
+
if isinstance(entry, BswModuleClientServerEntry):
|
|
2367
|
+
self.writeBswModuleClientServerEntry(child_element, entry)
|
|
2368
|
+
else:
|
|
2369
|
+
self.notImplemented("Unsupported Provided Client Server Entry <%s>" % type(entry))
|
|
2370
|
+
|
|
2371
|
+
def writeBswModuleDescriptionRequiredClientServerEntries(self, element: ET.Element, desc: BswModuleDescription):
|
|
2372
|
+
entries = desc.getRequiredClientServerEntries()
|
|
2373
|
+
if len(entries) > 0:
|
|
2374
|
+
child_element = ET.SubElement(element, "REQUIRED-CLIENT-SERVER-ENTRYS")
|
|
2375
|
+
for entry in entries:
|
|
2376
|
+
if isinstance(entry, BswModuleClientServerEntry):
|
|
2377
|
+
self.writeBswModuleClientServerEntry(child_element, entry)
|
|
2378
|
+
else:
|
|
2379
|
+
self.notImplemented("Unsupported Provided Client Server Entry <%s>" % type(entry))
|
|
2380
|
+
|
|
2249
2381
|
def writeBswModuleDescription(self, element: ET.Element, desc: BswModuleDescription):
|
|
2250
2382
|
self.logger.debug("writeBswModuleDescription %s" % desc.getShortName())
|
|
2251
2383
|
child_element = ET.SubElement(element, "BSW-MODULE-DESCRIPTION")
|
|
@@ -2254,11 +2386,12 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2254
2386
|
self.writeBswModuleDescriptionImplementedEntryRefs(child_element, desc)
|
|
2255
2387
|
self.writeBswModuleDescriptionProvidedModeGroups(child_element, desc)
|
|
2256
2388
|
self.writeBswModuleDescriptionRequiredModeGroups(child_element, desc)
|
|
2257
|
-
self.
|
|
2258
|
-
self.
|
|
2389
|
+
self.writeBswModuleDescriptionProvidedClientServerEntries(child_element, desc)
|
|
2390
|
+
self.writeBswModuleDescriptionRequiredClientServerEntries(child_element, desc)
|
|
2259
2391
|
self.writeBswModuleDescriptionProvidedDatas(child_element, desc)
|
|
2260
2392
|
self.writeBswModuleDescriptionRequiredDatas(child_element, desc)
|
|
2261
2393
|
self.writeBswModuleDescriptionInternalBehaviors(child_element, desc)
|
|
2394
|
+
self.writeBswModuleDescriptionReleasedTriggers(child_element, desc)
|
|
2262
2395
|
|
|
2263
2396
|
def setSwServiceArg(self, element: ET.Element, arg: SwServiceArg):
|
|
2264
2397
|
self.logger.debug("Set SwServiceArg <%s>" % arg.getShortName())
|
|
@@ -2315,8 +2448,8 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2315
2448
|
self.setChildElementOptionalLiteral(element, "SHORT-LABEL", engineering_obj.short_label)
|
|
2316
2449
|
self.setChildElementOptionalLiteral(element, "CATEGORY", engineering_obj.category)
|
|
2317
2450
|
|
|
2318
|
-
def
|
|
2319
|
-
self.logger.debug("
|
|
2451
|
+
def writeAutosarEngineeringObject(self, element: ET.Element, obj: AutosarEngineeringObject):
|
|
2452
|
+
# self.logger.debug("write ArtifactDescriptor %s", obj.short_label)
|
|
2320
2453
|
child_element = ET.SubElement(element, "AUTOSAR-ENGINEERING-OBJECT")
|
|
2321
2454
|
self.writeEngineeringObject(child_element, obj)
|
|
2322
2455
|
|
|
@@ -2326,7 +2459,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2326
2459
|
child_element = ET.SubElement(element, "ARTIFACT-DESCRIPTORS")
|
|
2327
2460
|
for artifact_desc in artifact_descs:
|
|
2328
2461
|
if isinstance(artifact_desc, AutosarEngineeringObject):
|
|
2329
|
-
self.
|
|
2462
|
+
self.writeAutosarEngineeringObject(child_element, artifact_desc)
|
|
2330
2463
|
else:
|
|
2331
2464
|
self.notImplemented("Unsupported Artifact descriptor <%s>" % type(artifact_desc))
|
|
2332
2465
|
|
|
@@ -2348,7 +2481,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
2348
2481
|
self.writeBswImplementationVendorSpecificModuleDefRefs(child_element, impl)
|
|
2349
2482
|
|
|
2350
2483
|
def writeImplementationDataTypeElements(self, element: ET.Element, parent: ImplementationDataType):
|
|
2351
|
-
sub_elements = parent.
|
|
2484
|
+
sub_elements = parent.getSubElements()
|
|
2352
2485
|
if len(sub_elements) > 0:
|
|
2353
2486
|
sub_elements_tag = ET.SubElement(element, "SUB-ELEMENTS")
|
|
2354
2487
|
for type_element in sub_elements:
|
|
@@ -3743,6 +3876,68 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
3743
3876
|
self.setChildElementOptionalIntegerValue(child_element, "WAKEUP-TX-ACTIVE", cluster.getWakeupTxActive())
|
|
3744
3877
|
self.setChildElementOptionalIntegerValue(child_element, "WAKEUP-TX-IDLE", cluster.getWakeupTxIdle())
|
|
3745
3878
|
|
|
3879
|
+
def writeCollectionElementRefs(self, element: ET.Element, collection: Collection):
|
|
3880
|
+
refs = collection.getElementRefs()
|
|
3881
|
+
if len(refs) > 0:
|
|
3882
|
+
child_element = ET.SubElement(element, "ELEMENT-REFS")
|
|
3883
|
+
for ref in refs:
|
|
3884
|
+
self.setChildElementOptionalRefType(child_element, "ELEMENT-REF", ref)
|
|
3885
|
+
|
|
3886
|
+
def writeCollectionSourceElementRefs(self, element: ET.Element, collection: Collection):
|
|
3887
|
+
refs = collection.getSourceElementRefs()
|
|
3888
|
+
if len(refs) > 0:
|
|
3889
|
+
child_element = ET.SubElement(element, "SOURCE-ELEMENT-REFS")
|
|
3890
|
+
for ref in refs:
|
|
3891
|
+
self.setChildElementOptionalRefType(child_element, "SOURCE-ELEMENT-REF", ref)
|
|
3892
|
+
|
|
3893
|
+
def writeCollection(self, element: ET.Element, collection: Collection):
|
|
3894
|
+
if collection is not None:
|
|
3895
|
+
child_element = ET.SubElement(element, "COLLECTION")
|
|
3896
|
+
self.writeARElement(child_element, collection)
|
|
3897
|
+
self.setChildElementOptionalLiteral(child_element, "AUTO-COLLECT", collection.getAutoCollect())
|
|
3898
|
+
self.setChildElementOptionalLiteral(child_element, "ELEMENT-ROLE", collection.getElementRole())
|
|
3899
|
+
self.writeCollectionElementRefs(child_element, collection)
|
|
3900
|
+
self.writeCollectionSourceElementRefs(child_element, collection)
|
|
3901
|
+
|
|
3902
|
+
def writeKeywordClassifications(self, element: ET.Element, keyword: Keyword):
|
|
3903
|
+
classifications = keyword.getClassifications()
|
|
3904
|
+
if len(classifications) > 0:
|
|
3905
|
+
child_element = ET.SubElement(element, "CLASSIFICATIONS")
|
|
3906
|
+
for classification in classifications:
|
|
3907
|
+
self.setChildElementOptionalLiteral(child_element, "CLASSIFICATION", classification)
|
|
3908
|
+
|
|
3909
|
+
def writeKeyword(self, element: ET.Element, keyword: Keyword):
|
|
3910
|
+
if keyword is not None:
|
|
3911
|
+
# self.logger.debug("Write Keyword <%s>" % keyword.getShortName())
|
|
3912
|
+
child_element = ET.SubElement(element, "KEYWORD")
|
|
3913
|
+
self.writeIdentifiable(child_element, keyword)
|
|
3914
|
+
self.setChildElementOptionalLiteral(child_element, "ABBR-NAME", keyword.getAbbrName())
|
|
3915
|
+
self.writeKeywordClassifications(child_element, keyword)
|
|
3916
|
+
|
|
3917
|
+
def writeKeywordSetKeywords(self, element: ET.Element, keyword_set: KeywordSet):
|
|
3918
|
+
keywords = keyword_set.getKeywords()
|
|
3919
|
+
if len(keywords) > 0:
|
|
3920
|
+
child_element = ET.SubElement(element, "KEYWORDS")
|
|
3921
|
+
for keyword in keywords:
|
|
3922
|
+
if isinstance(keyword, Keyword):
|
|
3923
|
+
self.writeKeyword(child_element, keyword)
|
|
3924
|
+
else:
|
|
3925
|
+
self.notImplemented("Unsupported Keyword <%s>" % type(keyword))
|
|
3926
|
+
|
|
3927
|
+
def writeKeywordSet(self, element: ET.Element, keyword_set: KeywordSet):
|
|
3928
|
+
if keyword_set is not None:
|
|
3929
|
+
self.logger.debug("Write KeywordSet <%s>" % keyword_set.getShortName())
|
|
3930
|
+
child_element = ET.SubElement(element, "KEYWORD-SET")
|
|
3931
|
+
self.writeARElement(child_element, keyword_set)
|
|
3932
|
+
self.writeKeywordSetKeywords(child_element, keyword_set)
|
|
3933
|
+
|
|
3934
|
+
def writePortPrototypeBlueprint(self, element: ET.Element, blueprint: PortPrototypeBlueprint):
|
|
3935
|
+
if blueprint is not None:
|
|
3936
|
+
self.logger.debug("Write PortPrototypeBlueprint <%s>" % blueprint.getShortName())
|
|
3937
|
+
child_element = ET.SubElement(element, "PORT-PROTOTYPE-BLUEPRINT")
|
|
3938
|
+
self.writeARElement(child_element, blueprint)
|
|
3939
|
+
self.setChildElementOptionalRefType(child_element, "INTERFACE-REF", blueprint.getInterfaceRef())
|
|
3940
|
+
|
|
3746
3941
|
def writeMacMulticastGroup(self, element: ET.Element, group: MacMulticastGroup):
|
|
3747
3942
|
if group is not None:
|
|
3748
3943
|
child_element = ET.SubElement(element, "MAC-MULTICAST-GROUP")
|
|
@@ -4231,6 +4426,7 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
4231
4426
|
self.setChildElementOptionalNumericalValue(child_element, "LENGTH-EXP", dimension.getLengthExp())
|
|
4232
4427
|
self.setChildElementOptionalNumericalValue(child_element, "LUMINOUS-INTENSITY-EXP", dimension.getLuminousIntensityExp())
|
|
4233
4428
|
self.setChildElementOptionalNumericalValue(child_element, "MASS-EXP", dimension.getMassExp())
|
|
4429
|
+
self.setChildElementOptionalNumericalValue(child_element, "MOLAR-AMOUNT-EXP", dimension.getMolarAmountExp())
|
|
4234
4430
|
self.setChildElementOptionalNumericalValue(child_element, "TEMPERATURE-EXP", dimension.getTemperatureExp())
|
|
4235
4431
|
self.setChildElementOptionalNumericalValue(child_element, "TIME-EXP", dimension.getTimeExp())
|
|
4236
4432
|
self.setChildElementOptionalNumericalValue(child_element, "CURRENT-EXP", dimension.getCurrentExp())
|
|
@@ -4269,19 +4465,43 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
4269
4465
|
for mapping in mappings:
|
|
4270
4466
|
self.setDataPrototypeMapping(child_element, mapping)
|
|
4271
4467
|
|
|
4272
|
-
def
|
|
4273
|
-
self.logger.debug("
|
|
4468
|
+
def writeVariableAndParameterInterfaceMapping(self, element: ET.Element, mapping: VariableAndParameterInterfaceMapping):
|
|
4469
|
+
# self.logger.debug("Write VariableAndParameterInterfaceMapping %s" % mapping.getShortName())
|
|
4274
4470
|
child_element = ET.SubElement(element, "VARIABLE-AND-PARAMETER-INTERFACE-MAPPING")
|
|
4275
4471
|
self.writeIdentifiable(child_element, mapping)
|
|
4276
4472
|
self.setDataPrototypeMappings(child_element, "DATA-MAPPINGS", mapping.getDataMappings())
|
|
4277
4473
|
|
|
4474
|
+
def writeClientServerOperationMapping(self, element: ET.Element, mapping: ClientServerOperationMapping):
|
|
4475
|
+
child_element = ET.SubElement(element, "CLIENT-SERVER-OPERATION-MAPPING")
|
|
4476
|
+
self.setChildElementOptionalRefType(child_element, "FIRST-OPERATION-REF", mapping.getFirstOperationRef())
|
|
4477
|
+
self.setChildElementOptionalRefType(child_element, "SECOND-OPERATION-REF", mapping.getSecondOperationRef())
|
|
4478
|
+
|
|
4479
|
+
def writeClientServerInterfaceMappingOperationMappings(self, element: ET.Element, mapping: ClientServerInterfaceMapping):
|
|
4480
|
+
operation_mappings = mapping.getOperationMappings()
|
|
4481
|
+
if len(operation_mappings) > 0:
|
|
4482
|
+
child_element = ET.SubElement(element, "OPERATION-MAPPINGS")
|
|
4483
|
+
for operation_mapping in operation_mappings:
|
|
4484
|
+
if isinstance(operation_mapping, ClientServerOperationMapping):
|
|
4485
|
+
self.writeClientServerOperationMapping(child_element, operation_mapping)
|
|
4486
|
+
else:
|
|
4487
|
+
self.notImplemented("Unsupported Operation Mapping <%s>" % type(operation_mapping))
|
|
4488
|
+
|
|
4489
|
+
def writeClientServerInterfaceMapping(self, element: ET.Element, mapping: ClientServerInterfaceMapping):
|
|
4490
|
+
# self.logger.debug("Read ClientServerInterfaceMapping %s" % mapping.getShortName())
|
|
4491
|
+
if mapping is not None:
|
|
4492
|
+
child_element = ET.SubElement(element, "CLIENT-SERVER-INTERFACE-MAPPING")
|
|
4493
|
+
self.writeIdentifiable(child_element, mapping)
|
|
4494
|
+
self.writeClientServerInterfaceMappingOperationMappings(child_element, mapping)
|
|
4495
|
+
|
|
4278
4496
|
def writePortInterfaceMappings(self, element: ET.Element, mapping_set: PortInterfaceMappingSet):
|
|
4279
4497
|
mappings = mapping_set.getPortInterfaceMappings()
|
|
4280
4498
|
if len(mappings) > 0:
|
|
4281
4499
|
child_element = ET.SubElement(element, "PORT-INTERFACE-MAPPINGS")
|
|
4282
4500
|
for mapping in mappings:
|
|
4283
4501
|
if isinstance(mapping, VariableAndParameterInterfaceMapping):
|
|
4284
|
-
self.
|
|
4502
|
+
self.writeVariableAndParameterInterfaceMapping(child_element, mapping)
|
|
4503
|
+
elif isinstance(mapping, ClientServerInterfaceMapping):
|
|
4504
|
+
self.writeClientServerInterfaceMapping(child_element, mapping)
|
|
4285
4505
|
else:
|
|
4286
4506
|
self.notImplemented("Unsupported PortInterfaceMapping <%s>" % type(mapping))
|
|
4287
4507
|
|
|
@@ -4530,10 +4750,47 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
4530
4750
|
child_element = ET.SubElement(element, "ETHERNET-FRAME")
|
|
4531
4751
|
self.writeFrame(child_element, frame)
|
|
4532
4752
|
|
|
4533
|
-
def
|
|
4534
|
-
|
|
4535
|
-
|
|
4536
|
-
|
|
4753
|
+
def setLifeCyclePeriod(self, element: ET.Element, key: str, period: LifeCyclePeriod):
|
|
4754
|
+
if period is not None:
|
|
4755
|
+
child_element = ET.SubElement(element, key)
|
|
4756
|
+
self.setChildElementOptionalRevisionLabelString(child_element, "AR-RELEASE-VERSION", period.getArReleaseVersion())
|
|
4757
|
+
|
|
4758
|
+
def writeLifeCycleInfoUseInsteadRefs(self, element: ET.Element, info: LifeCycleInfo):
|
|
4759
|
+
refs = info.getUseInsteadRefs()
|
|
4760
|
+
if len(refs) > 0:
|
|
4761
|
+
child_element = ET.SubElement(element, "USE-INSTEAD-REFS")
|
|
4762
|
+
for ref in refs:
|
|
4763
|
+
self.setChildElementOptionalRefType(child_element, "USE-INSTEAD-REF", ref)
|
|
4764
|
+
|
|
4765
|
+
def writeLifeCycleInfo(self, element: ET.Element, info: LifeCycleInfo):
|
|
4766
|
+
if info is not None:
|
|
4767
|
+
child_element = ET.SubElement(element, "LIFE-CYCLE-INFO")
|
|
4768
|
+
self.writeARObjectAttributes(child_element, info)
|
|
4769
|
+
self.setChildElementOptionalRefType(child_element, "LC-OBJECT-REF", info.getLcObjectRef())
|
|
4770
|
+
self.setChildElementOptionalRefType(child_element, "LC-STATE-REF", info.getLcStateRef())
|
|
4771
|
+
self.setLifeCyclePeriod(child_element, "PERIOD-BEGIN", info.getPeriodBegin())
|
|
4772
|
+
self.writeDocumentationBlock(child_element, "REMARK", info.getRemark())
|
|
4773
|
+
self.writeLifeCycleInfoUseInsteadRefs(child_element, info)
|
|
4774
|
+
|
|
4775
|
+
def writeLifeCycleInfoSetLifeCycleInfos(self, element: ET.Element, info_set: LifeCycleInfoSet):
|
|
4776
|
+
infos = info_set.getLifeCycleInfos()
|
|
4777
|
+
if len(infos) > 0:
|
|
4778
|
+
child_element = ET.SubElement(element, "LIFE-CYCLE-INFOS")
|
|
4779
|
+
for info in infos:
|
|
4780
|
+
if isinstance(info, LifeCycleInfo):
|
|
4781
|
+
self.writeLifeCycleInfo(child_element, info)
|
|
4782
|
+
else:
|
|
4783
|
+
self.notImplemented("Unsupported Life Cycle Info <%s>" % type(info))
|
|
4784
|
+
|
|
4785
|
+
def writeLifeCycleInfoSet(self, element: ET.Element, info_set: LifeCycleInfoSet):
|
|
4786
|
+
if info_set is not None:
|
|
4787
|
+
self.logger.debug("Write LifeCycleInfoSet %s" % info_set.getShortName())
|
|
4788
|
+
child_element = ET.SubElement(element, "LIFE-CYCLE-INFO-SET")
|
|
4789
|
+
self.writeIdentifiable(child_element, info_set)
|
|
4790
|
+
self.setChildElementOptionalRefType(child_element, "DEFAULT-LC-STATE-REF", info_set.getDefaultLcStateRef())
|
|
4791
|
+
self.writeLifeCycleInfoSetLifeCycleInfos(child_element, info_set)
|
|
4792
|
+
self.setChildElementOptionalRefType(child_element, "USED-LIFE-CYCLE-STATE-DEFINITION-GROUP-REF",
|
|
4793
|
+
info_set.getUsedLifeCycleStateDefinitionGroupRef())
|
|
4537
4794
|
|
|
4538
4795
|
def writeDiagnosticConnectionFunctionalRequestRefs(self, element: ET.Element, connection: DiagnosticConnection):
|
|
4539
4796
|
refs = connection.getFunctionalRequestRefs()
|
|
@@ -5191,6 +5448,12 @@ class ARXMLWriter(AbstractARXMLWriter):
|
|
|
5191
5448
|
self.writeSystemSignalGroup(element, ar_element)
|
|
5192
5449
|
elif isinstance(ar_element, FlexrayCluster):
|
|
5193
5450
|
self.writeFlexrayCluster(element, ar_element)
|
|
5451
|
+
elif isinstance(ar_element, Collection):
|
|
5452
|
+
self.writeCollection(element, ar_element)
|
|
5453
|
+
elif isinstance(ar_element, KeywordSet):
|
|
5454
|
+
self.writeKeywordSet(element, ar_element)
|
|
5455
|
+
elif isinstance(ar_element, PortPrototypeBlueprint):
|
|
5456
|
+
self.writePortPrototypeBlueprint(element, ar_element)
|
|
5194
5457
|
else:
|
|
5195
5458
|
self.notImplemented("Unsupported Elements of ARPackage <%s>" % type(ar_element))
|
|
5196
5459
|
|