armodel 1.7.7__py3-none-any.whl → 1.7.9__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 +33 -22
- armodel/cli/arxml_format_cli.py +25 -13
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +84 -28
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +410 -61
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +80 -9
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +141 -35
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +10 -8
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +17 -6
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +38 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +91 -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 +45 -2
- armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +20 -19
- armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +59 -0
- armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +145 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +243 -156
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +73 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +60 -32
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +35 -14
- armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +151 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +66 -42
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +1 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +13 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +166 -50
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +80 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +9 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +5 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +11 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +16 -2
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +9 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +167 -5
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/{ECUResourceMapping.py → EcuResourceMapping.py} +4 -3
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +31 -21
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +5 -3
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +18 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +76 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +654 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +64 -31
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +158 -40
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +19 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +2 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +524 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +15 -13
- 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 +7 -1
- armodel/parser/abstract_arxml_parser.py +39 -32
- armodel/parser/arxml_parser.py +1439 -551
- armodel/parser/file_parser.py +5 -3
- armodel/tests/test_armodel/models/test_ar_package.py +6 -11
- armodel/tests/test_armodel/models/test_port_interface.py +116 -117
- armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +109 -109
- armodel/tests/test_armodel/parser/test_sw_components.py +301 -28
- armodel/tests/test_armodel/parser/test_system.py +2 -8
- armodel/transformer/__init__.py +0 -0
- armodel/transformer/abstract.py +6 -0
- armodel/transformer/admin_data.py +31 -0
- armodel/writer/abstract_arxml_writer.py +22 -29
- armodel/writer/arxml_writer.py +1500 -526
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/METADATA +61 -1
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/RECORD +73 -57
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/LICENSE +0 -0
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/WHEEL +0 -0
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/top_level.txt +0 -0
armodel/parser/arxml_parser.py
CHANGED
|
@@ -2,14 +2,14 @@ from typing import List
|
|
|
2
2
|
import xml.etree.ElementTree as ET
|
|
3
3
|
import os
|
|
4
4
|
|
|
5
|
-
from armodel.models.M2.
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
from armodel.models.M2.MSR.Documentation.TextModel.BlockElements.PaginationAndView import DocumentViewSelectable, Paginateable
|
|
8
6
|
|
|
9
7
|
from ..models.M2.MSR.AsamHdo.AdminData import AdminData
|
|
10
8
|
from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition, SwBaseType
|
|
11
9
|
from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstrRule, InternalConstrs, PhysConstrs, DataConstr
|
|
12
|
-
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuConstContent, CompuConstFormulaContent, CompuConstNumericContent, CompuMethod, Compu
|
|
10
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuConstContent, CompuConstFormulaContent, CompuConstNumericContent, CompuMethod, Compu
|
|
11
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuConst, CompuConstTextContent, CompuNominatorDenominator, CompuRationalCoeffs, CompuScale
|
|
12
|
+
from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
|
|
13
13
|
from ..models.M2.MSR.AsamHdo.SpecialData import Sdg, Sd
|
|
14
14
|
from ..models.M2.MSR.AsamHdo.Units import PhysicalDimension, Unit
|
|
15
15
|
from ..models.M2.MSR.CalibrationData.CalibrationValue import SwValueCont, SwValues
|
|
@@ -23,86 +23,190 @@ from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroup
|
|
|
23
23
|
from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxisSet
|
|
24
24
|
from ..models.M2.MSR.DataDictionary.ServiceProcessTask import SwServiceArg
|
|
25
25
|
from ..models.M2.MSR.Documentation.Annotation import Annotation, GeneralAnnotation
|
|
26
|
+
from ..models.M2.MSR.Documentation.BlockElements.Figure import Graphic, LGraphic, MlFigure
|
|
26
27
|
from ..models.M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
|
|
27
|
-
from ..models.M2.MSR.Documentation.TextModel.BlockElements.ListElements import
|
|
28
|
+
from ..models.M2.MSR.Documentation.TextModel.BlockElements.ListElements import ARList
|
|
28
29
|
from ..models.M2.MSR.Documentation.TextModel.LanguageDataModel import LLongName, LOverviewParagraph, LParagraph, LanguageSpecific
|
|
29
|
-
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph, MultiLanguageParagraph, MultiLanguagePlainText
|
|
30
|
+
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph, MultiLanguageParagraph, MultiLanguagePlainText
|
|
31
|
+
from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
|
|
30
32
|
|
|
31
33
|
from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
32
|
-
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import
|
|
33
|
-
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.
|
|
34
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswApiOptions, BswAsynchronousServerCallPoint, BswBackgroundEvent
|
|
35
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswCalledEntity, BswDataReceivedEvent, BswModuleCallPoint
|
|
36
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalTriggeringPoint, BswOperationInvokedEvent
|
|
37
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswDataReceptionPolicy, BswExternalTriggerOccurredEvent, BswInternalBehavior
|
|
38
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalTriggerOccurredEvent, BswInterruptEntity, BswModeSwitchEvent
|
|
39
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswModuleEntity, BswQueuedDataReceptionPolicy, BswSchedulableEntity
|
|
40
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswScheduleEvent, BswModeSenderPolicy, BswTimingEvent, BswVariableAccess
|
|
41
|
+
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleClientServerEntry, BswModuleEntry
|
|
34
42
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
|
|
35
43
|
from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
36
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference
|
|
44
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference
|
|
45
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure import ConstantSpecification, NumericalValueSpecification, RecordValueSpecification
|
|
46
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure import TextValueSpecification, ValueSpecification
|
|
37
47
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Filter import DataFilter
|
|
38
48
|
from ..models.M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatInstanceDescriptor, FlatMap
|
|
39
49
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import ImplementationProps, Code
|
|
50
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity, InternalBehavior
|
|
40
51
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup, ModeRequestTypeMap, ModeDeclarationGroupPrototype
|
|
41
52
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import ResourceConsumption
|
|
42
53
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.MemorySectionUsage import MemorySection
|
|
43
54
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.StackUsage import RoughEstimateStackUsage, StackUsage
|
|
44
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity, InternalBehavior
|
|
45
55
|
from ..models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping, SwcBswRunnableMapping
|
|
46
|
-
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds,
|
|
56
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagEventDebounceMonitorInternal
|
|
57
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticCapabilityElement, DtcStatusChangeNotificationNeeds
|
|
58
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticCommunicationManagerNeeds, DiagnosticEventInfoNeeds
|
|
59
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds
|
|
60
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import EcuStateMgrUserNeeds, NvBlockNeeds, RoleBasedDataAssignment
|
|
61
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import RoleBasedDataTypeAssignment, ServiceDependency
|
|
62
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.BlueprintDedicated.PortPrototypeBlueprint import PortPrototypeBlueprint
|
|
63
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.Keyword import Keyword, KeywordSet
|
|
47
64
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import Implementation
|
|
48
65
|
from ..models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
|
|
49
66
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import ExecutionOrderConstraint
|
|
50
67
|
from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming, TimingExtension
|
|
68
|
+
from ..models.M2.AUTOSARTemplates.CommonStructure.TriggerDeclaration import Trigger
|
|
51
69
|
from ..models.M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import DiagnosticServiceTable
|
|
52
|
-
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue
|
|
70
|
+
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue
|
|
71
|
+
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue
|
|
72
|
+
from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
|
|
73
|
+
from ..models.M2.AUTOSARTemplates.EcuResourceTemplate import HwDescriptionEntity, HwElement, HwPinGroup
|
|
74
|
+
from ..models.M2.AUTOSARTemplates.EcuResourceTemplate.HwElementCategory import HwAttributeDef, HwCategory, HwType
|
|
53
75
|
from ..models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
|
|
54
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.
|
|
76
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ElementCollection import Collection
|
|
77
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Describable, Identifiable
|
|
78
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Referrable, MultilanguageReferrable
|
|
55
79
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
|
|
56
80
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage, ReferenceBase
|
|
57
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import
|
|
58
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
|
|
59
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
60
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
61
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import
|
|
62
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import
|
|
63
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
81
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARLiteral
|
|
82
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfo, LifeCycleInfoSet, LifeCyclePeriod
|
|
83
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationPrimitiveDataType, ApplicationRecordDataType
|
|
84
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationCompositeDataType
|
|
85
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationDataType, AutosarDataType, DataTypeMap, DataTypeMappingSet
|
|
86
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionISignalIPdu, EndToEndProtectionSet
|
|
87
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndDescription, EndToEndProtection
|
|
88
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionVariablePrototype
|
|
89
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef
|
|
90
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef
|
|
64
91
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
|
|
65
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
66
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import
|
|
67
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
68
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
69
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
92
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import CompositeNetworkRepresentation, ModeSwitchedAckRequest
|
|
93
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import TransmissionAcknowledgementRequest
|
|
94
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec
|
|
95
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import NonqueuedReceiverComSpec, NonqueuedSenderComSpec, ParameterRequireComSpec
|
|
96
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import QueuedReceiverComSpec, QueuedSenderComSpec, ReceiverComSpec, SenderComSpec
|
|
97
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ServerComSpec
|
|
98
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AbstractProvidedPortPrototype, AbstractRequiredPortPrototype, PRPortPrototype
|
|
99
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, ComplexDeviceDriverSwComponentType
|
|
100
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType, EcuAbstractionSwComponentType, PortGroup
|
|
101
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import SensorActuatorSwComponentType, ServiceSwComponentType, SwComponentType
|
|
102
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import SymbolProps, PPortPrototype, RPortPrototype
|
|
103
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AtomicSwComponentType
|
|
104
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import InnerPortGroupInCompositionInstanceRef
|
|
105
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import ModeGroupInAtomicSwcInstanceRef
|
|
106
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import PModeGroupInAtomicSwcInstanceRef
|
|
107
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import RModeGroupInAtomicSWCInstanceRef
|
|
108
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import RModeInAtomicSwcInstanceRef
|
|
109
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import RVariableInAtomicSwcInstanceRef
|
|
110
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import AssemblySwConnector, DelegationSwConnector, SwComponentPrototype, SwConnector
|
|
111
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationCompositeElementDataPrototype
|
|
112
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationRecordElement, AutosarDataPrototype
|
|
113
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import DataPrototype, ParameterDataPrototype, VariableDataPrototype
|
|
114
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ArgumentDataPrototype, ClientServerInterface, ClientServerInterfaceMapping
|
|
115
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerOperation, ClientServerOperationMapping
|
|
116
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import DataPrototypeMapping, InvalidationPolicy, ModeSwitchInterface
|
|
117
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ParameterInterface, PortInterface, PortInterfaceMappingSet
|
|
118
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import SenderReceiverInterface, TriggerInterface, DataInterface
|
|
119
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import VariableAndParameterInterfaceMapping
|
|
120
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
|
|
70
121
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import RunnableEntity, RunnableEntityArgument, SwcInternalBehavior
|
|
71
122
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AutosarVariableRef import AutosarVariableRef
|
|
72
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.
|
|
73
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
74
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.
|
|
123
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
|
|
124
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef
|
|
125
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import VariableInAtomicSWCTypeInstanceRef
|
|
126
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
|
|
127
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import ModeAccessPoint, ModeSwitchPoint
|
|
128
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption, PortDefinedArgumentValue
|
|
129
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import AsynchronousServerCallReturnsEvent, BackgroundEvent
|
|
130
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import DataReceivedEvent, InitEvent, InternalTriggerOccurredEvent
|
|
131
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import ModeSwitchedAckEvent, OperationInvokedEvent, RTEEvent
|
|
132
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import SwcModeSwitchEvent, TimingEvent
|
|
75
133
|
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
|
|
76
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.
|
|
77
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ArgumentDataPrototype, ClientServerInterface, ClientServerOperation, DataPrototypeMapping, InvalidationPolicy, ModeSwitchInterface, ParameterInterface, PortInterface, PortInterfaceMappingSet, SenderReceiverInterface, TriggerInterface, VariableAndParameterInterfaceMapping
|
|
78
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AtomicSwComponentType
|
|
79
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
|
|
80
|
-
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationCompositeElementDataPrototype, AutosarDataPrototype, DataPrototype, ParameterDataPrototype, VariableDataPrototype
|
|
134
|
+
from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import RoleBasedPortAssignment, SwcServiceDependency
|
|
81
135
|
|
|
82
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate import SwcToEcuMapping
|
|
136
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate import SwcToEcuMapping, System, SystemMapping
|
|
137
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderRecCompositeTypeMapping
|
|
138
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderRecRecordElementMapping, SenderRecRecordTypeMapping
|
|
83
139
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderReceiverToSignalGroupMapping, SenderReceiverToSignalMapping
|
|
84
140
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.DiagnosticConnection import DiagnosticConnection
|
|
85
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.
|
|
86
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmEcu, NmNode, UdpNmCluster, UdpNmClusterCoupling, UdpNmEcu, UdpNmNode
|
|
87
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef, VariableDataPrototypeInSystemInstanceRef
|
|
88
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import ApplicationEntry, LinFrameTriggering, LinScheduleTable, LinUnconditionalFrame, ScheduleTableEntry
|
|
89
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinTopology import LinCommunicationConnector, LinCommunicationController, LinMaster
|
|
90
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanCluster, CanClusterBusOffRecovery, CanPhysicalChannel, CommConnectorPort, CommunicationCluster, CommunicationConnector, CommunicationController, EthernetPhysicalChannel, FramePort, IPduPort, ISignalPort, LinCluster, LinPhysicalChannel, PhysicalChannel
|
|
91
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DcmIPdu, DynamicPart, DynamicPartAlternative, Frame, FrameTriggering, GeneralPurposeIPdu, GeneralPurposePdu, IPdu, IPduTiming, ISignal, ISignalGroup, ISignalIPdu, ISignalIPduGroup, ISignalToIPduMapping, ISignalTriggering, MultiplexedIPdu, MultiplexedPart, NPdu, NmPdu, Pdu, PduTriggering, SecureCommunicationAuthenticationProps, SecureCommunicationFreshnessProps, SecureCommunicationProps, SecureCommunicationPropsSet, SecuredIPdu, SegmentPosition, StaticPart, SystemSignal, SystemSignalGroup, UserDefinedIPdu, UserDefinedPdu
|
|
92
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import CyclicTiming, EventControlledTiming, TimeRangeType, TransmissionModeCondition, TransmissionModeDeclaration, TransmissionModeTiming
|
|
93
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
141
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.EcuResourceMapping import ECUMapping
|
|
94
142
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame, CanFrameTriggering, RxIdentifierRange
|
|
95
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import AbstractCanCommunicationController
|
|
96
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.
|
|
143
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import AbstractCanCommunicationController
|
|
144
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import AbstractCanCommunicationControllerAttributes
|
|
145
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
|
|
146
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanControllerConfigurationRequirements
|
|
147
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanControllerFdConfiguration
|
|
148
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanControllerFdConfigurationRequirements
|
|
149
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SoAdRoutingGroup, SocketConnection
|
|
150
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SocketConnectionBundle
|
|
151
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SocketConnectionIpduIdentifier
|
|
97
152
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
|
|
98
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.
|
|
99
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.
|
|
100
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import
|
|
153
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import CouplingPort, CouplingPortDetails, CouplingPortFifo
|
|
154
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import CouplingPortScheduler, CouplingPortStructuralElement
|
|
155
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCluster, EthernetCommunicationConnector
|
|
156
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCommunicationController
|
|
157
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetPriorityRegeneration, InitialSdDelayConfig
|
|
158
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import MacMulticastGroup, RequestResponseDelay, SdClientConfig
|
|
159
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import VlanMembership
|
|
160
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import DoIpEntity, InfrastructureServices, Ipv6Configuration
|
|
161
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import NetworkEndpoint
|
|
162
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import ApplicationEndpoint, ConsumedEventGroup
|
|
163
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import ConsumedServiceInstance, EventHandler, GenericTp
|
|
164
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import ProvidedServiceInstance, SdServerConfig, SoAdConfig
|
|
165
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import SocketAddress, TcpTp, TpPort
|
|
166
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.ServiceInstances import TransportProtocolConfiguration, UdpTp
|
|
167
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayCommunication import FlexrayAbsolutelyScheduledTiming, FlexrayFrame
|
|
168
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayCommunication import FlexrayFrameTriggering
|
|
169
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayTopology import FlexrayCluster, FlexrayCommunicationConnector
|
|
170
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayTopology import FlexrayCommunicationController
|
|
171
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import ApplicationEntry, LinFrameTriggering, LinScheduleTable
|
|
172
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinUnconditionalFrame, ScheduleTableEntry
|
|
173
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinTopology import LinCommunicationConnector, LinCommunicationController, LinMaster
|
|
101
174
|
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway, IPduMapping, ISignalMapping, TargetIPduRef
|
|
102
|
-
from ..models.M2.AUTOSARTemplates.SystemTemplate.
|
|
175
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DcmIPdu, DynamicPart, DynamicPartAlternative, Frame
|
|
176
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FrameTriggering, GeneralPurposeIPdu, GeneralPurposePdu
|
|
177
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import IPdu, IPduTiming, ISignal, ISignalGroup, ISignalIPdu
|
|
178
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import ISignalIPduGroup, ISignalToIPduMapping, ISignalTriggering
|
|
179
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import MultiplexedIPdu, MultiplexedPart, NPdu, NmPdu, Pdu
|
|
180
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import PduTriggering, SecureCommunicationAuthenticationProps
|
|
181
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import SecureCommunicationFreshnessProps, SecureCommunicationProps
|
|
182
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import SecureCommunicationPropsSet, SecuredIPdu, SegmentPosition
|
|
183
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import StaticPart, SystemSignal, SystemSignalGroup
|
|
184
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import UserDefinedIPdu, UserDefinedPdu
|
|
185
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanCluster, CanClusterBusOffRecovery
|
|
186
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import FlexrayPhysicalChannel, CycleRepetition, CommunicationCycle
|
|
187
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CanPhysicalChannel, CommConnectorPort, CommunicationCluster
|
|
188
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
|
|
189
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import EthernetPhysicalChannel, FramePort, IPduPort, ISignalPort
|
|
190
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import LinCluster, LinPhysicalChannel, PhysicalChannel
|
|
191
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
192
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import CyclicTiming, EventControlledTiming, TimeRangeType
|
|
193
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeCondition, TransmissionModeDeclaration
|
|
194
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeTiming
|
|
195
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef, VariableDataPrototypeInSystemInstanceRef
|
|
196
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmEcu
|
|
197
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import NmNode, UdpNmCluster, UdpNmClusterCoupling, UdpNmEcu, UdpNmNode
|
|
198
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.SWmapping import SwcToImplMapping
|
|
199
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Transformer import BufferProperties, DataTransformation, DataTransformationSet
|
|
200
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Transformer import EndToEndTransformationISignalProps, TransformationISignalProps
|
|
201
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Transformer import EndToEndTransformationDescription, TransformationDescription
|
|
202
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.Transformer import TransformationTechnology
|
|
203
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpAddress, CanTpChannel, CanTpConfig, CanTpConnection, CanTpEcu
|
|
204
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpNode, DoIpLogicAddress, DoIpTpConfig, DoIpTpConnection, LinTpConfig
|
|
205
|
+
from ..models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import LinTpConnection, LinTpNode, TpAddress, TpConfig, TpConnection
|
|
103
206
|
|
|
104
207
|
from .abstract_arxml_parser import AbstractARXMLParser
|
|
105
208
|
|
|
209
|
+
|
|
106
210
|
class ARXMLParser(AbstractARXMLParser):
|
|
107
211
|
def __init__(self, options=None) -> None:
|
|
108
212
|
super().__init__(options)
|
|
@@ -115,7 +219,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
115
219
|
range.setLowerCanId(self.getChildElementOptionalNumericalValue(child_element, "LOWER-CAN-ID")) \
|
|
116
220
|
.setUpperCanId(self.getChildElementOptionalNumericalValue(child_element, "UPPER-CAN-ID"))
|
|
117
221
|
return range
|
|
118
|
-
|
|
222
|
+
|
|
119
223
|
def readSd(self, element: ET.Element, sdg: Sdg):
|
|
120
224
|
for child_element in self.findall(element, "./SD"):
|
|
121
225
|
sd = Sd()
|
|
@@ -124,12 +228,12 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
124
228
|
sd.setValue(child_element.text)
|
|
125
229
|
sdg.addSd(sd)
|
|
126
230
|
|
|
127
|
-
def readSdgCaption(self, element: ET.Element, sdg:Sdg):
|
|
231
|
+
def readSdgCaption(self, element: ET.Element, sdg: Sdg):
|
|
128
232
|
child_element = self.find(element, "SDG-CAPTION")
|
|
129
233
|
if child_element is not None:
|
|
130
234
|
sdg.createSdgCaption(self.getShortName(child_element))
|
|
131
235
|
|
|
132
|
-
def readSdgSdxRefs(self, element: ET.SubElement, sdg:Sdg):
|
|
236
|
+
def readSdgSdxRefs(self, element: ET.SubElement, sdg: Sdg):
|
|
133
237
|
for ref in self.getChildElementRefTypeList(element, "SDX-REF"):
|
|
134
238
|
sdg.addSdxRef(ref)
|
|
135
239
|
|
|
@@ -143,16 +247,20 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
143
247
|
sdg.addSdgContentsType(self.getSdg(child_element))
|
|
144
248
|
self.readSdgSdxRefs(element, sdg)
|
|
145
249
|
return sdg
|
|
146
|
-
|
|
250
|
+
|
|
147
251
|
def readSdgs(self, element: ET.Element, admin_data: AdminData):
|
|
148
|
-
for child_element in self.findall(element, "SDGS
|
|
149
|
-
|
|
252
|
+
for child_element in self.findall(element, "SDGS/*"):
|
|
253
|
+
tag_name = self.getTagName(child_element)
|
|
254
|
+
if tag_name == "SDG":
|
|
255
|
+
admin_data.addSdg(self.getSdg(child_element))
|
|
256
|
+
else:
|
|
257
|
+
self.notImplemented("Unsupported SDG <%s>" % tag_name)
|
|
150
258
|
|
|
151
259
|
def getAdminData(self, element: ET.Element, key: str) -> AdminData:
|
|
152
260
|
admin_data = None
|
|
153
261
|
child_element = self.find(element, key)
|
|
154
262
|
if child_element is not None:
|
|
155
|
-
self.logger.debug("
|
|
263
|
+
# self.logger.debug("Read AdminData")
|
|
156
264
|
admin_data = AdminData()
|
|
157
265
|
admin_data.setLanguage(self.getChildElementOptionalLiteral(child_element, "LANGUAGE")) \
|
|
158
266
|
.setUsedLanguages(self.getMultiLanguagePlainText(child_element, "USED-LANGUAGES"))
|
|
@@ -176,8 +284,11 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
176
284
|
identifiable.setCategory(self.getChildElementOptionalLiteral(element, "CATEGORY")) \
|
|
177
285
|
.setDesc(self.getMultiLanguageOverviewParagraph(element, "DESC")) \
|
|
178
286
|
.setIntroduction(self.getDocumentationBlock(element, "INTRODUCTION"))
|
|
179
|
-
|
|
287
|
+
|
|
180
288
|
identifiable.setAdminData(self.getAdminData(element, "ADMIN-DATA"))
|
|
289
|
+
|
|
290
|
+
def readARElement(self, element: ET.Element, ar_element: ARElement):
|
|
291
|
+
self.readIdentifiable(element, ar_element)
|
|
181
292
|
|
|
182
293
|
def readLLongName(self, element: ET.Element, long_name: MultilanguageLongName):
|
|
183
294
|
for child_element in self.findall(element, "L-4"):
|
|
@@ -185,7 +296,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
185
296
|
self.readARObjectAttributes(child_element, l4)
|
|
186
297
|
l4.value = child_element.text
|
|
187
298
|
if 'L' in child_element.attrib:
|
|
188
|
-
l4.l = child_element.attrib['L']
|
|
299
|
+
l4.l = child_element.attrib['L'] # noqa: E741
|
|
189
300
|
long_name.addL4(l4)
|
|
190
301
|
|
|
191
302
|
def getMultilanguageLongName(self, element: ET.Element, key: str) -> MultilanguageLongName:
|
|
@@ -203,7 +314,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
203
314
|
self.readARObjectAttributes(child_element, l2)
|
|
204
315
|
l2.value = child_element.text
|
|
205
316
|
if 'L' in child_element.attrib:
|
|
206
|
-
l2.l = child_element.attrib['L']
|
|
317
|
+
l2.l = child_element.attrib['L'] # noqa: E741
|
|
207
318
|
paragraph.addL2(l2)
|
|
208
319
|
|
|
209
320
|
def getMultiLanguageOverviewParagraph(self, element: ET.Element, key: str) -> MultiLanguageOverviewParagraph:
|
|
@@ -216,37 +327,37 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
216
327
|
return paragraph
|
|
217
328
|
|
|
218
329
|
def getVariableInAtomicSWCTypeInstanceRef(self, element: ET.Element) -> VariableInAtomicSWCTypeInstanceRef:
|
|
219
|
-
|
|
330
|
+
instance_ref = None
|
|
220
331
|
if element is not None:
|
|
221
|
-
|
|
222
|
-
self.readARObjectAttributes(element,
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
return
|
|
332
|
+
instance_ref = VariableInAtomicSWCTypeInstanceRef()
|
|
333
|
+
self.readARObjectAttributes(element, instance_ref)
|
|
334
|
+
instance_ref.setPortPrototypeRef(self.getChildElementOptionalRefType(element, "PORT-PROTOTYPE-REF"))
|
|
335
|
+
instance_ref.setTargetDataPrototypeRef(self.getChildElementOptionalRefType(element, "TARGET-DATA-PROTOTYPE-REF"))
|
|
336
|
+
return instance_ref
|
|
226
337
|
|
|
227
338
|
def getComponentInSystemInstanceRef(self, element: ET.Element) -> ComponentInSystemInstanceRef:
|
|
228
|
-
|
|
339
|
+
instance_ref = None
|
|
229
340
|
if element is not None:
|
|
230
|
-
|
|
231
|
-
self.readARObjectAttributes(element,
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
return
|
|
341
|
+
instance_ref = ComponentInSystemInstanceRef()
|
|
342
|
+
self.readARObjectAttributes(element, instance_ref)
|
|
343
|
+
instance_ref.setBaseRef(self.getChildElementOptionalRefType(element, "BASE-REF"))
|
|
344
|
+
instance_ref.setContextCompositionRef(self.getChildElementOptionalRefType(element, "CONTEXT-COMPOSITION-REF"))
|
|
345
|
+
instance_ref.setTargetComponentRef(self.getChildElementOptionalRefType(element, "TARGET-COMPONENT-REF"))
|
|
346
|
+
return instance_ref
|
|
236
347
|
|
|
237
|
-
def getAutosarVariableRef(self, element: ET.Element, key: str) ->
|
|
348
|
+
def getAutosarVariableRef(self, element: ET.Element, key: str) -> AutosarVariableRef:
|
|
238
349
|
child_element = self.find(element, key)
|
|
239
|
-
|
|
350
|
+
instance_ref = None
|
|
240
351
|
if (child_element is not None):
|
|
241
|
-
|
|
242
|
-
#self.readARObjectAttributes(child_element, ref)
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
return
|
|
352
|
+
instance_ref = AutosarVariableRef()
|
|
353
|
+
# self.readARObjectAttributes(child_element, ref)
|
|
354
|
+
instance_ref.setAutosarVariableIRef(self.getVariableInAtomicSWCTypeInstanceRef(self.find(child_element, "AUTOSAR-VARIABLE-IREF"))) \
|
|
355
|
+
.setLocalVariableRef(self.getChildElementOptionalRefType(child_element, "LOCAL-VARIABLE-REF"))
|
|
356
|
+
return instance_ref
|
|
246
357
|
|
|
247
|
-
def getLocalVariableRef(self, element: ET.Element, key: str) ->
|
|
358
|
+
def getLocalVariableRef(self, element: ET.Element, key: str) -> AutosarVariableRef:
|
|
248
359
|
child_element = self.find(element, key)
|
|
249
|
-
ref
|
|
360
|
+
ref = None
|
|
250
361
|
if (child_element is not None):
|
|
251
362
|
ref = AutosarVariableRef()
|
|
252
363
|
ref.setLocalVariableRef(self.getChildElementOptionalRefType(child_element, "LOCAL-VARIABLE-REF"))
|
|
@@ -284,31 +395,34 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
284
395
|
|
|
285
396
|
self.readIdentifiable(child_element, variable_access)
|
|
286
397
|
|
|
287
|
-
def
|
|
398
|
+
def readBswModuleDescriptionImplementedEntryRefs(self, element: ET.Element, parent: BswModuleDescription):
|
|
288
399
|
for child_element in self.findall(element, "PROVIDED-ENTRYS/BSW-MODULE-ENTRY-REF-CONDITIONAL"):
|
|
289
|
-
ref = self.getChildElementOptionalRefType(child_element, "BSW-MODULE-ENTRY-REF")
|
|
400
|
+
ref = self.getChildElementOptionalRefType(child_element, "BSW-MODULE-ENTRY-REF")
|
|
290
401
|
if (ref is not None):
|
|
291
|
-
parent.
|
|
402
|
+
parent.addImplementedEntryRef(ref)
|
|
292
403
|
self.logger.debug("ImplementedEntry <%s> of BswModuleDescription <%s> has been added", ref.value, parent.getShortName())
|
|
293
404
|
|
|
294
405
|
def readModeDeclarationGroupPrototype(self, element: ET.Element, prototype: ModeDeclarationGroupPrototype):
|
|
295
406
|
self.readIdentifiable(element, prototype)
|
|
296
|
-
prototype.
|
|
297
|
-
|
|
298
|
-
def readProvidedModeGroup(self, element: ET.Element, parent: BswModuleDescription):
|
|
299
|
-
for child_element in self.findall(element, "PROVIDED-MODE-GROUPS/MODE-DECLARATION-GROUP-PROTOTYPE"):
|
|
300
|
-
short_name = self.getShortName(child_element)
|
|
301
|
-
self.logger.debug("readProvidedModeGroup %s" % short_name)
|
|
407
|
+
prototype.setTypeTRef(self.getChildElementOptionalRefType(element, "TYPE-TREF"))
|
|
302
408
|
|
|
303
|
-
|
|
304
|
-
|
|
409
|
+
def readBswModuleDescriptionProvidedModeGroups(self, element: ET.Element, parent: BswModuleDescription):
|
|
410
|
+
for child_element in self.findall(element, "PROVIDED-MODE-GROUPS/*"):
|
|
411
|
+
tag_name = self.getTagName(child_element)
|
|
412
|
+
if tag_name == "MODE-DECLARATION-GROUP-PROTOTYPE":
|
|
413
|
+
mode_group = parent.createProvidedModeGroup(self.getShortName(child_element))
|
|
414
|
+
self.readModeDeclarationGroupPrototype(child_element, mode_group)
|
|
415
|
+
else:
|
|
416
|
+
self.notImplemented("Unsupported ProvidedModeGroup <%s>" % tag_name)
|
|
305
417
|
|
|
306
|
-
def
|
|
307
|
-
for child_element in self.findall(element, "REQUIRED-MODE-GROUPS
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
418
|
+
def readBswModuleDescriptionRequiredModeGroups(self, element: ET.Element, parent: BswModuleDescription):
|
|
419
|
+
for child_element in self.findall(element, "REQUIRED-MODE-GROUPS/*"):
|
|
420
|
+
tag_name = self.getTagName(child_element)
|
|
421
|
+
if tag_name == "MODE-DECLARATION-GROUP-PROTOTYPE":
|
|
422
|
+
prototype = parent.createProvidedModeGroup(self.getShortName(child_element))
|
|
423
|
+
self.readModeDeclarationGroupPrototype(child_element, prototype)
|
|
424
|
+
else:
|
|
425
|
+
self.notImplemented("Unsupported RequiredModeGroup <%s>" % tag_name)
|
|
312
426
|
|
|
313
427
|
def readCanEnterExclusiveAreaRefs(self, element: ET.Element, entity: ExecutableEntity):
|
|
314
428
|
for ref in self.getChildElementRefTypeList(element, "CAN-ENTER-EXCLUSIVE-AREA-REFS/CAN-ENTER-EXCLUSIVE-AREA-REF"):
|
|
@@ -321,8 +435,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
321
435
|
entity.setMinimumStartInterval(self.getChildElementOptionalFloatValue(element, "MINIMUM-START-INTERVAL")) \
|
|
322
436
|
.setSwAddrMethodRef(self.getChildElementOptionalRefType(element, "SW-ADDR-METHOD-REF"))
|
|
323
437
|
|
|
324
|
-
def
|
|
325
|
-
for child_element in self.findall(element, "
|
|
438
|
+
def readBswModuleEntityManagedModeGroups(self, element: ET.Element, entity: BswModuleEntity):
|
|
439
|
+
for child_element in self.findall(element, "MANAGED-MODE-GROUPS/MODE-DECLARATION-GROUP-PROTOTYPE-REF-CONDITIONAL"):
|
|
326
440
|
ref_type = self.getChildElementOptionalRefType(child_element, "MODE-DECLARATION-GROUP-PROTOTYPE-REF")
|
|
327
441
|
if ref_type is not None:
|
|
328
442
|
entity.addManagedModeGroupRef(ref_type)
|
|
@@ -381,10 +495,22 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
381
495
|
behavior.addDataTypeMappingRef(ref)
|
|
382
496
|
|
|
383
497
|
def readInternalBehaviorConstantMemories(self, element: ET.Element, behavior: InternalBehavior):
|
|
384
|
-
for child_element in self.findall(element, "CONSTANT-MEMORYS
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
498
|
+
for child_element in self.findall(element, "CONSTANT-MEMORYS/*"):
|
|
499
|
+
tag_name = self.getTagName(child_element)
|
|
500
|
+
if tag_name == "PARAMETER-DATA-PROTOTYPE":
|
|
501
|
+
prototype = behavior.createConstantMemory(self.getShortName(child_element))
|
|
502
|
+
self.readParameterDataPrototype(child_element, prototype)
|
|
503
|
+
else:
|
|
504
|
+
self.notImplemented("Unsupported constant memories <%s>" % tag_name)
|
|
505
|
+
|
|
506
|
+
def readInternalBehaviorStaticMemories(self, element: ET.Element, behavior: InternalBehavior):
|
|
507
|
+
for child_element in self.findall(element, "STATIC-MEMORYS/*"):
|
|
508
|
+
tag_name = self.getTagName(child_element)
|
|
509
|
+
if tag_name == "VARIABLE-DATA-PROTOTYPE":
|
|
510
|
+
prototype = behavior.createStaticMemory(self.getShortName(child_element))
|
|
511
|
+
self.readVariableDataPrototype(child_element, prototype)
|
|
512
|
+
else:
|
|
513
|
+
self.notImplemented("Unsupported static memories <%s>" % tag_name)
|
|
388
514
|
|
|
389
515
|
def readInternalBehavior(self, element: ET.Element, behavior: InternalBehavior):
|
|
390
516
|
self.readIdentifiable(element, behavior)
|
|
@@ -393,6 +519,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
393
519
|
short_name = self.getShortName(child_element)
|
|
394
520
|
behavior.createExclusiveArea(short_name)
|
|
395
521
|
self.readDataTypeMappingRefs(element, behavior)
|
|
522
|
+
self.readInternalBehaviorStaticMemories(element, behavior)
|
|
396
523
|
|
|
397
524
|
def getRoleBasedDataAssignment(self, element: ET.Element) -> RoleBasedDataAssignment:
|
|
398
525
|
assignment = RoleBasedDataAssignment()
|
|
@@ -439,10 +566,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
439
566
|
else:
|
|
440
567
|
self.raiseError("Unsupported assigned ports <%s>" % tag_name)
|
|
441
568
|
|
|
442
|
-
def readNvBlockNeeds(self, element: ET.Element,
|
|
443
|
-
|
|
444
|
-
needs = parent.createNvBlockNeeds(short_name)
|
|
445
|
-
self.logger.debug("read NvBlockNeeds %s" % short_name)
|
|
569
|
+
def readNvBlockNeeds(self, element: ET.Element, needs: NvBlockNeeds):
|
|
570
|
+
self.logger.debug("Read NvBlockNeeds <%s>" % needs.getShortName())
|
|
446
571
|
self.readIdentifiable(element, needs)
|
|
447
572
|
needs.setCalcRamBlockCrc(self.getChildElementOptionalBooleanValue(element, "CALC-RAM-BLOCK-CRC")) \
|
|
448
573
|
.setCheckStaticBlockId(self.getChildElementOptionalBooleanValue(element, "CHECK-STATIC-BLOCK-ID")) \
|
|
@@ -464,26 +589,23 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
464
589
|
.setWritingFrequency(self.getChildElementOptionalPositiveInteger(element, "WRITING-FREQUENCY")) \
|
|
465
590
|
.setWritingPriority(self.getChildElementOptionalLiteral(element, "WRITING-PRIORITY"))
|
|
466
591
|
|
|
467
|
-
def
|
|
468
|
-
short_name = self.getShortName(element)
|
|
469
|
-
needs = parent.createDiagnosticCommunicationManagerNeeds(short_name)
|
|
470
|
-
self.logger.debug("read DiagnosticCommunicationManagerNeeds %s" % short_name)
|
|
592
|
+
def readDiagnosticCapabilityElement(self, element: ET.Element, needs: DiagnosticCapabilityElement):
|
|
471
593
|
self.readIdentifiable(element, needs)
|
|
594
|
+
|
|
595
|
+
def readDiagnosticCommunicationManagerNeeds(self, element: ET.Element, needs: DiagnosticCommunicationManagerNeeds):
|
|
596
|
+
self.logger.debug("Read DiagnosticCommunicationManagerNeeds <%s>" % needs.getShortName())
|
|
597
|
+
self.readDiagnosticCapabilityElement(element, needs)
|
|
472
598
|
needs.setServiceRequestCallbackType(self.getChildElementOptionalLiteral(element, "SERVICE-REQUEST-CALLBACK-TYPE"))
|
|
473
599
|
|
|
474
|
-
def readDiagnosticRoutineNeeds(self, element: ET.Element,
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
self.logger.debug("read DiagnosticRoutineNeeds %s" % short_name)
|
|
478
|
-
self.readIdentifiable(element, needs)
|
|
600
|
+
def readDiagnosticRoutineNeeds(self, element: ET.Element, needs: DiagnosticRoutineNeeds):
|
|
601
|
+
self.logger.debug("Read DiagnosticRoutineNeeds %s" % needs.getShortName())
|
|
602
|
+
self.readDiagnosticCapabilityElement(element, needs)
|
|
479
603
|
needs.setDiagRoutineType(self.getChildElementOptionalLiteral(element, "DIAG-ROUTINE-TYPE")) \
|
|
480
604
|
.setRidNumber(self.getChildElementOptionalIntegerValue(element, "RID-NUMBER"))
|
|
481
605
|
|
|
482
|
-
def readDiagnosticValueNeeds(self, element: ET.Element,
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
self.logger.debug("read DiagnosticValueNeeds %s" % short_name)
|
|
486
|
-
self.readIdentifiable(element, needs)
|
|
606
|
+
def readDiagnosticValueNeeds(self, element: ET.Element, needs: DiagnosticValueNeeds):
|
|
607
|
+
self.logger.debug("Read DiagnosticValueNeeds %s" % needs.getShortName())
|
|
608
|
+
self.readDiagnosticCapabilityElement(element, needs)
|
|
487
609
|
needs.setDataLength(self.getChildElementOptionalPositiveInteger(element, "DATA-LENGTH")) \
|
|
488
610
|
.setDiagnosticValueAccess(self.getChildElementOptionalLiteral(element, "DIAGNOSTIC-VALUE-ACCESS")) \
|
|
489
611
|
.setDidNumber(self.getChildElementOptionalIntegerValue(element, "DID-NUMBER")) \
|
|
@@ -491,7 +613,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
491
613
|
.setProcessingStyle(self.getChildElementOptionalLiteral(element, "PROCESSING-STYLE"))
|
|
492
614
|
|
|
493
615
|
def readDiagEventDebounceMonitorInternal(self, element: ET.Element, algorithm: DiagEventDebounceMonitorInternal):
|
|
494
|
-
self.
|
|
616
|
+
self.readDiagnosticCapabilityElement(element, algorithm)
|
|
495
617
|
|
|
496
618
|
def readDiagEventDebounceAlgorithm(self, element: ET.Element, needs: DiagnosticEventNeeds):
|
|
497
619
|
for child_element in self.findall(element, "DIAG-EVENT-DEBOUNCE-ALGORITHM/*"):
|
|
@@ -502,54 +624,63 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
502
624
|
else:
|
|
503
625
|
self.notImplemented("Unsupported DiagEventDebounceAlgorithm <%s>" % tag_name)
|
|
504
626
|
|
|
505
|
-
def readDiagnosticEventNeeds(self, element: ET.Element,
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
self.logger.debug("Read DiagnosticEventNeeds %s" % short_name)
|
|
509
|
-
self.readIdentifiable(element, needs)
|
|
627
|
+
def readDiagnosticEventNeeds(self, element: ET.Element, needs: DiagnosticEventNeeds):
|
|
628
|
+
self.logger.debug("Read DiagnosticEventNeeds <%s>" % needs.getShortName())
|
|
629
|
+
self.readDiagnosticCapabilityElement(element, needs)
|
|
510
630
|
self.readDiagEventDebounceAlgorithm(element, needs)
|
|
511
631
|
needs.setDtcKind(self.getChildElementOptionalLiteral(element, "DTC-KIND")) \
|
|
512
632
|
.setUdsDtcNumber(self.getChildElementOptionalIntegerValue(element, "UDS-DTC-NUMBER"))
|
|
513
633
|
|
|
514
|
-
def readDiagnosticEventInfoNeeds(self, element: ET.Element,
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
self.
|
|
518
|
-
self.readIdentifiable(element, needs)
|
|
634
|
+
def readDiagnosticEventInfoNeeds(self, element: ET.Element, needs: DiagnosticEventInfoNeeds):
|
|
635
|
+
self.logger.debug("Read DiagnosticEventInfoNeeds <%s>" % needs.getShortName())
|
|
636
|
+
self.readDiagnosticCapabilityElement(element, needs)
|
|
637
|
+
needs.setDtcKind(self.getChildElementOptionalLiteral(element, "DTC-KIND"))
|
|
519
638
|
needs.setUdsDtcNumber(self.getChildElementOptionalPositiveInteger(element, "UDS-DTC-NUMBER"))
|
|
520
639
|
|
|
521
|
-
def readCryptoServiceNeeds(self, element: ET.Element,
|
|
522
|
-
|
|
523
|
-
needs = parent.createCryptoServiceNeeds(short_name)
|
|
524
|
-
self.logger.debug("Read DiagnosticValueNeeds %s" % short_name)
|
|
640
|
+
def readCryptoServiceNeeds(self, element: ET.Element, needs: CryptoServiceNeeds):
|
|
641
|
+
self.logger.debug("Read CryptoServiceNeeds <%s>" % needs.getShortName())
|
|
525
642
|
self.readIdentifiable(element, needs)
|
|
526
643
|
needs.setMaximumKeyLength(self.getChildElementOptionalPositiveInteger(element, "MAXIMUM-KEY-LENGTH"))
|
|
527
644
|
|
|
528
|
-
def readEcuStateMgrUserNeeds(self, element: ET.Element,
|
|
529
|
-
|
|
530
|
-
needs = parent.createEcuStateMgrUserNeeds(short_name)
|
|
531
|
-
self.logger.debug("read DiagnosticValueNeeds %s" % short_name)
|
|
645
|
+
def readEcuStateMgrUserNeeds(self, element: ET.Element, needs: EcuStateMgrUserNeeds):
|
|
646
|
+
self.logger.debug("Read EcuStateMgrUserNeeds %s" % needs.getShortName())
|
|
532
647
|
self.readIdentifiable(element, needs)
|
|
533
648
|
|
|
649
|
+
def readDtcStatusChangeNotificationNeeds(self, element: ET.Element, needs: DtcStatusChangeNotificationNeeds):
|
|
650
|
+
self.logger.debug("Read DtcStatusChangeNotificationNeeds %s" % needs.getShortName())
|
|
651
|
+
self.readDiagnosticCapabilityElement(element, needs)
|
|
652
|
+
needs.setDtcFormatType(self.getChildElementOptionalLiteral(element, "DTC-FORMAT-TYPE"))
|
|
653
|
+
|
|
534
654
|
def readSwcServiceDependencyServiceNeeds(self, element: ET.Element, parent: SwcServiceDependency):
|
|
535
655
|
for child_element in self.findall(element, "SERVICE-NEEDS/*"):
|
|
536
656
|
tag_name = self.getTagName(child_element)
|
|
537
657
|
if tag_name == "NV-BLOCK-NEEDS":
|
|
538
|
-
self.
|
|
658
|
+
needs = parent.createNvBlockNeeds(self.getShortName(child_element))
|
|
659
|
+
self.readNvBlockNeeds(child_element, needs)
|
|
539
660
|
elif tag_name == "DIAGNOSTIC-COMMUNICATION-MANAGER-NEEDS":
|
|
540
|
-
self.
|
|
661
|
+
needs = parent.createDiagnosticCommunicationManagerNeeds(self.getShortName(child_element))
|
|
662
|
+
self.readDiagnosticCommunicationManagerNeeds(child_element, needs)
|
|
541
663
|
elif tag_name == "DIAGNOSTIC-ROUTINE-NEEDS":
|
|
542
|
-
self.
|
|
664
|
+
needs = parent.createDiagnosticRoutineNeeds(self.getShortName(child_element))
|
|
665
|
+
self.readDiagnosticRoutineNeeds(child_element, needs)
|
|
543
666
|
elif tag_name == "DIAGNOSTIC-VALUE-NEEDS":
|
|
544
|
-
self.
|
|
667
|
+
needs = parent.createDiagnosticValueNeeds(self.getShortName(child_element))
|
|
668
|
+
self.readDiagnosticValueNeeds(child_element, needs)
|
|
545
669
|
elif tag_name == "DIAGNOSTIC-EVENT-NEEDS":
|
|
546
|
-
self.
|
|
670
|
+
needs = parent.createDiagnosticEventNeeds(self.getShortName(child_element))
|
|
671
|
+
self.readDiagnosticEventNeeds(child_element, needs)
|
|
547
672
|
elif tag_name == "DIAGNOSTIC-EVENT-INFO-NEEDS":
|
|
548
|
-
self.
|
|
673
|
+
needs = parent.createDiagnosticEventInfoNeeds(self.getShortName(child_element))
|
|
674
|
+
self.readDiagnosticEventInfoNeeds(child_element, needs)
|
|
549
675
|
elif tag_name == "CRYPTO-SERVICE-NEEDS":
|
|
550
|
-
self.
|
|
676
|
+
needs = parent.createCryptoServiceNeeds(self.getShortName(child_element))
|
|
677
|
+
self.readCryptoServiceNeeds(child_element, needs)
|
|
551
678
|
elif tag_name == "ECU-STATE-MGR-USER-NEEDS":
|
|
552
|
-
self.
|
|
679
|
+
needs = parent.createEcuStateMgrUserNeeds(self.getShortName(child_element))
|
|
680
|
+
self.readEcuStateMgrUserNeeds(child_element, needs)
|
|
681
|
+
elif tag_name == "DTC-STATUS-CHANGE-NOTIFICATION-NEEDS":
|
|
682
|
+
needs = parent.createDtcStatusChangeNotificationNeeds(self.getShortName(child_element))
|
|
683
|
+
self.readDtcStatusChangeNotificationNeeds(child_element, needs)
|
|
553
684
|
else:
|
|
554
685
|
self.notImplemented("Unsupported service needs <%s>" % tag_name)
|
|
555
686
|
|
|
@@ -592,28 +723,47 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
592
723
|
prototype = behavior.createSharedParameter(short_name)
|
|
593
724
|
self.readParameterDataPrototype(child_element, prototype)
|
|
594
725
|
|
|
595
|
-
def
|
|
596
|
-
for
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
self.logger.debug("readSwcInternalBehavior %s" % behavior.full_name)
|
|
726
|
+
def readIncludedModeDeclarationGroupSet(self, element: ET.Element, group_set: IncludedModeDeclarationGroupSet):
|
|
727
|
+
for ref in self.getChildElementRefTypeList(element, "MODE-DECLARATION-GROUP-REFS/MODE-DECLARATION-GROUP-REF"):
|
|
728
|
+
group_set.addModeDeclarationGroupRef(ref)
|
|
729
|
+
group_set.setPrefix(self.getChildElementOptionalLiteral(element, "PREFIX"))
|
|
600
730
|
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
731
|
+
def readSwcInternalBehaviorIncludedModeDeclarationGroupSets(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
732
|
+
for child_element in self.findall(element, "INCLUDED-MODE-DECLARATION-GROUP-SETS/*"):
|
|
733
|
+
tag_name = self.getTagName(child_element)
|
|
734
|
+
if tag_name == "INCLUDED-MODE-DECLARATION-GROUP-SET":
|
|
735
|
+
group_set = IncludedModeDeclarationGroupSet()
|
|
736
|
+
self.readIncludedModeDeclarationGroupSet(child_element, group_set)
|
|
737
|
+
behavior.addIncludedModeDeclarationGroupSet(group_set)
|
|
738
|
+
else:
|
|
739
|
+
self.notImplemented("Unsupported IncludedModeDeclarationGroupSet <%s>" % tag_name)
|
|
740
|
+
|
|
741
|
+
def readSwcInternalBehavior(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
742
|
+
# read the internal behavior
|
|
743
|
+
self.readInternalBehavior(element, behavior)
|
|
744
|
+
|
|
745
|
+
# read the extra SwcInternalBehavior
|
|
746
|
+
self.readSwcInternalBehaviorArTypedPerInstanceMemories(element, behavior)
|
|
747
|
+
self.readSwcInternalBehaviorEvents(element, behavior)
|
|
748
|
+
self.readSwcInternalBehaviorExplicitInterRunnableVariables(element, behavior)
|
|
749
|
+
behavior.setHandleTerminationAndRestart(self.getChildElementOptionalLiteral(element, "HANDLE-TERMINATION-AND-RESTART"))
|
|
750
|
+
self.readSwcInternalBehaviorIncludedModeDeclarationGroupSets(element, behavior)
|
|
751
|
+
self.readSwcInternalBehaviorPerInstanceMemories(element, behavior)
|
|
752
|
+
self.readSwcInternalBehaviorPerInstanceParameters(element, behavior)
|
|
753
|
+
self.readSwcInternalBehaviorPortAPIOptions(element, behavior)
|
|
754
|
+
self.readSwcInternalBehaviorRunnables(element, behavior)
|
|
755
|
+
self.readSwcInternalBehaviorServiceDependencies(element, behavior)
|
|
756
|
+
self.readSwcInternalBehaviorSharedParameters(element, behavior)
|
|
757
|
+
behavior.setSupportsMultipleInstantiation(self.getChildElementOptionalBooleanValue(element, "SUPPORTS-MULTIPLE-INSTANTIATION"))
|
|
758
|
+
|
|
759
|
+
def readAtomicSwComponentTypeSwcInternalBehavior(self, element: ET.Element, parent: AtomicSwComponentType):
|
|
760
|
+
for child_element in self.findall(element, "INTERNAL-BEHAVIORS/*"):
|
|
761
|
+
tag_name = self.getTagName(child_element)
|
|
762
|
+
if tag_name == "SWC-INTERNAL-BEHAVIOR":
|
|
763
|
+
behavior = parent.createSwcInternalBehavior(self.getShortName(child_element))
|
|
764
|
+
self.readSwcInternalBehavior(child_element, behavior)
|
|
765
|
+
else:
|
|
766
|
+
self.notImplemented("Unsupported Internal Behaviors <%s>" % tag_name)
|
|
617
767
|
|
|
618
768
|
def getIncludedModeDeclarationGroupSets(self, element: ET.Element) -> List[IncludedModeDeclarationGroupSet]:
|
|
619
769
|
group_sets = []
|
|
@@ -624,10 +774,61 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
624
774
|
group_sets.append(group_set)
|
|
625
775
|
return group_sets
|
|
626
776
|
|
|
777
|
+
def readBswVariableAccess(self, element: ET.Element, access: BswVariableAccess):
|
|
778
|
+
self.readReferrable(element, access)
|
|
779
|
+
access.setAccessedVariableRef(self.getChildElementOptionalRefType(element, "ACCESSED-VARIABLE-REF"))
|
|
780
|
+
|
|
781
|
+
def readBswModuleEntityDataSendPoints(self, element: ET.Element, entity: BswModuleEntity):
|
|
782
|
+
for child_element in self.findall(element, "DATA-SEND-POINTS/*"):
|
|
783
|
+
tag_name = self.getTagName(child_element)
|
|
784
|
+
if tag_name == "BSW-VARIABLE-ACCESS":
|
|
785
|
+
point = entity.createDataSendPoint(self.getShortName(child_element))
|
|
786
|
+
self.readBswVariableAccess(child_element, point)
|
|
787
|
+
else:
|
|
788
|
+
self.notImplemented("Unsupported Data Send Point <%s>" % tag_name)
|
|
789
|
+
|
|
790
|
+
def readBswModuleEntityDataReceiverPoints(self, element: ET.Element, entity: BswModuleEntity):
|
|
791
|
+
for child_element in self.findall(element, "DATA-RECEIVE-POINTS/*"):
|
|
792
|
+
tag_name = self.getTagName(child_element)
|
|
793
|
+
if tag_name == "BSW-VARIABLE-ACCESS":
|
|
794
|
+
point = entity.createDataReceivePoint(self.getShortName(child_element))
|
|
795
|
+
self.readBswVariableAccess(child_element, point)
|
|
796
|
+
else:
|
|
797
|
+
self.notImplemented("Unsupported Data Receive Point <%s>" % tag_name)
|
|
798
|
+
|
|
799
|
+
def readBswModuleEntityIssuedTriggerRefs(self, element: ET.Element, entity: BswModuleEntity):
|
|
800
|
+
for ref in self.getChildElementRefTypeList(element, "ISSUED-TRIGGERS/TRIGGER-REF-CONDITIONAL/TRIGGER-REF"):
|
|
801
|
+
entity.addIssuedTriggerRef(ref)
|
|
802
|
+
|
|
803
|
+
def readBswModuleEntityActivationPointRefs(self, element: ET.Element, entity: BswModuleEntity):
|
|
804
|
+
for ref in self.getChildElementRefTypeList(element, "ACTIVATION-POINTS/BSW-INTERNAL-TRIGGERING-POINT-REF-CONDITIONAL/BSW-INTERNAL-TRIGGERING-POINT-REF"): # noqa E501
|
|
805
|
+
entity.addActivationPointRef(ref)
|
|
806
|
+
|
|
807
|
+
def readBswModuleCallPoint(self, element: ET.Element, point: BswModuleCallPoint):
|
|
808
|
+
self.readReferrable(element, point)
|
|
809
|
+
|
|
810
|
+
def readBswAsynchronousServerCallPoint(self, element: ET.Element, point: BswAsynchronousServerCallPoint):
|
|
811
|
+
self.readBswModuleCallPoint(element, point)
|
|
812
|
+
point.setCalledEntryRef(self.getChildElementOptionalRefType(element, "CALLED-ENTRY-REF"))
|
|
813
|
+
|
|
814
|
+
def readBswModuleEntityCallPoints(self, element: ET.Element, entity: BswModuleEntity):
|
|
815
|
+
for child_element in self.findall(element, "CALL-POINTS/*"):
|
|
816
|
+
tag_name = self.getTagName(child_element)
|
|
817
|
+
if tag_name == "BSW-ASYNCHRONOUS-SERVER-CALL-POINT":
|
|
818
|
+
point = entity.createBswAsynchronousServerCallPoint(self.getShortName(child_element))
|
|
819
|
+
self.readBswAsynchronousServerCallPoint(child_element, point)
|
|
820
|
+
else:
|
|
821
|
+
self.notImplemented("Unsupported Call Point <%s>" % tag_name)
|
|
822
|
+
|
|
627
823
|
def readBswModuleEntity(self, element: ET.Element, entity: BswModuleEntity):
|
|
628
824
|
self.readExecutableEntity(element, entity)
|
|
825
|
+
self.readBswModuleEntityActivationPointRefs(element, entity)
|
|
826
|
+
self.readBswModuleEntityCallPoints(element, entity)
|
|
827
|
+
self.readBswModuleEntityDataReceiverPoints(element, entity)
|
|
828
|
+
self.readBswModuleEntityDataSendPoints(element, entity)
|
|
629
829
|
entity.setImplementedEntryRef(self.getChildElementRefType(entity.getShortName(), element, "IMPLEMENTED-ENTRY-REF"))
|
|
630
|
-
self.
|
|
830
|
+
self.readBswModuleEntityManagedModeGroups(element, entity)
|
|
831
|
+
self.readBswModuleEntityIssuedTriggerRefs(element, entity)
|
|
631
832
|
|
|
632
833
|
def readBswCalledEntity(self, element: ET.Element, entity: BswCalledEntity):
|
|
633
834
|
self.logger.debug("read BswCalledEntity %s" % entity.getShortName())
|
|
@@ -649,7 +850,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
649
850
|
if tag_name == "BSW-CALLED-ENTITY":
|
|
650
851
|
entity = behavior.createBswCalledEntity(self.getShortName(child_element))
|
|
651
852
|
self.readBswCalledEntity(child_element, entity)
|
|
652
|
-
elif tag_name == "BSW-SCHEDULABLE-ENTITY":
|
|
853
|
+
elif tag_name == "BSW-SCHEDULABLE-ENTITY":
|
|
653
854
|
entity = behavior.createBswSchedulableEntity(self.getShortName(child_element))
|
|
654
855
|
self.readBswSchedulableEntity(child_element, entity)
|
|
655
856
|
elif tag_name == "BSW-INTERRUPT-ENTITY":
|
|
@@ -665,13 +866,17 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
665
866
|
self.readBswScheduleEvent(element, event)
|
|
666
867
|
event.setTriggerRef(self.getChildElementOptionalRefType(element, "TRIGGER-REF"))
|
|
667
868
|
|
|
869
|
+
def readBswOperationInvokedEvent(self, element: ET.Element, event: BswOperationInvokedEvent):
|
|
870
|
+
self.readBswEvent(element, event)
|
|
871
|
+
event.setEntryRef(self.getChildElementOptionalRefType(element, "ENTRY-REF"))
|
|
872
|
+
|
|
668
873
|
def readBswInternalBehaviorEvents(self, element: ET.Element, behavior: BswInternalBehavior):
|
|
669
874
|
for child_element in self.findall(element, "EVENTS/*"):
|
|
670
875
|
tag_name = self.getTagName(child_element)
|
|
671
876
|
if tag_name == "BSW-MODE-SWITCH-EVENT":
|
|
672
877
|
event = behavior.createBswModeSwitchEvent(self.getShortName(child_element))
|
|
673
878
|
self.readBswModeSwitchEvent(child_element, event)
|
|
674
|
-
elif tag_name == "BSW-TIMING-EVENT":
|
|
879
|
+
elif tag_name == "BSW-TIMING-EVENT":
|
|
675
880
|
event = behavior.createBswTimingEvent(self.getShortName(child_element))
|
|
676
881
|
self.readBswTimingEvent(child_element, event)
|
|
677
882
|
elif tag_name == "BSW-DATA-RECEIVED-EVENT":
|
|
@@ -686,35 +891,148 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
686
891
|
elif tag_name == "BSW-EXTERNAL-TRIGGER-OCCURRED-EVENT":
|
|
687
892
|
event = behavior.createBswExternalTriggerOccurredEvent(self.getShortName(child_element))
|
|
688
893
|
self.readBswExternalTriggerOccurredEvent(child_element, event)
|
|
894
|
+
elif tag_name == "BSW-OPERATION-INVOKED-EVENT":
|
|
895
|
+
event = behavior.createBswOperationInvokedEvent(self.getShortName(child_element))
|
|
896
|
+
self.readBswOperationInvokedEvent(child_element, event)
|
|
689
897
|
else:
|
|
690
898
|
self.notImplemented("Unsupported BswModuleEntity <%s>" % tag_name)
|
|
691
899
|
|
|
692
|
-
def
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
900
|
+
def readBswApiOptions(self, element: ET.Element, options: BswApiOptions):
|
|
901
|
+
self.readARObjectAttributes(element, options)
|
|
902
|
+
options.setEnableTakeAddress(self.getChildElementOptionalBooleanValue(element, "ENABLE-TAKE-ADDRESS"))
|
|
903
|
+
|
|
904
|
+
def readBswDataReceptionPolicy(self, element: ET.Element, policy: BswDataReceptionPolicy):
|
|
905
|
+
self.readBswApiOptions(element, policy)
|
|
906
|
+
policy.setReceivedDataRef(self.getChildElementOptionalRefType(element, "RECEIVED-DATA-REF"))
|
|
907
|
+
|
|
908
|
+
def readBswQueuedDataReceptionPolicy(self, element: ET.Element, policy: BswQueuedDataReceptionPolicy):
|
|
909
|
+
self.readBswDataReceptionPolicy(element, policy)
|
|
910
|
+
policy.setQueueLength(self.getChildElementOptionalPositiveInteger(element, "QUEUE-LENGTH"))
|
|
911
|
+
|
|
912
|
+
def readBswInternalBehaviorReceptionPolicies(self, element: ET.Element, behavior: BswInternalBehavior):
|
|
913
|
+
for child_element in self.findall(element, "RECEPTION-POLICYS/*"):
|
|
914
|
+
tag_name = self.getTagName(child_element)
|
|
915
|
+
if tag_name == "BSW-QUEUED-DATA-RECEPTION-POLICY":
|
|
916
|
+
policy = BswQueuedDataReceptionPolicy()
|
|
917
|
+
self.readBswQueuedDataReceptionPolicy(child_element, policy)
|
|
918
|
+
behavior.addReceptionPolicy(policy)
|
|
919
|
+
else:
|
|
920
|
+
self.notImplemented("Unsupported Reception Policies <%s>" % tag_name)
|
|
921
|
+
|
|
922
|
+
def readBswInternalTriggeringPoint(self, element: ET.Element, point: BswInternalTriggeringPoint):
|
|
923
|
+
self.readIdentifiable(element, point)
|
|
924
|
+
|
|
925
|
+
def readBswInternalBehaviorInternalTriggeringPoints(self, element: ET.Element, behavior: BswInternalBehavior):
|
|
926
|
+
for child_element in self.findall(element, "INTERNAL-TRIGGERING-POINTS/*"):
|
|
927
|
+
tag_name = self.getTagName(child_element)
|
|
928
|
+
if tag_name == "BSW-INTERNAL-TRIGGERING-POINT":
|
|
929
|
+
point = behavior.createBswInternalTriggeringPoint(self.getShortName(child_element))
|
|
930
|
+
self.readBswInternalTriggeringPoint(child_element, point)
|
|
931
|
+
else:
|
|
932
|
+
self.notImplemented("Unsupported Internal Triggering Points <%s>" % tag_name)
|
|
933
|
+
|
|
934
|
+
def readBswInternalBehavior(self, element: ET.Element, behavior: BswInternalBehavior):
|
|
935
|
+
self.logger.debug("Read BswInternalBehavior <%s>" % behavior.full_name)
|
|
936
|
+
|
|
937
|
+
# read the internal behavior
|
|
938
|
+
self.readInternalBehavior(element, behavior)
|
|
939
|
+
self.readBswInternalBehaviorInternalTriggeringPoints(element, behavior)
|
|
940
|
+
self.readBswInternalBehaviorEntities(element, behavior)
|
|
941
|
+
self.readBswInternalBehaviorEvents(element, behavior)
|
|
942
|
+
self.readBswInternalBehaviorModeSenderPolicy(element, behavior)
|
|
943
|
+
for group_set in self.getIncludedModeDeclarationGroupSets(element):
|
|
944
|
+
behavior.addIncludedModeDeclarationGroupSet(group_set)
|
|
945
|
+
self.readBswInternalBehaviorReceptionPolicies(element, behavior)
|
|
946
|
+
|
|
947
|
+
def readBswModuleDescriptionBswInternalBehaviors(self, element: ET.Element, desc: BswModuleDescription):
|
|
948
|
+
for child_element in self.findall(element, "INTERNAL-BEHAVIORS/*"):
|
|
949
|
+
tag_name = self.getTagName(child_element)
|
|
950
|
+
if tag_name == "BSW-INTERNAL-BEHAVIOR":
|
|
951
|
+
behavior = desc.createBswInternalBehavior(self.getShortName(child_element))
|
|
952
|
+
self.readBswInternalBehavior(child_element, behavior)
|
|
953
|
+
else:
|
|
954
|
+
self.notImplemented("Unsupported Internal Behavior <%s>" % tag_name)
|
|
955
|
+
|
|
956
|
+
def readTrigger(self, element: ET.Element, trigger: Trigger):
|
|
957
|
+
self.readIdentifiable(element, trigger)
|
|
958
|
+
|
|
959
|
+
def readBswModuleDescriptionReleasedTriggers(self, element: ET.Element, desc: BswModuleDescription):
|
|
960
|
+
for child_element in self.findall(element, "RELEASED-TRIGGERS/*"):
|
|
961
|
+
tag_name = self.getTagName(child_element)
|
|
962
|
+
if tag_name == "TRIGGER":
|
|
963
|
+
trigger = desc.createReleasedTrigger(self.getShortName(child_element))
|
|
964
|
+
self.readTrigger(child_element, trigger)
|
|
965
|
+
else:
|
|
966
|
+
self.notImplemented("Unsupported Released Trigger <%s>" % tag_name)
|
|
967
|
+
|
|
968
|
+
def readBswModuleDescriptionRequiredTriggers(self, element: ET.Element, desc: BswModuleDescription):
|
|
969
|
+
for child_element in self.findall(element, "REQUIRED-TRIGGERS/*"):
|
|
970
|
+
tag_name = self.getTagName(child_element)
|
|
971
|
+
if tag_name == "TRIGGER":
|
|
972
|
+
trigger = desc.createRequiredTrigger(self.getShortName(child_element))
|
|
973
|
+
self.readTrigger(child_element, trigger)
|
|
974
|
+
else:
|
|
975
|
+
self.notImplemented("Unsupported Required Trigger <%s>" % tag_name)
|
|
976
|
+
|
|
977
|
+
def readBswModuleDescriptionProvidedDatas(self, element: ET.Element, desc: BswModuleDescription):
|
|
978
|
+
for child_element in self.findall(element, "PROVIDED-DATAS/*"):
|
|
979
|
+
tag_name = self.getTagName(child_element)
|
|
980
|
+
if tag_name == "VARIABLE-DATA-PROTOTYPE":
|
|
981
|
+
data = desc.createProvidedData(self.getShortName(child_element))
|
|
982
|
+
self.readVariableDataPrototype(child_element, data)
|
|
983
|
+
else:
|
|
984
|
+
self.notImplemented("Unsupported Provided Data <%s>" % tag_name)
|
|
985
|
+
|
|
986
|
+
def readBswModuleDescriptionRequiredDatas(self, element: ET.Element, desc: BswModuleDescription):
|
|
987
|
+
for child_element in self.findall(element, "REQUIRED-DATAS/*"):
|
|
988
|
+
tag_name = self.getTagName(child_element)
|
|
989
|
+
if tag_name == "VARIABLE-DATA-PROTOTYPE":
|
|
990
|
+
data = desc.createRequiredData(self.getShortName(child_element))
|
|
991
|
+
self.readVariableDataPrototype(child_element, data)
|
|
992
|
+
else:
|
|
993
|
+
self.notImplemented("Unsupported Required Data <%s>" % tag_name)
|
|
994
|
+
|
|
995
|
+
def readBswModuleClientServerEntry(self, element: ET.Element, entry: BswModuleClientServerEntry):
|
|
996
|
+
self.readReferrable(element, entry)
|
|
997
|
+
entry.setEncapsulatedEntryRef(self.getChildElementOptionalRefType(element, "ENCAPSULATED-ENTRY-REF")) \
|
|
998
|
+
.setIsReentrant(self.getChildElementOptionalBooleanValue(element, "IS-REENTRANT")) \
|
|
999
|
+
.setIsSynchronous(self.getChildElementOptionalBooleanValue(element, "IS-SYNCHRONOUS"))
|
|
1000
|
+
|
|
1001
|
+
def readBswModuleDescriptionProvidedClientServerEntries(self, element: ET.Element, desc: BswModuleDescription):
|
|
1002
|
+
for child_element in self.findall(element, "PROVIDED-CLIENT-SERVER-ENTRYS/*"):
|
|
1003
|
+
tag_name = self.getTagName(child_element)
|
|
1004
|
+
if tag_name == "BSW-MODULE-CLIENT-SERVER-ENTRY":
|
|
1005
|
+
entry = desc.createProvidedClientServerEntry(self.getShortName(child_element))
|
|
1006
|
+
self.readBswModuleClientServerEntry(child_element, entry)
|
|
1007
|
+
else:
|
|
1008
|
+
self.notImplemented("Unsupported Provided Client Server Entry <%s>" % tag_name)
|
|
1009
|
+
|
|
1010
|
+
def readBswModuleDescriptionRequiredClientServerEntries(self, element: ET.Element, desc: BswModuleDescription):
|
|
1011
|
+
for child_element in self.findall(element, "REQUIRED-CLIENT-SERVER-ENTRYS/*"):
|
|
1012
|
+
tag_name = self.getTagName(child_element)
|
|
1013
|
+
if tag_name == "BSW-MODULE-CLIENT-SERVER-ENTRY":
|
|
1014
|
+
entry = desc.createRequiredClientServerEntry(self.getShortName(child_element))
|
|
1015
|
+
self.readBswModuleClientServerEntry(child_element, entry)
|
|
1016
|
+
else:
|
|
1017
|
+
self.notImplemented("Unsupported Required Client Server Entry <%s>" % tag_name)
|
|
705
1018
|
|
|
706
1019
|
def readBswModuleDescription(self, element: ET.Element, desc: BswModuleDescription):
|
|
707
1020
|
self.logger.debug("Read BswModuleDescription <%s>" % desc.getShortName())
|
|
708
1021
|
|
|
709
1022
|
self.readIdentifiable(element, desc)
|
|
710
1023
|
desc.setModuleId(self.getChildElementOptionalNumericalValue(element, "MODULE-ID"))
|
|
711
|
-
self.
|
|
712
|
-
self.
|
|
713
|
-
self.
|
|
714
|
-
self.
|
|
1024
|
+
self.readBswModuleDescriptionImplementedEntryRefs(element, desc)
|
|
1025
|
+
self.readBswModuleDescriptionProvidedModeGroups(element, desc)
|
|
1026
|
+
self.readBswModuleDescriptionRequiredModeGroups(element, desc)
|
|
1027
|
+
self.readBswModuleDescriptionProvidedClientServerEntries(element, desc)
|
|
1028
|
+
self.readBswModuleDescriptionRequiredClientServerEntries(element, desc)
|
|
1029
|
+
self.readBswModuleDescriptionProvidedDatas(element, desc)
|
|
1030
|
+
self.readBswModuleDescriptionRequiredDatas(element, desc)
|
|
1031
|
+
self.readBswModuleDescriptionBswInternalBehaviors(element, desc)
|
|
1032
|
+
self.readBswModuleDescriptionRequiredTriggers(element, desc)
|
|
715
1033
|
|
|
716
1034
|
def readSwServiceArg(self, element: ET.Element, arg: SwServiceArg):
|
|
717
|
-
self.
|
|
1035
|
+
self.readIdentifiable(element, arg)
|
|
718
1036
|
arg.setDirection(self.getChildElementOptionalLiteral(element, "DIRECTION")) \
|
|
719
1037
|
.setSwDataDefProps(self.getSwDataDefProps(element, "SW-DATA-DEF-PROPS"))
|
|
720
1038
|
|
|
@@ -757,7 +1075,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
757
1075
|
if tag_name == "AUTOSAR-ENGINEERING-OBJECT":
|
|
758
1076
|
code_desc.addArtifactDescriptor(self.getAutosarEngineeringObject(child_element))
|
|
759
1077
|
else:
|
|
760
|
-
self.
|
|
1078
|
+
self.notImplemented("Unsupported Artifact Descriptor <%s>" % tag_name)
|
|
761
1079
|
|
|
762
1080
|
def readCodeDescriptor(self, element: ET.Element, impl: Implementation):
|
|
763
1081
|
for child_element in self.findall(element, "CODE-DESCRIPTORS/CODE"):
|
|
@@ -778,7 +1096,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
778
1096
|
memory_section = consumption.createMemorySection(self.getShortName(child_element))
|
|
779
1097
|
self.readIdentifiable(child_element, memory_section)
|
|
780
1098
|
memory_section.setAlignment(self.getChildElementOptionalLiteral(child_element, "ALIGNMENT")) \
|
|
781
|
-
.setMemClassSymbol(self.getChildElementOptionalLiteral(child_element, "MEM-CLASS-SYMBOL"))
|
|
1099
|
+
.setMemClassSymbol(self.getChildElementOptionalLiteral(child_element, "MEM-CLASS-SYMBOL"))
|
|
782
1100
|
self.readMemorySectionOptions(child_element, memory_section)
|
|
783
1101
|
memory_section.setSize(self.getChildElementOptionalNumericalValue(child_element, "SIZE")) \
|
|
784
1102
|
.setSwAddrMethodRef(self.getChildElementOptionalRefType(child_element, "SW-ADDRMETHOD-REF")) \
|
|
@@ -830,7 +1148,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
830
1148
|
self.logger.debug("Read BswImplementation <%s>" % impl.getShortName())
|
|
831
1149
|
self.readImplementation(element, impl)
|
|
832
1150
|
impl.setArReleaseVersion(self.getChildElementOptionalLiteral(element, "AR-RELEASE-VERSION")) \
|
|
833
|
-
.setBehaviorRef(self.getChildElementOptionalRefType(element, "BEHAVIOR-REF"))
|
|
1151
|
+
.setBehaviorRef(self.getChildElementOptionalRefType(element, "BEHAVIOR-REF")) \
|
|
1152
|
+
.setVendorApiInfix(self.getChildElementOptionalLiteral(element, "VENDOR-API-INFIX"))
|
|
834
1153
|
self.readBswImplementationVendorSpecificModuleDefRefs(element, impl)
|
|
835
1154
|
AUTOSAR.getInstance().addImplementationBehaviorMap(impl.getFullName(), impl.getBehaviorRef().getValue())
|
|
836
1155
|
|
|
@@ -840,19 +1159,19 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
840
1159
|
impl.setBehaviorRef(self.getChildElementOptionalRefType(element, "BEHAVIOR-REF"))
|
|
841
1160
|
AUTOSAR.getInstance().addImplementationBehaviorMap(impl.getFullName(), impl.getBehaviorRef().getValue())
|
|
842
1161
|
|
|
843
|
-
def
|
|
1162
|
+
def readRunnableEntityDataReceivePointByArguments(self, element, parent: RunnableEntity):
|
|
844
1163
|
self._readVariableAccesses(element, parent, "DATA-RECEIVE-POINT-BY-ARGUMENTS")
|
|
845
1164
|
|
|
846
|
-
def
|
|
1165
|
+
def readRunnableEntityDataReceivePointByValues(self, element: ET.Element, parent: RunnableEntity):
|
|
847
1166
|
self._readVariableAccesses(element, parent, "DATA-RECEIVE-POINT-BY-VALUES")
|
|
848
1167
|
|
|
849
|
-
def
|
|
1168
|
+
def readRunnableEntityDataReadAccesses(self, element: ET.Element, parent: RunnableEntity):
|
|
850
1169
|
self._readVariableAccesses(element, parent, "DATA-READ-ACCESSS")
|
|
851
1170
|
|
|
852
|
-
def
|
|
1171
|
+
def readRunnableEntityDataWriteAccesses(self, element: ET.Element, parent: RunnableEntity):
|
|
853
1172
|
self._readVariableAccesses(element, parent, "DATA-WRITE-ACCESSS")
|
|
854
1173
|
|
|
855
|
-
def
|
|
1174
|
+
def readRunnableEntityDataSendPoints(self, element: ET.Element, parent: RunnableEntity):
|
|
856
1175
|
self._readVariableAccesses(element, parent, "DATA-SEND-POINTS")
|
|
857
1176
|
|
|
858
1177
|
def getRunnableEntityArgument(self, element: ET.Element) -> RunnableEntityArgument:
|
|
@@ -868,17 +1187,17 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
868
1187
|
parameter.setLocalParameterRef(self.getChildElementOptionalRefType(child_element, "LOCAL-PARAMETER-REF"))
|
|
869
1188
|
return parameter
|
|
870
1189
|
|
|
871
|
-
def
|
|
1190
|
+
def readRunnableEntityParameterAccesses(self, element: ET.Element, parent: RunnableEntity):
|
|
872
1191
|
for child_element in self.findall(element, "PARAMETER-ACCESSS/PARAMETER-ACCESS"):
|
|
873
1192
|
short_name = self.getShortName(child_element)
|
|
874
1193
|
self.logger.debug("readParameterAccesses %s" % short_name)
|
|
875
1194
|
parameter_access = parent.createParameterAccess(short_name)
|
|
876
1195
|
parameter_access.setAccessedParameter(self.getAutosarParameterRef(child_element, "ACCESSED-PARAMETER"))
|
|
877
1196
|
|
|
878
|
-
def
|
|
1197
|
+
def readRunnableEntityWrittenLocalVariables(self, element: ET.Element, parent: RunnableEntity):
|
|
879
1198
|
self._readVariableAccesses(element, parent, "WRITTEN-LOCAL-VARIABLES")
|
|
880
1199
|
|
|
881
|
-
def
|
|
1200
|
+
def readRunnableEntityReadLocalVariables(self, element: ET.Element, parent: RunnableEntity):
|
|
882
1201
|
self._readVariableAccesses(element, parent, "READ-LOCAL-VARIABLES")
|
|
883
1202
|
|
|
884
1203
|
def readROperationIRef(self, element: ET.Element, key: str, parent: ServerCallPoint):
|
|
@@ -903,7 +1222,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
903
1222
|
mode_iref = RModeInAtomicSwcInstanceRef()
|
|
904
1223
|
mode_iref.setContextPortRef(self.getChildElementOptionalRefType(child_element, "CONTEXT-PORT-REF")) \
|
|
905
1224
|
.setContextModeDeclarationGroupPrototypeRef(self.getChildElementOptionalRefType(child_element, "CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF")) \
|
|
906
|
-
.setTargetModeDeclarationRef(self.getChildElementOptionalRefType(child_element, "TARGET-MODE-DECLARATION-REF"))
|
|
1225
|
+
.setTargetModeDeclarationRef(self.getChildElementOptionalRefType(child_element, "TARGET-MODE-DECLARATION-REF")) # NOQA E501
|
|
907
1226
|
parent.addModeIRef(mode_iref)
|
|
908
1227
|
|
|
909
1228
|
def readSynchronousServerCallPoint(self, element: ET.Element, parent: RunnableEntity):
|
|
@@ -922,7 +1241,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
922
1241
|
server_call_point.setTimeout(self.getChildElementOptionalFloatValue(element, "TIMEOUT"))
|
|
923
1242
|
self.readROperationIRef(element, "OPERATION-IREF", server_call_point)
|
|
924
1243
|
|
|
925
|
-
def
|
|
1244
|
+
def readRunnableEntityInternalBehaviorServerCallPoint(self, element: ET.Element, parent: RunnableEntity):
|
|
926
1245
|
for child_element in self.findall(element, "SERVER-CALL-POINTS/*"):
|
|
927
1246
|
tag_name = self.getTagName(child_element)
|
|
928
1247
|
if tag_name == "SYNCHRONOUS-SERVER-CALL-POINT":
|
|
@@ -932,48 +1251,73 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
932
1251
|
else:
|
|
933
1252
|
self.raiseError("Unsupported server call point type <%s>" % tag_name)
|
|
934
1253
|
|
|
935
|
-
def
|
|
1254
|
+
def readRunnableEntityInternalTriggeringPoints(self, element: ET.Element, parent: RunnableEntity):
|
|
936
1255
|
for child_element in self.findall(element, "INTERNAL-TRIGGERING-POINTS/INTERNAL-TRIGGERING-POINT"):
|
|
937
1256
|
short_name = self.getShortName(child_element)
|
|
938
1257
|
point = parent.createInternalTriggeringPoint(short_name)
|
|
939
1258
|
point.sw_impl_policy = self.getChildElementOptionalLiteral(child_element, "SW-IMPL-POLICY")
|
|
940
1259
|
|
|
941
|
-
def
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
1260
|
+
def readModeGroupInAtomicSwcInstanceRef(self, element: ET.Element, instance_ref: ModeGroupInAtomicSwcInstanceRef):
|
|
1261
|
+
instance_ref.setBaseRef(self.getChildElementOptionalRefType(element, "BASE-REF")) \
|
|
1262
|
+
.setContextPortRef(self.getChildElementOptionalRefType(element, "CONTEXT-PORT-REF"))
|
|
1263
|
+
|
|
1264
|
+
def readRModeGroupInAtomicSWCInstanceRef(self, element: ET.Element, instance_ref: RModeGroupInAtomicSWCInstanceRef):
|
|
1265
|
+
self.readModeGroupInAtomicSwcInstanceRef(element, instance_ref)
|
|
1266
|
+
instance_ref.setContextRPortRef(self.getChildElementOptionalRefType(element, "CONTEXT-R-PORT-REF")) \
|
|
1267
|
+
.setTargetModeGroupRef(self.getChildElementOptionalRefType(element, "TARGET-MODE-GROUP-REF"))
|
|
1268
|
+
|
|
1269
|
+
def readPModeGroupInAtomicSWCInstanceRef(self, element: ET.Element, instance_ref: PModeGroupInAtomicSwcInstanceRef):
|
|
1270
|
+
self.readModeGroupInAtomicSwcInstanceRef(element, instance_ref)
|
|
1271
|
+
instance_ref.setContextPPortRef(self.getChildElementOptionalRefType(element, "CONTEXT-P-PORT-REF")) \
|
|
1272
|
+
.setTargetModeGroupRef(self.getChildElementOptionalRefType(element, "TARGET-MODE-GROUP-REF"))
|
|
1273
|
+
|
|
1274
|
+
def getModeGroupIRef(self, element: ET.Element, key: str) -> ModeGroupInAtomicSwcInstanceRef:
|
|
1275
|
+
instance_ref = None
|
|
1276
|
+
for child_element in self.findall(element, "%s/*" % key):
|
|
1277
|
+
tag_name = self.getTagName(child_element)
|
|
1278
|
+
if tag_name == "P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF":
|
|
1279
|
+
instance_ref = PModeGroupInAtomicSwcInstanceRef()
|
|
1280
|
+
self.readPModeGroupInAtomicSWCInstanceRef(child_element, instance_ref)
|
|
1281
|
+
elif tag_name == "R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF":
|
|
1282
|
+
instance_ref = RModeGroupInAtomicSWCInstanceRef()
|
|
1283
|
+
self.readRModeGroupInAtomicSWCInstanceRef(child_element, instance_ref)
|
|
1284
|
+
else:
|
|
1285
|
+
self.notImplemented("Unsupported Mode Group IRef <%s>" % tag_name)
|
|
1286
|
+
return instance_ref
|
|
1287
|
+
|
|
1288
|
+
def readModeAccessPoint(self, element: ET.Element, point: ModeAccessPoint):
|
|
1289
|
+
self.readARObjectAttributes(element, point)
|
|
1290
|
+
point.setModeGroupIRef(self.getModeGroupIRef(element, "MODE-GROUP-IREF"))
|
|
1291
|
+
|
|
1292
|
+
def readRunnableEntityModeAccessPoints(self, element: ET.Element, entity: RunnableEntity):
|
|
1293
|
+
for child_element in self.findall(element, "MODE-ACCESS-POINTS/*"):
|
|
1294
|
+
tag_name = self.getTagName(child_element)
|
|
1295
|
+
if tag_name == "MODE-ACCESS-POINT":
|
|
1296
|
+
point = ModeAccessPoint()
|
|
1297
|
+
self.readModeAccessPoint(child_element, point)
|
|
1298
|
+
entity.addModeAccessPoint(point)
|
|
1299
|
+
else:
|
|
1300
|
+
self.notImplemented("Unsupported Mode Access Point <%s>" % tag_name)
|
|
1301
|
+
|
|
1302
|
+
def readModeSwitchPointModeGroupIRef(self, element: ET.Element, point: ModeSwitchPoint):
|
|
959
1303
|
child_element = self.find(element, "MODE-GROUP-IREF")
|
|
960
|
-
iref = None
|
|
961
1304
|
if child_element is not None:
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
return iref
|
|
1305
|
+
instance_ref = PModeGroupInAtomicSwcInstanceRef()
|
|
1306
|
+
self.readPModeGroupInAtomicSWCInstanceRef(child_element, instance_ref)
|
|
1307
|
+
point.setModeGroupIRef(instance_ref)
|
|
966
1308
|
|
|
967
|
-
def
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
1309
|
+
def readModeSwitchPoint(self, element: ET.Element, point: ModeSwitchPoint):
|
|
1310
|
+
self.readARObjectAttributes(element, point)
|
|
1311
|
+
self.readModeSwitchPointModeGroupIRef(element, point)
|
|
1312
|
+
|
|
1313
|
+
def readRunnableEntityModeSwitchPoints(self, element: ET.Element, parent: RunnableEntity):
|
|
1314
|
+
for child_element in self.findall(element, "MODE-SWITCH-POINTS/*"):
|
|
1315
|
+
tag_name = self.getTagName(child_element)
|
|
1316
|
+
if tag_name == "MODE-SWITCH-POINT":
|
|
1317
|
+
point = parent.createModeSwitchPoint(self.getShortName(child_element))
|
|
1318
|
+
self.readModeSwitchPoint(child_element, point)
|
|
1319
|
+
else:
|
|
1320
|
+
self.notImplemented("Unsupported Mode Switch Point <%s>" % tag_name)
|
|
977
1321
|
|
|
978
1322
|
def readRunnableEntityArguments(self, element: ET.Element, entity: RunnableEntity):
|
|
979
1323
|
for child_element in self.findall(element, "ARGUMENTS/*"):
|
|
@@ -983,7 +1327,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
983
1327
|
else:
|
|
984
1328
|
self.notImplemented("Unsupported Arguments of runnable entity <%s>" % tag_name)
|
|
985
1329
|
|
|
986
|
-
def
|
|
1330
|
+
def readRunnableEntityAsynchronousServerCallResultPoint(self, element: ET.Element, entity: RunnableEntity):
|
|
987
1331
|
for child_element in self.findall(element, "ASYNCHRONOUS-SERVER-CALL-RESULT-POINTS/ASYNCHRONOUS-SERVER-CALL-RESULT-POINT"):
|
|
988
1332
|
point = entity.createAsynchronousServerCallResultPoint(self.getShortName(child_element))
|
|
989
1333
|
self.readIdentifiable(child_element, point)
|
|
@@ -993,38 +1337,39 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
993
1337
|
self.readExecutableEntity(element, entity)
|
|
994
1338
|
self.readRunnableEntityArguments(element, entity)
|
|
995
1339
|
|
|
996
|
-
self.
|
|
1340
|
+
self.readRunnableEntityAsynchronousServerCallResultPoint(element, entity)
|
|
997
1341
|
entity.setCanBeInvokedConcurrently(self.getChildElementOptionalBooleanValue(element, "CAN-BE-INVOKED-CONCURRENTLY"))
|
|
998
|
-
self.
|
|
999
|
-
self.
|
|
1000
|
-
self.
|
|
1001
|
-
self.
|
|
1002
|
-
self.
|
|
1003
|
-
self.
|
|
1004
|
-
self.
|
|
1005
|
-
self.
|
|
1006
|
-
self.
|
|
1007
|
-
self.
|
|
1008
|
-
self.
|
|
1009
|
-
self.
|
|
1342
|
+
self.readRunnableEntityDataReadAccesses(element, entity)
|
|
1343
|
+
self.readRunnableEntityDataReceivePointByArguments(element, entity)
|
|
1344
|
+
self.readRunnableEntityDataReceivePointByValues(element, entity)
|
|
1345
|
+
self.readRunnableEntityDataWriteAccesses(element, entity)
|
|
1346
|
+
self.readRunnableEntityDataSendPoints(element, entity)
|
|
1347
|
+
self.readRunnableEntityInternalBehaviorServerCallPoint(element, entity)
|
|
1348
|
+
self.readRunnableEntityInternalTriggeringPoints(element, entity)
|
|
1349
|
+
self.readRunnableEntityModeAccessPoints(element, entity)
|
|
1350
|
+
self.readRunnableEntityModeSwitchPoints(element, entity)
|
|
1351
|
+
self.readRunnableEntityParameterAccesses(element, entity)
|
|
1352
|
+
self.readRunnableEntityReadLocalVariables(element, entity)
|
|
1353
|
+
self.readRunnableEntityWrittenLocalVariables(element, entity)
|
|
1010
1354
|
|
|
1011
1355
|
entity.setSymbol(self.getChildElementOptionalLiteral(element, "SYMBOL"))
|
|
1012
1356
|
|
|
1013
1357
|
def readSwcInternalBehaviorRunnables(self, element: ET.Element, parent: SwcInternalBehavior):
|
|
1014
|
-
for child_element in self.findall(element, "RUNNABLES
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1358
|
+
for child_element in self.findall(element, "RUNNABLES/*"):
|
|
1359
|
+
tag_name = self.getTagName(child_element)
|
|
1360
|
+
if tag_name == "RUNNABLE-ENTITY":
|
|
1361
|
+
entity = parent.createRunnableEntity(self.getShortName(child_element))
|
|
1362
|
+
self.readRunnableEntity(child_element, entity)
|
|
1363
|
+
else:
|
|
1364
|
+
self.notImplemented("Unsupported Runnables <%s>" % tag_name)
|
|
1020
1365
|
|
|
1021
1366
|
def getRModeInAtomicSwcInstanceRef(self, element: ET.Element) -> RModeInAtomicSwcInstanceRef:
|
|
1022
|
-
|
|
1023
|
-
|
|
1367
|
+
instance_ref = RModeInAtomicSwcInstanceRef()
|
|
1368
|
+
instance_ref.setBaseRef(self.getChildElementOptionalRefType(element, "BASE-REF")) \
|
|
1024
1369
|
.setContextPortRef(self.getChildElementOptionalRefType(element, "CONTEXT-PORT-REF")) \
|
|
1025
1370
|
.setContextModeDeclarationGroupPrototypeRef(self.getChildElementOptionalRefType(element, "CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF")) \
|
|
1026
|
-
.setTargetModeDeclarationRef(self.getChildElementOptionalRefType(element, "TARGET-MODE-DECLARATION-REF"))
|
|
1027
|
-
return
|
|
1371
|
+
.setTargetModeDeclarationRef(self.getChildElementOptionalRefType(element, "TARGET-MODE-DECLARATION-REF")) # NOQA E501
|
|
1372
|
+
return instance_ref
|
|
1028
1373
|
|
|
1029
1374
|
def readRTEEvent(self, element: ET.Element, event: RTEEvent):
|
|
1030
1375
|
self.readIdentifiable(element, event)
|
|
@@ -1039,7 +1384,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1039
1384
|
operation_iref = POperationInAtomicSwcInstanceRef()
|
|
1040
1385
|
self.readARObjectAttributes(child_element, operation_iref)
|
|
1041
1386
|
operation_iref.setContextPPortRef(self.getChildElementRefType(parent.getShortName(), child_element, "CONTEXT-P-PORT-REF")) \
|
|
1042
|
-
.setTargetProvidedOperationRef(self.getChildElementRefType(parent.getShortName(), child_element, "TARGET-PROVIDED-OPERATION-REF"))
|
|
1387
|
+
.setTargetProvidedOperationRef(self.getChildElementRefType(parent.getShortName(), child_element, "TARGET-PROVIDED-OPERATION-REF")) # NOQA E501
|
|
1043
1388
|
parent.setOperationIRef(operation_iref)
|
|
1044
1389
|
|
|
1045
1390
|
def readOperationInvokedEvent(self, element: ET.Element, event: OperationInvokedEvent):
|
|
@@ -1051,13 +1396,13 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1051
1396
|
self.readAutosarDataPrototype(element, prototype)
|
|
1052
1397
|
prototype.setInitValue(self.getInitValue(element))
|
|
1053
1398
|
|
|
1054
|
-
def
|
|
1399
|
+
def readSwcInternalBehaviorExplicitInterRunnableVariables(self, element: ET.Element, parent: SwcInternalBehavior):
|
|
1055
1400
|
for child_element in self.findall(element, "EXPLICIT-INTER-RUNNABLE-VARIABLES/VARIABLE-DATA-PROTOTYPE"):
|
|
1056
1401
|
short_name = self.getShortName(child_element)
|
|
1057
1402
|
prototype = parent.createExplicitInterRunnableVariable(short_name)
|
|
1058
1403
|
self.readVariableDataPrototype(child_element, prototype)
|
|
1059
1404
|
|
|
1060
|
-
def
|
|
1405
|
+
def readSwcInternalBehaviorPerInstanceMemories(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1061
1406
|
for child_element in self.findall(element, "PER-INSTANCE-MEMORYS/PER-INSTANCE-MEMORY"):
|
|
1062
1407
|
short_name = self.getShortName(child_element)
|
|
1063
1408
|
memory = behavior.createPerInstanceMemory(short_name)
|
|
@@ -1072,11 +1417,10 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1072
1417
|
prototype.setTypeTRef(self.getChildElementOptionalRefType(element, "TYPE-TREF"))
|
|
1073
1418
|
|
|
1074
1419
|
def readParameterDataPrototype(self, element: ET.Element, prototype: ParameterDataPrototype):
|
|
1075
|
-
self.readIdentifiable(element, prototype)
|
|
1076
1420
|
self.readAutosarDataPrototype(element, prototype)
|
|
1077
1421
|
prototype.setInitValue(self.getInitValue(element))
|
|
1078
1422
|
|
|
1079
|
-
def
|
|
1423
|
+
def readSwcInternalBehaviorPerInstanceParameters(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1080
1424
|
for child_element in self.findall(element, "PER-INSTANCE-PARAMETERS/PARAMETER-DATA-PROTOTYPE"):
|
|
1081
1425
|
short_name = self.getShortName(child_element)
|
|
1082
1426
|
prototype = behavior.createPerInstanceParameter(short_name)
|
|
@@ -1090,7 +1434,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1090
1434
|
argument_value.setValueTypeTRef(self.getChildElementOptionalRefType(element, "VALUE-TYPE-TREF"))
|
|
1091
1435
|
return argument_value
|
|
1092
1436
|
|
|
1093
|
-
def
|
|
1437
|
+
def readSwcInternalBehaviorPortAPIOptions(self, element: ET.Element, behavior: SwcInternalBehavior):
|
|
1094
1438
|
for child_element in self.findall(element, "PORT-API-OPTIONS/PORT-API-OPTION"):
|
|
1095
1439
|
option = PortAPIOption()
|
|
1096
1440
|
option.setEnableTakeAddress(self.getChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS")) \
|
|
@@ -1195,7 +1539,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1195
1539
|
self.readARObjectAttributes(element, specific)
|
|
1196
1540
|
specific.value = element.text
|
|
1197
1541
|
if 'L' in element.attrib:
|
|
1198
|
-
specific.l = element.attrib['L']
|
|
1542
|
+
specific.l = element.attrib['L'] # noqa E741
|
|
1199
1543
|
|
|
1200
1544
|
def getLParagraphs(self, element: ET.Element, key: str) -> List[LParagraph]:
|
|
1201
1545
|
results = []
|
|
@@ -1204,7 +1548,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1204
1548
|
self.readLanguageSpecific(child_element, l1)
|
|
1205
1549
|
results.append(l1)
|
|
1206
1550
|
return results
|
|
1207
|
-
|
|
1551
|
+
|
|
1208
1552
|
def getMultiLanguageParagraphs(self, element: ET.Element, key: str) -> List[MultiLanguageParagraph]:
|
|
1209
1553
|
paragraphs = []
|
|
1210
1554
|
for child_element in self.findall(element, key):
|
|
@@ -1223,19 +1567,54 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1223
1567
|
results.append(l1)
|
|
1224
1568
|
return results
|
|
1225
1569
|
|
|
1226
|
-
def getListElements(self, element: ET.Element, key: str) -> List[
|
|
1570
|
+
def getListElements(self, element: ET.Element, key: str) -> List[ARList]:
|
|
1227
1571
|
'''
|
|
1228
1572
|
Read the DocumentationBlock List
|
|
1229
1573
|
'''
|
|
1230
1574
|
result = []
|
|
1231
1575
|
for child_element in self.findall(element, key):
|
|
1232
|
-
list =
|
|
1576
|
+
list = ARList()
|
|
1233
1577
|
if 'TYPE' in child_element.attrib:
|
|
1234
1578
|
list.setType(child_element.attrib['TYPE'])
|
|
1235
1579
|
for block in self.getDocumentationBlockList(child_element, "ITEM"):
|
|
1236
1580
|
list.addItem(block)
|
|
1237
1581
|
result.append(list)
|
|
1238
|
-
return result
|
|
1582
|
+
return result
|
|
1583
|
+
|
|
1584
|
+
def getGraphic(self, element: ET.Element, key: str) -> Graphic:
|
|
1585
|
+
graphic = None
|
|
1586
|
+
child_element = self.find(element, key)
|
|
1587
|
+
if child_element is not None:
|
|
1588
|
+
graphic = Graphic()
|
|
1589
|
+
if "FILENAME" in child_element.attrib:
|
|
1590
|
+
graphic.setFilename(child_element.attrib["FILENAME"])
|
|
1591
|
+
return graphic
|
|
1592
|
+
|
|
1593
|
+
def readMlFigureLGraphics(self, element: ET.Element, figure: MlFigure):
|
|
1594
|
+
for child_element in self.findall(element, "L-GRAPHIC"):
|
|
1595
|
+
graphic = LGraphic()
|
|
1596
|
+
if "L" in child_element.attrib:
|
|
1597
|
+
graphic.setL(child_element.attrib["L"])
|
|
1598
|
+
graphic.setGraphic(self.getGraphic(child_element, "GRAPHIC"))
|
|
1599
|
+
figure.addLGraphics(graphic)
|
|
1600
|
+
|
|
1601
|
+
def readDocumentViewSelectable(self, element: ET.Element, selectable: DocumentViewSelectable):
|
|
1602
|
+
self.readARObjectAttributes(element, selectable)
|
|
1603
|
+
|
|
1604
|
+
def readPaginateable(self, element: ET.Element, paginateable: Paginateable):
|
|
1605
|
+
self.readDocumentViewSelectable(element, paginateable)
|
|
1606
|
+
|
|
1607
|
+
def readMlFigure(self, element: ET.Element, figure: MlFigure):
|
|
1608
|
+
self.readPaginateable(element, figure)
|
|
1609
|
+
self.readMlFigureLGraphics(element, figure)
|
|
1610
|
+
|
|
1611
|
+
def getMlFigures(self, element: ET.Element, key: str) -> List[MlFigure]:
|
|
1612
|
+
result = []
|
|
1613
|
+
for child_element in self.findall(element, key):
|
|
1614
|
+
figure = MlFigure()
|
|
1615
|
+
self.readMlFigure(child_element, figure)
|
|
1616
|
+
result.append(figure)
|
|
1617
|
+
return result
|
|
1239
1618
|
|
|
1240
1619
|
def getMultiLanguagePlainText(self, element: ET.Element, key: str) -> MultiLanguagePlainText:
|
|
1241
1620
|
paragraph = None
|
|
@@ -1246,13 +1625,15 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1246
1625
|
for l10 in self.getLPlainTexts(child_element, "L-10"):
|
|
1247
1626
|
paragraph.addL10(l10)
|
|
1248
1627
|
return paragraph
|
|
1249
|
-
|
|
1628
|
+
|
|
1250
1629
|
def readDocumentationBlock(self, element: ET.Element, block: DocumentationBlock):
|
|
1251
1630
|
self.readARObjectAttributes(element, block)
|
|
1252
1631
|
for paragraph in self.getMultiLanguageParagraphs(element, "P"):
|
|
1253
1632
|
block.addP(paragraph)
|
|
1254
1633
|
for list in self.getListElements(element, "LIST"):
|
|
1255
1634
|
block.addList(list)
|
|
1635
|
+
for figure in self.getMlFigures(element, "FIGURE"):
|
|
1636
|
+
block.addFigure(figure)
|
|
1256
1637
|
|
|
1257
1638
|
def getDocumentationBlock(self, element: ET.Element, key: str) -> DocumentationBlock:
|
|
1258
1639
|
block = None
|
|
@@ -1277,10 +1658,14 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1277
1658
|
|
|
1278
1659
|
def getAnnotations(self, element: ET.Element) -> List[Annotation]:
|
|
1279
1660
|
annotations = []
|
|
1280
|
-
for child_element in self.findall(element, "ANNOTATIONS
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1661
|
+
for child_element in self.findall(element, "ANNOTATIONS/*"):
|
|
1662
|
+
tag_name = self.getTagName(child_element)
|
|
1663
|
+
if tag_name == "ANNOTATION":
|
|
1664
|
+
annotation = Annotation()
|
|
1665
|
+
self.readGeneralAnnotation(child_element, annotation)
|
|
1666
|
+
annotations.append(annotation)
|
|
1667
|
+
else:
|
|
1668
|
+
self.notImplemented("Unsupported Annotation <%s>" % tag_name)
|
|
1284
1669
|
return annotations
|
|
1285
1670
|
|
|
1286
1671
|
def getSwAxisIndividual(self, element: ET.Element) -> SwAxisIndividual:
|
|
@@ -1349,12 +1734,12 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1349
1734
|
.setSwPointerTargetProps(self.getSwPointerTargetProps(conditional_tag, "SW-POINTER-TARGET-PROPS")) \
|
|
1350
1735
|
.setSwRecordLayoutRef(self.getChildElementOptionalRefType(conditional_tag, "SW-RECORD-LAYOUT-REF")) \
|
|
1351
1736
|
.setValueAxisDataTypeRef(self.getChildElementOptionalRefType(conditional_tag, "VALUE-AXIS-DATA-TYPE-REF")) \
|
|
1352
|
-
.setUnitRef(self.getChildElementOptionalRefType(conditional_tag, "UNIT-REF"))
|
|
1737
|
+
.setUnitRef(self.getChildElementOptionalRefType(conditional_tag, "UNIT-REF"))
|
|
1353
1738
|
self.readSwDataDefProsInvalidValue(conditional_tag, sw_data_def_props)
|
|
1354
|
-
#self.readSwPointerTargetProps(conditional_tag, sw_data_def_props)
|
|
1739
|
+
# self.readSwPointerTargetProps(conditional_tag, sw_data_def_props)
|
|
1355
1740
|
self.readARObjectAttributes(conditional_tag, sw_data_def_props.conditional)
|
|
1356
1741
|
return sw_data_def_props
|
|
1357
|
-
|
|
1742
|
+
|
|
1358
1743
|
def readAutosarDataType(self, element: ET.Element, data_type: AutosarDataType):
|
|
1359
1744
|
self.readIdentifiable(element, data_type)
|
|
1360
1745
|
data_type.setSwDataDefProps(self.getSwDataDefProps(element, "SW-DATA-DEF-PROPS"))
|
|
@@ -1363,22 +1748,24 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1363
1748
|
self.logger.debug("Read ApplicationPrimitiveDataType <%s>" % data_type.getShortName())
|
|
1364
1749
|
self.readAutosarDataType(element, data_type)
|
|
1365
1750
|
|
|
1366
|
-
def
|
|
1367
|
-
|
|
1751
|
+
def readApplicationRecordElement(self, element: ET.Element, record_element: ApplicationRecordElement):
|
|
1752
|
+
self.logger.debug("read ApplicationRecordElement %s" % record_element.getShortName())
|
|
1753
|
+
self.readApplicationCompositeElementDataPrototype(element, record_element)
|
|
1368
1754
|
|
|
1369
|
-
def
|
|
1370
|
-
for child_element in self.findall(element, "ELEMENTS
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1755
|
+
def readApplicationRecordDataTypeElements(self, element: ET.Element, parent: ApplicationRecordDataType):
|
|
1756
|
+
for child_element in self.findall(element, "ELEMENTS/*"):
|
|
1757
|
+
tag_name = self.getTagName(child_element)
|
|
1758
|
+
if tag_name == "APPLICATION-RECORD-ELEMENT":
|
|
1759
|
+
record_element = parent.createApplicationRecordElement(self.getShortName(child_element))
|
|
1760
|
+
self.readApplicationRecordElement(child_element, record_element)
|
|
1761
|
+
else:
|
|
1762
|
+
self.notImplemented("Unsupported ApplicationRecordDataType Element <%s>" % tag_name)
|
|
1376
1763
|
|
|
1377
1764
|
def readApplicationRecordDataType(self, element: ET.Element, data_type: ApplicationRecordDataType):
|
|
1378
1765
|
self.logger.debug("Read ApplicationRecordDataType <%s>" % data_type.getShortName())
|
|
1379
1766
|
self.readIdentifiable(element, data_type)
|
|
1380
1767
|
data_type.setSwDataDefProps(self.getSwDataDefProps(element, "SW-DATA-DEF-PROPS"))
|
|
1381
|
-
self.
|
|
1768
|
+
self.readApplicationRecordDataTypeElements(element, data_type)
|
|
1382
1769
|
|
|
1383
1770
|
def readImplementationDataTypeElements(self, element: ET.Element, parent: ImplementationDataType):
|
|
1384
1771
|
for child_element in self.findall(element, "SUB-ELEMENTS/IMPLEMENTATION-DATA-TYPE-ELEMENT"):
|
|
@@ -1410,7 +1797,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1410
1797
|
self.readIdentifiable(element, data_type)
|
|
1411
1798
|
self.readBaseTypeDirectDefinition(element, data_type.getBaseTypeDefinition())
|
|
1412
1799
|
|
|
1413
|
-
def getApplicationCompositeElementInPortInterfaceInstanceRef(self, element: ET.Element, key:str)
|
|
1800
|
+
def getApplicationCompositeElementInPortInterfaceInstanceRef(self, element: ET.Element, key: str) \
|
|
1801
|
+
-> ApplicationCompositeElementInPortInterfaceInstanceRef:
|
|
1414
1802
|
child_element = self.find(element, key)
|
|
1415
1803
|
iref = None
|
|
1416
1804
|
if child_element is not None:
|
|
@@ -1480,7 +1868,6 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1480
1868
|
value_spec = None
|
|
1481
1869
|
child_element = self.find(element, "INIT-VALUE/*")
|
|
1482
1870
|
if child_element is not None:
|
|
1483
|
-
self.logger.debug("getInitValue")
|
|
1484
1871
|
value_spec = self.getValueSpecification(child_element, self.getTagName(child_element))
|
|
1485
1872
|
return value_spec
|
|
1486
1873
|
|
|
@@ -1514,7 +1901,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1514
1901
|
|
|
1515
1902
|
def getNonqueuedReceiverComSpec(self, element: ET.Element) -> NonqueuedReceiverComSpec:
|
|
1516
1903
|
com_spec = NonqueuedReceiverComSpec()
|
|
1517
|
-
self.readARObjectAttributes(element, com_spec)
|
|
1904
|
+
self.readARObjectAttributes(element, com_spec)
|
|
1518
1905
|
self.readReceiverComSpec(element, com_spec)
|
|
1519
1906
|
com_spec.setAliveTimeout(self.getChildElementOptionalFloatValue(element, "ALIVE-TIMEOUT")) \
|
|
1520
1907
|
.setEnableUpdated(self.getChildElementOptionalBooleanValue(element, "ENABLE-UPDATE")) \
|
|
@@ -1543,10 +1930,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1543
1930
|
def readAbstractRequiredPortPrototype(self, element: ET.Element, prototype: AbstractRequiredPortPrototype):
|
|
1544
1931
|
self.readProvidedComSpec(element, prototype)
|
|
1545
1932
|
|
|
1546
|
-
def readPPortPrototype(self, element: ET.Element,
|
|
1547
|
-
|
|
1548
|
-
self.logger.debug("readPPortPrototype %s" % short_name)
|
|
1549
|
-
prototype = parent.createPPortPrototype(short_name)
|
|
1933
|
+
def readPPortPrototype(self, element: ET.Element, prototype: PPortPrototype):
|
|
1934
|
+
self.logger.debug("Read PPortPrototype %s" % prototype.getShortName())
|
|
1550
1935
|
self.readIdentifiable(element, prototype)
|
|
1551
1936
|
self.readAbstractRequiredPortPrototype(element, prototype)
|
|
1552
1937
|
prototype.setProvidedInterfaceTRef(self.getChildElementOptionalRefType(element, "PROVIDED-INTERFACE-TREF"))
|
|
@@ -1554,34 +1939,33 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1554
1939
|
def readAbstractProvidedPortPrototype(self, element: ET.Element, prototype: AbstractProvidedPortPrototype):
|
|
1555
1940
|
self.readRequiredComSpec(element, prototype)
|
|
1556
1941
|
|
|
1557
|
-
def readRPortPrototype(self, element: ET.Element,
|
|
1558
|
-
|
|
1559
|
-
self.logger.debug("read RPortPrototype %s" % short_name)
|
|
1560
|
-
prototype = parent.createRPortPrototype(short_name)
|
|
1942
|
+
def readRPortPrototype(self, element: ET.Element, prototype: RPortPrototype):
|
|
1943
|
+
self.logger.debug("Read RPortPrototype %s" % prototype.getShortName())
|
|
1561
1944
|
self.readIdentifiable(element, prototype)
|
|
1562
1945
|
self.readAbstractProvidedPortPrototype(element, prototype)
|
|
1563
1946
|
prototype.setRequiredInterfaceTRef(self.getChildElementOptionalRefType(element, "REQUIRED-INTERFACE-TREF"))
|
|
1564
1947
|
|
|
1565
|
-
def readPRPortPrototype(self, element: ET.Element,
|
|
1566
|
-
|
|
1567
|
-
self.logger.debug("read PRPortPrototype %s" % short_name)
|
|
1568
|
-
prototype = parent.createPRPortPrototype(short_name)
|
|
1948
|
+
def readPRPortPrototype(self, element: ET.Element, prototype: PRPortPrototype):
|
|
1949
|
+
self.logger.debug("Read PRPortPrototype %s" % prototype.getShortName())
|
|
1569
1950
|
self.readIdentifiable(element, prototype)
|
|
1570
1951
|
self.readAbstractRequiredPortPrototype(element, prototype)
|
|
1571
1952
|
self.readAbstractProvidedPortPrototype(element, prototype)
|
|
1572
1953
|
prototype.setProvidedRequiredInterface(self.getChildElementOptionalRefType(element, "PROVIDED-REQUIRED-INTERFACE-TREF"))
|
|
1573
1954
|
|
|
1574
|
-
def
|
|
1955
|
+
def readSwComponentTypePorts(self, element: ET.Element, sw_component: SwComponentType):
|
|
1575
1956
|
for child_element in self.findall(element, "PORTS/*"):
|
|
1576
1957
|
tag_name = self.getTagName(child_element)
|
|
1577
1958
|
if tag_name == "P-PORT-PROTOTYPE":
|
|
1578
|
-
self.
|
|
1959
|
+
prototype = sw_component.createPPortPrototype(self.getShortName(child_element))
|
|
1960
|
+
self.readPPortPrototype(child_element, prototype)
|
|
1579
1961
|
elif tag_name == "R-PORT-PROTOTYPE":
|
|
1580
|
-
self.
|
|
1962
|
+
prototype = sw_component.createRPortPrototype(self.getShortName(child_element))
|
|
1963
|
+
self.readRPortPrototype(child_element, prototype)
|
|
1581
1964
|
elif tag_name == "PR-PORT-PROTOTYPE":
|
|
1582
|
-
self.
|
|
1965
|
+
prototype = sw_component.createPRPortPrototype(self.getShortName(child_element))
|
|
1966
|
+
self.readPRPortPrototype(child_element, prototype)
|
|
1583
1967
|
else:
|
|
1584
|
-
self.
|
|
1968
|
+
self.notImplemented("Unsupported Port Prototype <%s>" % tag_name)
|
|
1585
1969
|
|
|
1586
1970
|
def readTransmissionAcknowledgementRequest(self, element: ET.Element) -> TransmissionAcknowledgementRequest:
|
|
1587
1971
|
child_element = self.find(element, "TRANSMISSION-ACKNOWLEDGE")
|
|
@@ -1592,7 +1976,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1592
1976
|
return acknowledge
|
|
1593
1977
|
return None
|
|
1594
1978
|
|
|
1595
|
-
def readSenderComSpec(self, element:ET.Element, com_spec: SenderComSpec):
|
|
1979
|
+
def readSenderComSpec(self, element: ET.Element, com_spec: SenderComSpec):
|
|
1596
1980
|
self.readARObjectAttributes(element, com_spec)
|
|
1597
1981
|
for child_element in self.findall(element, "COMPOSITE-NETWORK-REPRESENTATIONS/COMPOSITE-NETWORK-REPRESENTATION"):
|
|
1598
1982
|
com_spec.addCompositeNetworkRepresentation(self.getCompositeNetworkRepresentation(child_element))
|
|
@@ -1602,20 +1986,20 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1602
1986
|
.setTransmissionAcknowledge(self.readTransmissionAcknowledgementRequest(element)) \
|
|
1603
1987
|
.setUsesEndToEndProtection(self.getChildElementOptionalBooleanValue(element, "USES-END-TO-END-PROTECTION"))
|
|
1604
1988
|
|
|
1605
|
-
def getNonqueuedSenderComSpec(self, element:ET.Element) -> NonqueuedSenderComSpec:
|
|
1989
|
+
def getNonqueuedSenderComSpec(self, element: ET.Element) -> NonqueuedSenderComSpec:
|
|
1606
1990
|
com_spec = NonqueuedSenderComSpec()
|
|
1607
1991
|
self.readSenderComSpec(element, com_spec)
|
|
1608
1992
|
com_spec.setInitValue(self.getInitValue(element))
|
|
1609
1993
|
return com_spec
|
|
1610
1994
|
|
|
1611
|
-
def getServerComSpec(self, element:ET.Element) -> ServerComSpec:
|
|
1995
|
+
def getServerComSpec(self, element: ET.Element) -> ServerComSpec:
|
|
1612
1996
|
com_spec = ServerComSpec()
|
|
1613
1997
|
self.readARObjectAttributes(element, com_spec)
|
|
1614
1998
|
com_spec.setOperationRef(self.getChildElementOptionalRefType(element, "OPERATION-REF")) \
|
|
1615
1999
|
.setQueueLength(self.getChildElementOptionalNumericalValue(element, "QUEUE-LENGTH"))
|
|
1616
2000
|
return com_spec
|
|
1617
2001
|
|
|
1618
|
-
def getQueuedSenderComSpec(self, element:ET.Element) -> QueuedSenderComSpec:
|
|
2002
|
+
def getQueuedSenderComSpec(self, element: ET.Element) -> QueuedSenderComSpec:
|
|
1619
2003
|
com_spec = QueuedSenderComSpec()
|
|
1620
2004
|
self.readSenderComSpec(element, com_spec)
|
|
1621
2005
|
return com_spec
|
|
@@ -1652,7 +2036,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1652
2036
|
def readPortGroupInnerGroupIRefs(self, element: ET.Element, parent: PortGroup):
|
|
1653
2037
|
for child_element in self.findall(element, "INNER-GROUP-IREFS/INNER-GROUP-IREF"):
|
|
1654
2038
|
inner_group_iref = InnerPortGroupInCompositionInstanceRef()
|
|
1655
|
-
#inner_group_iref.contextRef = self.getChildElementOptionalRefType(child_element, "CONTEXT-REF")
|
|
2039
|
+
# inner_group_iref.contextRef = self.getChildElementOptionalRefType(child_element, "CONTEXT-REF")
|
|
1656
2040
|
inner_group_iref.setTargetRef(self.getChildElementOptionalRefType(child_element, "TARGET-REF"))
|
|
1657
2041
|
parent.addInnerGroupIRef(inner_group_iref)
|
|
1658
2042
|
|
|
@@ -1678,12 +2062,12 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1678
2062
|
|
|
1679
2063
|
def readSwComponentType(self, element: ET.Element, parent: SwComponentType):
|
|
1680
2064
|
self.readIdentifiable(element, parent)
|
|
1681
|
-
self.
|
|
2065
|
+
self.readSwComponentTypePorts(element, parent)
|
|
1682
2066
|
self.readSwComponentTypePortGroups(element, parent)
|
|
1683
2067
|
|
|
1684
2068
|
def readAtomicSwComponentType(self, element, parent: AtomicSwComponentType):
|
|
1685
2069
|
self.readSwComponentType(element, parent)
|
|
1686
|
-
self.
|
|
2070
|
+
self.readAtomicSwComponentTypeSwcInternalBehavior(element, parent)
|
|
1687
2071
|
|
|
1688
2072
|
def readEcuAbstractionSwComponentType(self, element, sw_component: EcuAbstractionSwComponentType):
|
|
1689
2073
|
self.logger.debug("Read EcuAbstractionSwComponentType <%s>" % sw_component.getShortName())
|
|
@@ -1711,9 +2095,11 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1711
2095
|
|
|
1712
2096
|
self.logger.debug("PPortInCompositionInstanceRef")
|
|
1713
2097
|
self.logger.debug(" CONTEXT-COMPONENT-REF DEST: %s, %s"
|
|
1714
|
-
% (p_port_in_composition_instance_ref.getContextComponentRef().getDest(),
|
|
1715
|
-
|
|
1716
|
-
|
|
2098
|
+
% (p_port_in_composition_instance_ref.getContextComponentRef().getDest(),
|
|
2099
|
+
p_port_in_composition_instance_ref.getContextComponentRef().getValue()))
|
|
2100
|
+
self.logger.debug(" TARGET-P-PORT-REF DEST: %s, %s"
|
|
2101
|
+
% (p_port_in_composition_instance_ref.getTargetPPortRef().getDest(),
|
|
2102
|
+
p_port_in_composition_instance_ref.getTargetPPortRef().getValue()))
|
|
1717
2103
|
|
|
1718
2104
|
def readRPortInCompositionInstanceRef(self, element, r_port_in_composition_instance_ref: RPortInCompositionInstanceRef):
|
|
1719
2105
|
r_port_in_composition_instance_ref.setContextComponentRef(self.getChildElementOptionalRefType(element, "CONTEXT-COMPONENT-REF")) \
|
|
@@ -1721,9 +2107,11 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1721
2107
|
|
|
1722
2108
|
self.logger.debug("RPortInCompositionInstanceRef")
|
|
1723
2109
|
self.logger.debug(" CONTEXT-COMPONENT-REF DEST: %s, %s"
|
|
1724
|
-
% (r_port_in_composition_instance_ref.getContextComponentRef().getDest(),
|
|
1725
|
-
|
|
1726
|
-
|
|
2110
|
+
% (r_port_in_composition_instance_ref.getContextComponentRef().getDest(),
|
|
2111
|
+
r_port_in_composition_instance_ref.getContextComponentRef().getValue()))
|
|
2112
|
+
self.logger.debug(" TARGET-P-PORT-REF DEST: %s, %s"
|
|
2113
|
+
% (r_port_in_composition_instance_ref.getTargetRPortRef().getDest(),
|
|
2114
|
+
r_port_in_composition_instance_ref.getTargetRPortRef().getValue()))
|
|
1727
2115
|
|
|
1728
2116
|
def readAssemblySwConnectorProviderIRef(self, element: ET.Element, parent: AssemblySwConnector):
|
|
1729
2117
|
child_element = self.find(element, "PROVIDER-IREF")
|
|
@@ -1741,16 +2129,27 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1741
2129
|
self.readRPortInCompositionInstanceRef(child_element, requester_iref)
|
|
1742
2130
|
parent.setRequesterIRef(requester_iref)
|
|
1743
2131
|
|
|
1744
|
-
def
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
2132
|
+
def readSwConnector(self, element: ET.Element, connector: SwConnector):
|
|
2133
|
+
self.readIdentifiable(element, connector)
|
|
2134
|
+
connector.setMappingRef(self.getChildElementOptionalRefType(element, "MAPPING-REF"))
|
|
2135
|
+
|
|
2136
|
+
def readAssemblySwConnector(self, element: ET.Element, connector: AssemblySwConnector):
|
|
2137
|
+
self.logger.debug("Read AssemblySwConnectors %s" % connector.getShortName())
|
|
2138
|
+
self.readSwConnector(element, connector)
|
|
2139
|
+
self.readAssemblySwConnectorProviderIRef(element, connector)
|
|
2140
|
+
self.readAssemblySwConnectorRequesterIRef(element, connector)
|
|
1748
2141
|
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
2142
|
+
def readCompositionSwComponentTypeSwConnectors(self, element: ET.Element, parent: CompositionSwComponentType):
|
|
2143
|
+
for child_element in self.findall(element, "CONNECTORS/*"):
|
|
2144
|
+
tag_name = self.getTagName(child_element)
|
|
2145
|
+
if tag_name == "ASSEMBLY-SW-CONNECTOR":
|
|
2146
|
+
connector = parent.createAssemblySwConnector(self.getShortName(child_element))
|
|
2147
|
+
self.readAssemblySwConnector(child_element, connector)
|
|
2148
|
+
elif tag_name == "DELEGATION-SW-CONNECTOR":
|
|
2149
|
+
connector = parent.createDelegationSwConnector(self.getShortName(child_element))
|
|
2150
|
+
self.readDelegationSwConnector(child_element, connector)
|
|
2151
|
+
else:
|
|
2152
|
+
self.notImplemented("Unsupported SwConnector <%s>" % tag_name)
|
|
1754
2153
|
|
|
1755
2154
|
def readDelegationSwConnectorInnerPortIRef(self, element, parent: DelegationSwConnector):
|
|
1756
2155
|
inner_port_iref_element = self.find(element, "INNER-PORT-IREF")
|
|
@@ -1771,45 +2170,45 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1771
2170
|
|
|
1772
2171
|
self.raiseError("Unsupported child element of INNER-PORT-IREF")
|
|
1773
2172
|
|
|
1774
|
-
def
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
2173
|
+
def readDelegationSwConnector(self, element, connector: DelegationSwConnector):
|
|
2174
|
+
self.logger.debug("Read DelegationSwConnectors %s" % connector.getShortName())
|
|
2175
|
+
self.readSwConnector(element, connector)
|
|
2176
|
+
self.readDelegationSwConnectorInnerPortIRef(element, connector)
|
|
1778
2177
|
|
|
1779
|
-
|
|
1780
|
-
self.
|
|
1781
|
-
self.readDelegationSwConnectorInnerPortIRef(child_element, connector)
|
|
2178
|
+
if connector.getInnerPortIRref() is None and connector.getOuterPortRef() is None:
|
|
2179
|
+
self.raiseError("Invalid PortPrototype of DELEGATION-SW-CONNECTOR")
|
|
1782
2180
|
|
|
1783
|
-
|
|
1784
|
-
|
|
2181
|
+
connector.setOuterPortRef(self.getChildElementOptionalRefType(element, "OUTER-PORT-REF"))
|
|
2182
|
+
self.logger.debug("OUTER-PORT-REF DEST: %s, %s" % (connector.getOuterPortRef().getDest(), connector.getOuterPortRef().getValue()))
|
|
1785
2183
|
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
2184
|
+
def readSwComponentPrototype(self, element: ET.Element, prototype: SwComponentPrototype):
|
|
2185
|
+
self.logger.debug("Read SwComponentPrototypes <%s>" % prototype.getShortName())
|
|
2186
|
+
self.readIdentifiable(element, prototype)
|
|
2187
|
+
prototype.setTypeTRef(self.getChildElementOptionalRefType(element, "TYPE-TREF"))
|
|
1789
2188
|
|
|
1790
|
-
def
|
|
1791
|
-
for child_element in
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
2189
|
+
def readCompositionSwComponentTypeComponents(self, element: ET.Element, parent: CompositionSwComponentType):
|
|
2190
|
+
for child_element in self.findall(element, "COMPONENTS/*"):
|
|
2191
|
+
tag_name = self.getTagName(child_element)
|
|
2192
|
+
if tag_name == "SW-COMPONENT-PROTOTYPE":
|
|
2193
|
+
prototype = parent.createSwComponentPrototype(self.getShortName(child_element))
|
|
2194
|
+
self.readSwComponentPrototype(child_element, prototype)
|
|
2195
|
+
else:
|
|
2196
|
+
self.notImplemented("Unsupported Component <%s>" % tag_name)
|
|
1797
2197
|
|
|
1798
2198
|
def readCompositionSwComponentTypeDataTypeMappingSet(self, element: ET.Element, parent: CompositionSwComponentType):
|
|
1799
|
-
child_element =
|
|
2199
|
+
child_element = self.find(element, "DATA-TYPE-MAPPING-REFS")
|
|
1800
2200
|
self.logger.debug("readDataTypeMappingSet")
|
|
1801
2201
|
if child_element is not None:
|
|
1802
|
-
for ref in self.getChildElementRefTypeList(child_element, "
|
|
2202
|
+
for ref in self.getChildElementRefTypeList(child_element, "DATA-TYPE-MAPPING-REF"):
|
|
1803
2203
|
parent.addDataTypeMapping(ref)
|
|
1804
2204
|
|
|
1805
2205
|
def readCompositionSwComponentType(self, element: ET.Element, type: CompositionSwComponentType):
|
|
1806
2206
|
self.logger.debug("Read CompositionSwComponentType: <%s>" % type.getShortName())
|
|
1807
|
-
self.readIdentifiable(element, type)
|
|
1808
2207
|
self.readSwComponentType(element, type)
|
|
1809
|
-
self.
|
|
1810
|
-
self.
|
|
1811
|
-
self.readDelegationSwConnectors(element, type)
|
|
2208
|
+
self.readCompositionSwComponentTypeComponents(element, type)
|
|
2209
|
+
self.readCompositionSwComponentTypeSwConnectors(element, type)
|
|
1812
2210
|
self.readCompositionSwComponentTypeDataTypeMappingSet(element, type)
|
|
2211
|
+
AUTOSAR.getInstance().addCompositionSwComponentType(type)
|
|
1813
2212
|
|
|
1814
2213
|
def readDataTypeMaps(self, element: ET.Element, parent: DataTypeMappingSet):
|
|
1815
2214
|
for child_element in element.findall("./xmlns:DATA-TYPE-MAPS/xmlns:DATA-TYPE-MAP", self.nsmap):
|
|
@@ -1836,13 +2235,15 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1836
2235
|
self.readModeRequestTypeMaps(element, mapping_set)
|
|
1837
2236
|
|
|
1838
2237
|
def readSenderReceiverInterfaceDataElements(self, element: ET.Element, sr_interface: SenderReceiverInterface):
|
|
1839
|
-
for child_element in self.findall(element, "DATA-ELEMENTS
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
2238
|
+
for child_element in self.findall(element, "DATA-ELEMENTS/*"):
|
|
2239
|
+
tag_name = self.getTagName(child_element)
|
|
2240
|
+
if tag_name == "VARIABLE-DATA-PROTOTYPE":
|
|
2241
|
+
prototype = sr_interface.createDataElement(self.getShortName(child_element))
|
|
2242
|
+
self.readVariableDataPrototype(child_element, prototype)
|
|
2243
|
+
# prototype.swDataDefProps = self.getSwDataDefProps(child_element, "SW-DATA-DEF-PROPS")
|
|
2244
|
+
# self.readAutosarDataPrototype(child_element, prototype)
|
|
2245
|
+
else:
|
|
2246
|
+
self.notImplemented("Unsupported Data Element <%s>" % tag_name)
|
|
1846
2247
|
|
|
1847
2248
|
def readSenderReceiverInterfaceInvalidationPolicies(self, element: ET.Element, sr_interface: SenderReceiverInterface):
|
|
1848
2249
|
for child_element in self.findall(element, "INVALIDATION-POLICYS/INVALIDATION-POLICY"):
|
|
@@ -1866,16 +2267,19 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1866
2267
|
self.readSenderReceiverInterfaceDataElements(element, sr_interface)
|
|
1867
2268
|
self.readSenderReceiverInterfaceInvalidationPolicies(element, sr_interface)
|
|
1868
2269
|
|
|
1869
|
-
def
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
2270
|
+
def readArgumentDataPrototype(self, element: ET.Element, prototype: ArgumentDataPrototype):
|
|
2271
|
+
self.readAutosarDataPrototype(element, prototype)
|
|
2272
|
+
prototype.setDirection(self.getChildElementOptionalLiteral(element, "DIRECTION")) \
|
|
2273
|
+
.setServerArgumentImplPolicy(self.getChildElementOptionalLiteral(element, "SERVER-ARGUMENT-IMPL-POLICY"))
|
|
2274
|
+
|
|
2275
|
+
def readClientServerOperationArguments(self, element: ET.Element, operation: ClientServerOperation):
|
|
2276
|
+
for child_element in self.findall(element, "ARGUMENTS/*"):
|
|
2277
|
+
tag_name = self.getTagName(child_element)
|
|
2278
|
+
if tag_name == "ARGUMENT-DATA-PROTOTYPE":
|
|
2279
|
+
prototype = operation.createArgumentDataPrototype(self.getShortName(child_element))
|
|
2280
|
+
self.readArgumentDataPrototype(child_element, prototype)
|
|
2281
|
+
else:
|
|
2282
|
+
self.notImplemented("Unsupported Argument <%s>" % tag_name)
|
|
1879
2283
|
|
|
1880
2284
|
def readPossibleErrorRefs(self, element: ET.Element, parent: ClientServerOperation):
|
|
1881
2285
|
child_element = self.find(element, "POSSIBLE-ERROR-REFS")
|
|
@@ -1883,41 +2287,53 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1883
2287
|
for ref in self.getChildElementRefTypeList(child_element, "POSSIBLE-ERROR-REF"):
|
|
1884
2288
|
parent.addPossibleErrorRef(ref)
|
|
1885
2289
|
|
|
1886
|
-
def
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
2290
|
+
def readClientServerOperation(self, element: ET.Element, operation: ClientServerOperation):
|
|
2291
|
+
self.readIdentifiable(element, operation)
|
|
2292
|
+
self.readClientServerOperationArguments(element, operation)
|
|
2293
|
+
self.readPossibleErrorRefs(element, operation)
|
|
2294
|
+
|
|
2295
|
+
def readClientServerInterfaceOperations(self, element: ET.Element, parent: ClientServerInterface):
|
|
2296
|
+
for child_element in self.findall(element, "OPERATIONS/*"):
|
|
2297
|
+
tag_name = self.getTagName(child_element)
|
|
2298
|
+
if tag_name == "CLIENT-SERVER-OPERATION":
|
|
2299
|
+
operation = parent.createOperation(self.getShortName(child_element))
|
|
2300
|
+
self.readClientServerOperation(child_element, operation)
|
|
2301
|
+
else:
|
|
2302
|
+
self.notImplemented("Unsupported Operation <%s>" % tag_name)
|
|
1893
2303
|
|
|
1894
2304
|
def readPossibleErrors(self, element: ET.Element, parent: ClientServerInterface):
|
|
1895
2305
|
for child_element in self.findall(element, "POSSIBLE-ERRORS/APPLICATION-ERROR"):
|
|
1896
2306
|
short_name = self.getShortName(child_element)
|
|
1897
2307
|
error = parent.createApplicationError(short_name)
|
|
1898
|
-
self.readIdentifiable(child_element, error)
|
|
2308
|
+
self.readIdentifiable(child_element, error) # some errors has its uuid
|
|
1899
2309
|
error.error_code = self.getChildElementOptionalNumericalValue(child_element, "ERROR-CODE")
|
|
1900
2310
|
|
|
1901
2311
|
def readPortInterface(self, element: ET.Element, port_interface: PortInterface):
|
|
1902
2312
|
self.readIdentifiable(element, port_interface)
|
|
1903
|
-
port_interface.
|
|
1904
|
-
|
|
2313
|
+
port_interface.setIsService(self.getChildElementOptionalBooleanValue(element, "IS-SERVICE"))\
|
|
2314
|
+
.setServiceKind(self.getChildElementOptionalLiteral(element, "SERVICE-KIND"))
|
|
1905
2315
|
|
|
1906
2316
|
def readParameterInterfaceParameters(self, element: ET.Element, param_interface: ParameterInterface):
|
|
1907
|
-
for child_element in self.findall(element, "PARAMETERS
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
2317
|
+
for child_element in self.findall(element, "PARAMETERS/*"):
|
|
2318
|
+
tag_name = self.getTagName(child_element)
|
|
2319
|
+
if tag_name == "PARAMETER-DATA-PROTOTYPE":
|
|
2320
|
+
prototype = param_interface.createParameterDataPrototype(self.getShortName(child_element))
|
|
2321
|
+
self.readParameterDataPrototype(child_element, prototype)
|
|
2322
|
+
else:
|
|
2323
|
+
self.notImplemented("Unsupported Parameter <%s>" % tag_name)
|
|
2324
|
+
|
|
2325
|
+
def readDataInterface(self, element: ET.Element, interface: DataInterface):
|
|
2326
|
+
self.readPortInterface(element, interface)
|
|
1911
2327
|
|
|
1912
|
-
def readParameterInterface(self, element: ET.Element,
|
|
1913
|
-
self.logger.debug("Read ParameterInterface <%s>" %
|
|
1914
|
-
self.
|
|
1915
|
-
self.readParameterInterfaceParameters(element,
|
|
2328
|
+
def readParameterInterface(self, element: ET.Element, interface: ParameterInterface):
|
|
2329
|
+
self.logger.debug("Read ParameterInterface <%s>" % interface.getShortName())
|
|
2330
|
+
self.readDataInterface(element, interface)
|
|
2331
|
+
self.readParameterInterfaceParameters(element, interface)
|
|
1916
2332
|
|
|
1917
2333
|
def readClientServerInterface(self, element: ET.Element, cs_interface: ClientServerInterface):
|
|
1918
2334
|
self.logger.debug("Read readClientServerInterface <%s>" % cs_interface.getShortName())
|
|
1919
2335
|
self.readPortInterface(element, cs_interface)
|
|
1920
|
-
self.
|
|
2336
|
+
self.readClientServerInterfaceOperations(element, cs_interface)
|
|
1921
2337
|
self.readPossibleErrors(element, cs_interface)
|
|
1922
2338
|
|
|
1923
2339
|
def getCompuConstContent(self, element: ET.Element) -> CompuConstContent:
|
|
@@ -1979,6 +2395,15 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1979
2395
|
self.readCompuConst(element, parent)
|
|
1980
2396
|
self.readCompuRationCoeffs(element, parent)
|
|
1981
2397
|
|
|
2398
|
+
def readCompuScale(self, element: ET.Element, compu_scale: CompuScale):
|
|
2399
|
+
self.readARObjectAttributes(element, compu_scale)
|
|
2400
|
+
compu_scale.setLowerLimit(self.getChildLimitElement(element, "LOWER-LIMIT")) \
|
|
2401
|
+
.setShortLabel(self.getChildElementOptionalLiteral(element, "SHORT-LABEL")) \
|
|
2402
|
+
.setDesc(self.getMultiLanguageOverviewParagraph(element, "DESC")) \
|
|
2403
|
+
.setSymbol(self.getChildElementOptionalLiteral(element, "SYMBOL")) \
|
|
2404
|
+
.setUpperLimit(self.getChildLimitElement(element, "UPPER-LIMIT"))
|
|
2405
|
+
self.readCompuScaleContents(element, compu_scale)
|
|
2406
|
+
|
|
1982
2407
|
def getCompuScales(self, element: ET.Element) -> CompuScales:
|
|
1983
2408
|
compu_scales = None
|
|
1984
2409
|
compu_scales_tag = self.find(element, "COMPU-SCALES")
|
|
@@ -1986,13 +2411,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
1986
2411
|
compu_scales = CompuScales()
|
|
1987
2412
|
for child_element in self.findall(compu_scales_tag, 'COMPU-SCALE'):
|
|
1988
2413
|
compu_scale = CompuScale()
|
|
1989
|
-
self.
|
|
1990
|
-
compu_scale.setLowerLimit(self.getChildLimitElement(child_element, "LOWER-LIMIT")) \
|
|
1991
|
-
.setShortLabel(self.getChildElementOptionalLiteral(child_element, "SHORT-LABEL")) \
|
|
1992
|
-
.setDesc(self.getMultiLanguageOverviewParagraph(child_element, "DESC")) \
|
|
1993
|
-
.setSymbol(self.getChildElementOptionalLiteral(child_element, "SYMBOL")) \
|
|
1994
|
-
.setUpperLimit(self.getChildLimitElement(child_element, "UPPER-LIMIT"))
|
|
1995
|
-
self.readCompuScaleContents(child_element, compu_scale)
|
|
2414
|
+
self.readCompuScale(child_element, compu_scale)
|
|
1996
2415
|
compu_scales.addCompuScale(compu_scale)
|
|
1997
2416
|
return compu_scales
|
|
1998
2417
|
|
|
@@ -2002,7 +2421,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2002
2421
|
if (child_element is not None):
|
|
2003
2422
|
compu = Compu()
|
|
2004
2423
|
self.readARObjectAttributes(child_element, compu)
|
|
2005
|
-
compu.setCompuContent(self.getCompuScales(child_element))
|
|
2424
|
+
compu.setCompuContent(self.getCompuScales(child_element))
|
|
2006
2425
|
compu.setCompuDefaultValue(self.getCompuConst(child_element, "COMPU-DEFAULT-VALUE"))
|
|
2007
2426
|
return compu
|
|
2008
2427
|
|
|
@@ -2030,10 +2449,9 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2030
2449
|
def readValueSpecification(self, element: ET.Element, value_spec: ValueSpecification):
|
|
2031
2450
|
self.readARObjectAttributes(element, value_spec)
|
|
2032
2451
|
value_spec.setShortLabel(self.getChildElementOptionalLiteral(element, "SHORT-LABEL"))
|
|
2033
|
-
self.logger.debug("
|
|
2452
|
+
# self.logger.debug("read ValueSpecification")
|
|
2034
2453
|
|
|
2035
2454
|
def getApplicationValueSpecification(self, element: ET.Element) -> ApplicationValueSpecification:
|
|
2036
|
-
self.logger.debug("getApplicationValueSpecification")
|
|
2037
2455
|
value_spec = ApplicationValueSpecification()
|
|
2038
2456
|
self.readValueSpecification(element, value_spec)
|
|
2039
2457
|
value_spec.setCategory(self.getChildElementOptionalLiteral(element, "CATEGORY")) \
|
|
@@ -2042,7 +2460,6 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2042
2460
|
return value_spec
|
|
2043
2461
|
|
|
2044
2462
|
def getNumericalValueSpecification(self, element: ET.Element) -> NumericalValueSpecification:
|
|
2045
|
-
self.logger.debug("getNumericalValueSpecification")
|
|
2046
2463
|
value_spec = NumericalValueSpecification()
|
|
2047
2464
|
self.readValueSpecification(element, value_spec)
|
|
2048
2465
|
value_spec.setShortLabel(self.getChildElementOptionalLiteral(element, "SHORT-LABEL")) \
|
|
@@ -2071,7 +2488,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2071
2488
|
value_spec = ConstantReference()
|
|
2072
2489
|
self.readValueSpecification(element, value_spec)
|
|
2073
2490
|
value_spec.setConstantRef(self.getChildElementOptionalRefType(element, "CONSTANT-REF"))
|
|
2074
|
-
return value_spec
|
|
2491
|
+
return value_spec
|
|
2075
2492
|
|
|
2076
2493
|
def getValueSpecification(self, element: ET.Element, tag_name: str) -> ValueSpecification:
|
|
2077
2494
|
if tag_name == "APPLICATION-VALUE-SPECIFICATION":
|
|
@@ -2148,59 +2565,80 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2148
2565
|
.setOffsetSiToUnit(self.getChildElementOptionalFloatValue(element, "OFFSET-SI-TO-UNIT")) \
|
|
2149
2566
|
.setPhysicalDimensionRef(self.getChildElementOptionalRefType(element, "PHYSICAL-DIMENSION-REF"))
|
|
2150
2567
|
|
|
2151
|
-
def
|
|
2152
|
-
child_element =
|
|
2568
|
+
def readEndToEndDescriptionDataIds(self, element: ET.Element, parent: EndToEndDescription):
|
|
2569
|
+
child_element = self.find(element, "DATA-IDS")
|
|
2153
2570
|
if child_element is not None:
|
|
2154
2571
|
for value in self.getChildElementNumericalValueList(child_element, "DATA-ID"):
|
|
2155
2572
|
parent.addDataId(value)
|
|
2156
2573
|
|
|
2157
2574
|
def getEndToEndDescription(self, element: ET.Element, key: str) -> EndToEndDescription:
|
|
2158
|
-
child_element =
|
|
2575
|
+
child_element = self.find(element, key)
|
|
2159
2576
|
desc = None
|
|
2160
2577
|
if (child_element is not None):
|
|
2161
2578
|
desc = EndToEndDescription()
|
|
2162
|
-
|
|
2163
|
-
self.
|
|
2164
|
-
|
|
2165
|
-
desc.
|
|
2166
|
-
|
|
2167
|
-
|
|
2579
|
+
self.readARObjectAttributes(child_element, desc)
|
|
2580
|
+
desc.setCategory(self.getChildElementOptionalLiteral(child_element, "CATEGORY"))
|
|
2581
|
+
self.readEndToEndDescriptionDataIds(child_element, desc)
|
|
2582
|
+
desc.setDataIdMode(self.getChildElementOptionalPositiveInteger(child_element, "DATA-ID-MODE")) \
|
|
2583
|
+
.setDataLength(self.getChildElementOptionalPositiveInteger(child_element, "DATA-LENGTH")) \
|
|
2584
|
+
.setMaxDeltaCounterInit(self.getChildElementOptionalPositiveInteger(child_element, "MAX-DELTA-COUNTER-INIT")) \
|
|
2585
|
+
.setCrcOffset(self.getChildElementOptionalPositiveInteger(child_element, "CRC-OFFSET")) \
|
|
2586
|
+
.setCounterOffset(self.getChildElementOptionalPositiveInteger(child_element, "COUNTER-OFFSET"))
|
|
2168
2587
|
return desc
|
|
2169
2588
|
|
|
2170
2589
|
def getVariableDataPrototypeInSystemInstanceRef(self, element: ET.Element) -> VariableDataPrototypeInSystemInstanceRef:
|
|
2171
|
-
|
|
2590
|
+
instance_ref = None
|
|
2172
2591
|
if element is not None:
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2592
|
+
instance_ref = VariableDataPrototypeInSystemInstanceRef()
|
|
2593
|
+
for ref in self.getChildElementRefTypeList(element, "CONTEXT-COMPONENT-REF"):
|
|
2594
|
+
instance_ref.addContextComponentRef(ref)
|
|
2595
|
+
instance_ref.setContextCompositionRef(self.getChildElementOptionalRefType(element, "CONTEXT-COMPOSITION-REF")) \
|
|
2596
|
+
.setContextPortRef(self.getChildElementOptionalRefType(element, "CONTEXT-PORT-REF")) \
|
|
2597
|
+
.setTargetDataPrototypeRef(self.getChildElementOptionalRefType(element, "TARGET-DATA-PROTOTYPE-REF"))
|
|
2598
|
+
return instance_ref
|
|
2179
2599
|
|
|
2180
|
-
def
|
|
2181
|
-
prototype
|
|
2182
|
-
for child_element in
|
|
2600
|
+
def readEndToEndProtectionVariablePrototype(self, element: ET.Element, prototype: EndToEndProtectionVariablePrototype):
|
|
2601
|
+
self.readARObjectAttributes(element, prototype)
|
|
2602
|
+
for child_element in self.findall(element, "RECEIVER-IREFS/RECEIVER-IREF"):
|
|
2183
2603
|
prototype.addReceiverIref(self.getVariableDataPrototypeInSystemInstanceRef(child_element))
|
|
2184
|
-
child_element =
|
|
2604
|
+
child_element = self.find(element, "SENDER-IREF")
|
|
2185
2605
|
if child_element is not None:
|
|
2186
2606
|
prototype.senderIRef = self.getVariableDataPrototypeInSystemInstanceRef(child_element)
|
|
2187
2607
|
return prototype
|
|
2188
2608
|
|
|
2189
|
-
def
|
|
2190
|
-
for child_element in
|
|
2609
|
+
def readEndToEndProtectionEndToEndProtectionVariablePrototypes(self, element: ET.Element, protection: EndToEndProtection):
|
|
2610
|
+
for child_element in self.findall(element, "END-TO-END-PROTECTION-VARIABLE-PROTOTYPES/*"):
|
|
2191
2611
|
tag_name = self.getTagName(child_element)
|
|
2192
2612
|
if tag_name == "END-TO-END-PROTECTION-VARIABLE-PROTOTYPE":
|
|
2193
|
-
|
|
2613
|
+
prototype = EndToEndProtectionVariablePrototype()
|
|
2614
|
+
self.readEndToEndProtectionVariablePrototype(child_element, prototype)
|
|
2615
|
+
protection.addEndToEndProtectionVariablePrototype(prototype)
|
|
2194
2616
|
else:
|
|
2195
2617
|
self.raiseError("Unsupported End To End Protection Variable Prototype <%s>" % tag_name)
|
|
2196
2618
|
|
|
2619
|
+
def readEndToEndProtectionISignalIPdu(self, element: ET.Element, ipdu: EndToEndProtectionISignalIPdu):
|
|
2620
|
+
ipdu.setDataOffset(self.getChildElementOptionalIntegerValue(element, "DATA-OFFSET")) \
|
|
2621
|
+
.setISignalGroupRef(self.getChildElementOptionalRefType(element, "I-SIGNAL-GROUP-REF")) \
|
|
2622
|
+
.setISignalIPduRef(self.getChildElementOptionalRefType(element, "I-SIGNAL-I-PDU-REF"))
|
|
2623
|
+
|
|
2624
|
+
def readEndToEndProtectionEndToEndProtectionISignalIPdus(self, element: ET.Element, protection: EndToEndProtection):
|
|
2625
|
+
for child_element in self.findall(element, "END-TO-END-PROTECTION-I-SIGNAL-I-PDUS/*"):
|
|
2626
|
+
tag_name = self.getTagName(child_element)
|
|
2627
|
+
if tag_name == "END-TO-END-PROTECTION-I-SIGNAL-I-PDU":
|
|
2628
|
+
ipdu = EndToEndProtectionISignalIPdu()
|
|
2629
|
+
self.readEndToEndProtectionISignalIPdu(child_element, ipdu)
|
|
2630
|
+
protection.addEndToEndProtectionISignalIPdu(ipdu)
|
|
2631
|
+
else:
|
|
2632
|
+
self.notImplemented("Unsupported EndToEndProtectionISignalIPdu <%s>" % tag_name)
|
|
2633
|
+
|
|
2197
2634
|
def readEndToEndProtection(self, element: ET.Element, parent: EndToEndProtectionSet):
|
|
2198
2635
|
short_name = self.getShortName(element)
|
|
2199
2636
|
self.logger.debug("readEndToEndProtection %s" % short_name)
|
|
2200
2637
|
protection = parent.createEndToEndProtection(short_name)
|
|
2201
2638
|
self.readIdentifiable(element, protection)
|
|
2202
|
-
protection.
|
|
2203
|
-
self.
|
|
2639
|
+
protection.setEndToEndProfile(self.getEndToEndDescription(element, "END-TO-END-PROFILE"))
|
|
2640
|
+
self.readEndToEndProtectionEndToEndProtectionISignalIPdus(element, protection)
|
|
2641
|
+
self.readEndToEndProtectionEndToEndProtectionVariablePrototypes(element, protection)
|
|
2204
2642
|
|
|
2205
2643
|
def readEndToEndProtections(self, element: ET.Element, parent: EndToEndProtectionSet):
|
|
2206
2644
|
for child_element in self.findall(element, "END-TO-END-PROTECTIONS/*"):
|
|
@@ -2215,10 +2653,6 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2215
2653
|
self.readIdentifiable(element, protection_set)
|
|
2216
2654
|
self.readEndToEndProtections(element, protection_set)
|
|
2217
2655
|
|
|
2218
|
-
def readAutosarDataType(self, element: ET.Element, data_type: AutosarDataType):
|
|
2219
|
-
self.readIdentifiable(element, data_type)
|
|
2220
|
-
data_type.swDataDefProps = self.getSwDataDefProps(element, "SW-DATA-DEF-PROPS")
|
|
2221
|
-
|
|
2222
2656
|
def readImplementationProps(self, element: ET.Element, props: ImplementationProps):
|
|
2223
2657
|
props.setSymbol(self.getChildElementOptionalLiteral(element, "SYMBOL"))
|
|
2224
2658
|
|
|
@@ -2246,10 +2680,10 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2246
2680
|
prototype.typeTRef = self.getChildElementOptionalRefType(element, "TYPE-TREF")
|
|
2247
2681
|
|
|
2248
2682
|
def readApplicationArrayElement(self, element: ET.Element, parent: ApplicationArrayDataType):
|
|
2249
|
-
child_element =
|
|
2683
|
+
child_element = self.find(element, "ELEMENT")
|
|
2250
2684
|
if child_element is not None:
|
|
2251
2685
|
short_name = self.getShortName(child_element)
|
|
2252
|
-
self.logger.debug("
|
|
2686
|
+
self.logger.debug("Read ApplicationArrayElement %s" % short_name)
|
|
2253
2687
|
array_element = parent.createApplicationArrayElement(short_name)
|
|
2254
2688
|
self.readApplicationCompositeElementDataPrototype(child_element, array_element)
|
|
2255
2689
|
array_element.setArraySizeHandling(self.getChildElementOptionalLiteral(child_element, "ARRAY-SIZE-HANDLING"))
|
|
@@ -2257,13 +2691,13 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2257
2691
|
array_element.setMaxNumberOfElements(self.getChildElementOptionalNumericalValue(child_element, "MAX-NUMBER-OF-ELEMENTS"))
|
|
2258
2692
|
|
|
2259
2693
|
def readApplicationArrayDataType(self, element: ET.Element, data_type: ApplicationArrayDataType):
|
|
2260
|
-
self.logger.debug("Read ApplicationArrayDataType <%s>" % data_type)
|
|
2694
|
+
self.logger.debug("Read ApplicationArrayDataType <%s>" % data_type.getShortName())
|
|
2261
2695
|
self.readApplicationCompositeDataType(element, data_type)
|
|
2262
2696
|
data_type.setDynamicArraySizeProfile(self.getChildElementOptionalLiteral(element, "DYNAMIC-ARRAY-SIZE-PROFILE"))
|
|
2263
2697
|
self.readApplicationArrayElement(element, data_type)
|
|
2264
2698
|
|
|
2265
2699
|
def getSwRecordLayoutV(self, element: ET.Element, key: str) -> SwRecordLayoutV:
|
|
2266
|
-
child_element =
|
|
2700
|
+
child_element = self.find(element, key)
|
|
2267
2701
|
layout_v = None
|
|
2268
2702
|
if child_element is not None:
|
|
2269
2703
|
layout_v = SwRecordLayoutV()
|
|
@@ -2272,7 +2706,6 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2272
2706
|
.setSwRecordLayoutVAxis(self.getChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-V-AXIS")) \
|
|
2273
2707
|
.setSwRecordLayoutVProp(self.getChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-V-PROP")) \
|
|
2274
2708
|
.setSwRecordLayoutVIndex(self.getChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-V-INDEX"))
|
|
2275
|
-
#print(layout_v.getShortLabel())
|
|
2276
2709
|
return layout_v
|
|
2277
2710
|
|
|
2278
2711
|
def readSwRecordLayoutGroupSwRecordLayoutGroupContentType(self, element: ET.Element, group: SwRecordLayoutGroup):
|
|
@@ -2282,19 +2715,19 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2282
2715
|
group.setSwRecordLayoutGroupContentType(content)
|
|
2283
2716
|
|
|
2284
2717
|
def getSwRecordLayoutGroup(self, element: ET.Element, key: str) -> SwRecordLayoutGroup:
|
|
2285
|
-
child_element =
|
|
2718
|
+
child_element = self.find(element, key)
|
|
2286
2719
|
group = None
|
|
2287
2720
|
if child_element is not None:
|
|
2288
2721
|
group = SwRecordLayoutGroup()
|
|
2289
2722
|
group.setShortLabel(self.getChildElementOptionalLiteral(child_element, "SHORT-LABEL")) \
|
|
2290
|
-
.setCategory(self.getChildElementOptionalLiteral(child_element, "CATEGORY"))
|
|
2291
|
-
|
|
2292
|
-
group.setSwRecordLayoutGroupAxis(self.getChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-AXIS")) \
|
|
2723
|
+
.setCategory(self.getChildElementOptionalLiteral(child_element, "CATEGORY")) \
|
|
2724
|
+
.setSwRecordLayoutGroupAxis(self.getChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-AXIS")) \
|
|
2293
2725
|
.setSwRecordLayoutGroupIndex(self.getChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-INDEX")) \
|
|
2294
2726
|
.setSwRecordLayoutGroupFrom(self.getChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-FROM")) \
|
|
2295
2727
|
.setSwRecordLayoutGroupStep(self.getChildElementOptionalIntegerValue(child_element, "SW-RECORD-LAYOUT-GROUP-STEP")) \
|
|
2296
2728
|
.setSwRecordLayoutGroupTo(self.getChildElementOptionalLiteral(child_element, "SW-RECORD-LAYOUT-GROUP-TO"))
|
|
2297
|
-
|
|
2729
|
+
self.readSwRecordLayoutGroupSwRecordLayoutGroupContentType(child_element, group)
|
|
2730
|
+
|
|
2298
2731
|
return group
|
|
2299
2732
|
|
|
2300
2733
|
def readSwRecordLayout(self, element: ET.Element, layout: SwRecordLayout):
|
|
@@ -2305,7 +2738,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2305
2738
|
def readSwAddrMethod(self, element: ET.Element, method: SwAddrMethod):
|
|
2306
2739
|
self.logger.debug("Read SwAddrMethod <%s>" % method.getShortName())
|
|
2307
2740
|
self.readIdentifiable(element, method)
|
|
2308
|
-
method.setMemoryAllocationKeywordPolicy(self.getChildElementOptionalLiteral(element, "MEMORY-ALLOCATION-KEYWORD-POLICY"))
|
|
2741
|
+
method.setMemoryAllocationKeywordPolicy(self.getChildElementOptionalLiteral(element, "MEMORY-ALLOCATION-KEYWORD-POLICY"))
|
|
2309
2742
|
for option in self.getChildElementLiteralValueList(element, "OPTIONS/OPTION"):
|
|
2310
2743
|
method.addOption(option)
|
|
2311
2744
|
method.setSectionInitializationPolicy(self.getChildElementOptionalLiteral(element, "SECTION-INITIALIZATION-POLICY")) \
|
|
@@ -2379,6 +2812,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2379
2812
|
self.readTimingExtension(element, timing)
|
|
2380
2813
|
|
|
2381
2814
|
def readFrameTriggering(self, element: ET.Element, triggering: FrameTriggering):
|
|
2815
|
+
self.readIdentifiable(element, triggering)
|
|
2382
2816
|
for ref in self.getChildElementRefTypeList(element, 'FRAME-PORT-REFS/FRAME-PORT-REF'):
|
|
2383
2817
|
triggering.addFramePortRef(ref)
|
|
2384
2818
|
triggering.setFrameRef(self.getChildElementOptionalRefType(element, "FRAME-REF"))
|
|
@@ -2387,7 +2821,6 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2387
2821
|
|
|
2388
2822
|
def readCanFrameTriggering(self, element: ET.Element, triggering: CanFrameTriggering):
|
|
2389
2823
|
self.logger.debug("Read CanFrameTriggering %s" % triggering.getShortName())
|
|
2390
|
-
self.readIdentifiable(element, triggering)
|
|
2391
2824
|
self.readFrameTriggering(element, triggering)
|
|
2392
2825
|
triggering.setCanAddressingMode(self.getChildElementOptionalLiteral(element, "CAN-ADDRESSING-MODE")) \
|
|
2393
2826
|
.setCanFdFrameSupport(self.getChildElementOptionalBooleanValue(element, "CAN-FD-FRAME-SUPPORT")) \
|
|
@@ -2396,13 +2829,52 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2396
2829
|
.setIdentifier(self.getChildElementOptionalNumericalValue(element, "IDENTIFIER")) \
|
|
2397
2830
|
.setRxIdentifierRange(self.getChildElementRxIdentifierRange(element, "RX-IDENTIFIER-RANGE"))
|
|
2398
2831
|
|
|
2399
|
-
|
|
2400
2832
|
def readLinFrameTriggering(self, element: ET.Element, triggering: LinFrameTriggering):
|
|
2401
2833
|
self.logger.debug("Read LinFrameTriggering %s" % triggering.getShortName())
|
|
2402
|
-
self.readIdentifiable(element, triggering)
|
|
2403
2834
|
self.readFrameTriggering(element, triggering)
|
|
2404
2835
|
triggering.setIdentifier(self.getChildElementOptionalNumericalValue(element, "IDENTIFIER")) \
|
|
2405
2836
|
.setLinChecksum(self.getChildElementOptionalLiteral(element, "LIN-CHECKSUM"))
|
|
2837
|
+
|
|
2838
|
+
def readCommunicationCycle(self, element: ET.Element, cycle: CommunicationCycle):
|
|
2839
|
+
self.readARObjectAttributes(element, cycle)
|
|
2840
|
+
|
|
2841
|
+
def readCycleRepetition(self, element: ET.Element, cycle: CycleRepetition):
|
|
2842
|
+
self.readCommunicationCycle(element, cycle)
|
|
2843
|
+
cycle.setBaseCycle(self.getChildElementOptionalIntegerValue(element, "BASE-CYCLE")) \
|
|
2844
|
+
.setCycleRepetition(self.getChildElementOptionalLiteral(element, "CYCLE-REPETITION"))
|
|
2845
|
+
|
|
2846
|
+
def readFlexrayAbsolutelyScheduledTimingCommunicationCycle(self, element: ET.Element, timing: FlexrayAbsolutelyScheduledTiming):
|
|
2847
|
+
for child_element in self.findall(element, "COMMUNICATION-CYCLE/*"):
|
|
2848
|
+
tag_name = self.getTagName(child_element)
|
|
2849
|
+
if tag_name == "CYCLE-REPETITION":
|
|
2850
|
+
repetition = CycleRepetition()
|
|
2851
|
+
self.readCycleRepetition(child_element, repetition)
|
|
2852
|
+
timing.setCommunicationCycle(repetition)
|
|
2853
|
+
else:
|
|
2854
|
+
self.notImplemented("Unsupported CommunicationCycle <%s>" % tag_name)
|
|
2855
|
+
|
|
2856
|
+
def readFlexrayAbsolutelyScheduledTiming(self, element: ET.Element, timing: FlexrayAbsolutelyScheduledTiming):
|
|
2857
|
+
self.readARObjectAttributes(element, timing)
|
|
2858
|
+
self.readFlexrayAbsolutelyScheduledTimingCommunicationCycle(element, timing)
|
|
2859
|
+
timing.setSlotID(self.getChildElementOptionalPositiveInteger(element, "SLOT-ID"))
|
|
2860
|
+
|
|
2861
|
+
def readFlexrayFrameTriggeringAbsolutelyScheduledTimings(self, element: ET.Element, triggering: FlexrayFrameTriggering):
|
|
2862
|
+
for child_element in self.findall(element, "ABSOLUTELY-SCHEDULED-TIMINGS/*"):
|
|
2863
|
+
tag_name = self.getTagName(child_element)
|
|
2864
|
+
if tag_name == "FLEXRAY-ABSOLUTELY-SCHEDULED-TIMING":
|
|
2865
|
+
timing = FlexrayAbsolutelyScheduledTiming()
|
|
2866
|
+
self.readFlexrayAbsolutelyScheduledTiming(child_element, timing)
|
|
2867
|
+
triggering.addAbsolutelyScheduledTiming(timing)
|
|
2868
|
+
else:
|
|
2869
|
+
self.notImplemented("Unsupported AbsolutelyScheduledTiming <%s>" % tag_name)
|
|
2870
|
+
|
|
2871
|
+
def readFlexrayFrameTriggering(self, element: ET.Element, triggering: FlexrayFrameTriggering):
|
|
2872
|
+
self.logger.debug("Read FlexrayFrameTriggering %s" % triggering.getShortName())
|
|
2873
|
+
self.readFrameTriggering(element, triggering)
|
|
2874
|
+
self.readFlexrayFrameTriggeringAbsolutelyScheduledTimings(element, triggering)
|
|
2875
|
+
triggering.setAllowDynamicLSduLength(self.getChildElementOptionalBooleanValue(element, "ALLOW-DYNAMIC-L-SDU-LENGTH")) \
|
|
2876
|
+
.setMessageId(self.getChildElementOptionalPositiveInteger(element, "MESSAGE-ID")) \
|
|
2877
|
+
.setPayloadPreambleIndicator(self.getChildElementOptionalBooleanValue(element, "PAYLOAD-PREAMBLE-INDICATOR"))
|
|
2406
2878
|
|
|
2407
2879
|
def readISignalTriggering(self, element: ET.Element, triggering: ISignalTriggering):
|
|
2408
2880
|
self.logger.debug("Read ISignalTriggering %s" % triggering.getShortName())
|
|
@@ -2421,10 +2893,11 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2421
2893
|
for child_element in self.findall(element, 'I-SIGNAL-TRIGGERINGS/I-SIGNAL-TRIGGERING-REF-CONDITIONAL'):
|
|
2422
2894
|
triggering.addISignalTriggeringRef(self.getChildElementOptionalRefType(child_element, "I-SIGNAL-TRIGGERING-REF"))
|
|
2423
2895
|
|
|
2424
|
-
def
|
|
2896
|
+
def readPhysicalChannelCommConnectorRefs(self, element: ET.Element, channel: PhysicalChannel):
|
|
2425
2897
|
for child_element in self.findall(element, 'COMM-CONNECTORS/COMMUNICATION-CONNECTOR-REF-CONDITIONAL'):
|
|
2426
2898
|
channel.addCommConnectorRef(self.getChildElementOptionalRefType(child_element, "COMMUNICATION-CONNECTOR-REF"))
|
|
2427
|
-
|
|
2899
|
+
|
|
2900
|
+
def readPhysicalChannelFrameTriggerings(self, element: ET.Element, channel: PhysicalChannel):
|
|
2428
2901
|
for child_element in self.findall(element, "FRAME-TRIGGERINGS/*"):
|
|
2429
2902
|
tag_name = self.getTagName(child_element)
|
|
2430
2903
|
if tag_name == "CAN-FRAME-TRIGGERING":
|
|
@@ -2433,9 +2906,13 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2433
2906
|
elif tag_name == "LIN-FRAME-TRIGGERING":
|
|
2434
2907
|
triggering = channel.createLinFrameTriggering(self.getShortName(child_element))
|
|
2435
2908
|
self.readLinFrameTriggering(child_element, triggering)
|
|
2909
|
+
elif tag_name == "FLEXRAY-FRAME-TRIGGERING":
|
|
2910
|
+
triggering = channel.createFlexrayFrameTriggering(self.getShortName(child_element))
|
|
2911
|
+
self.readFlexrayFrameTriggering(child_element, triggering)
|
|
2436
2912
|
else:
|
|
2437
2913
|
self.notImplemented("Unsupported Frame Triggering <%s>" % tag_name)
|
|
2438
|
-
|
|
2914
|
+
|
|
2915
|
+
def readPhysicalChannelISignalTriggerings(self, element: ET.Element, channel: PhysicalChannel):
|
|
2439
2916
|
for child_element in self.findall(element, "I-SIGNAL-TRIGGERINGS/*"):
|
|
2440
2917
|
tag_name = self.getTagName(child_element)
|
|
2441
2918
|
if tag_name == "I-SIGNAL-TRIGGERING":
|
|
@@ -2443,7 +2920,8 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2443
2920
|
self.readISignalTriggering(child_element, triggering)
|
|
2444
2921
|
else:
|
|
2445
2922
|
self.notImplemented("Unsupported Frame Triggering <%s>" % tag_name)
|
|
2446
|
-
|
|
2923
|
+
|
|
2924
|
+
def readPhysicalChannelPduTriggerings(self, element, channel):
|
|
2447
2925
|
for child_element in self.findall(element, "PDU-TRIGGERINGS/*"):
|
|
2448
2926
|
tag_name = self.getTagName(child_element)
|
|
2449
2927
|
if tag_name == "PDU-TRIGGERING":
|
|
@@ -2452,8 +2930,15 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2452
2930
|
else:
|
|
2453
2931
|
self.notImplemented("Unsupported Frame Triggering <%s>" % tag_name)
|
|
2454
2932
|
|
|
2455
|
-
def
|
|
2933
|
+
def readPhysicalChannel(self, element: ET.Element, channel: PhysicalChannel):
|
|
2456
2934
|
self.readIdentifiable(element, channel)
|
|
2935
|
+
|
|
2936
|
+
self.readPhysicalChannelCommConnectorRefs(element, channel)
|
|
2937
|
+
self.readPhysicalChannelFrameTriggerings(element, channel)
|
|
2938
|
+
self.readPhysicalChannelISignalTriggerings(element, channel)
|
|
2939
|
+
self.readPhysicalChannelPduTriggerings(element, channel)
|
|
2940
|
+
|
|
2941
|
+
def readCanPhysicalChannel(self, element: ET.Element, channel: CanPhysicalChannel):
|
|
2457
2942
|
self.readPhysicalChannel(element, channel)
|
|
2458
2943
|
|
|
2459
2944
|
def readScheduleTableEntry(self, element: ET.Element, entry: ScheduleTableEntry):
|
|
@@ -2492,7 +2977,6 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2492
2977
|
self.notImplemented("Unsupported Schedule Table <%s>" % tag_name)
|
|
2493
2978
|
|
|
2494
2979
|
def readLinPhysicalChannel(self, element: ET.Element, channel: LinPhysicalChannel):
|
|
2495
|
-
self.readIdentifiable(element, channel)
|
|
2496
2980
|
self.readPhysicalChannel(element, channel)
|
|
2497
2981
|
self.readLinPhysicalChannelScheduleTables(element, channel)
|
|
2498
2982
|
|
|
@@ -2517,7 +3001,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2517
3001
|
else:
|
|
2518
3002
|
self.notImplemented("Unsupported Network EndPoint Address <%s>" % tag_name)
|
|
2519
3003
|
|
|
2520
|
-
def getDoIpEntity(self, element: ET.Element, key:str) -> DoIpEntity:
|
|
3004
|
+
def getDoIpEntity(self, element: ET.Element, key: str) -> DoIpEntity:
|
|
2521
3005
|
entity = None
|
|
2522
3006
|
child_element = self.find(element, key)
|
|
2523
3007
|
if child_element is not None:
|
|
@@ -2525,7 +3009,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2525
3009
|
entity.setDoIpEntityRole(self.getChildElementOptionalLiteral(child_element, "DO-IP-ENTITY-ROLE"))
|
|
2526
3010
|
return entity
|
|
2527
3011
|
|
|
2528
|
-
def getInfrastructureServices(self, element: ET.Element, key:str) -> InfrastructureServices:
|
|
3012
|
+
def getInfrastructureServices(self, element: ET.Element, key: str) -> InfrastructureServices:
|
|
2529
3013
|
services = None
|
|
2530
3014
|
child_element = self.find(element, key)
|
|
2531
3015
|
if child_element is not None:
|
|
@@ -2571,7 +3055,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2571
3055
|
connection = SocketConnection()
|
|
2572
3056
|
connection.setClientIpAddrFromConnectionRequest(self.getChildElementOptionalBooleanValue(element, "CLIENT-IP-ADDR-FROM-CONNECTION-REQUEST")) \
|
|
2573
3057
|
.setClientPortFromConnectionRequest(self.getChildElementOptionalBooleanValue(element, "CLIENT-PORT-FROM-CONNECTION-REQUEST")) \
|
|
2574
|
-
.setClientPortRef(self.getChildElementOptionalRefType(element, "CLIENT-PORT-REF"))
|
|
3058
|
+
.setClientPortRef(self.getChildElementOptionalRefType(element, "CLIENT-PORT-REF")) # NOQA E501
|
|
2575
3059
|
for pdu in self.getSocketConnectionPdus(element):
|
|
2576
3060
|
connection.addPdu(pdu)
|
|
2577
3061
|
connection.setPduCollectionMaxBufferSize(self.getChildElementOptionalPositiveInteger(element, "PDU-COLLECTION-MAX-BUFFER-SIZE")) \
|
|
@@ -2586,7 +3070,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2586
3070
|
tag_name = self.getTagName(child_element)
|
|
2587
3071
|
if tag_name == "SOCKET-CONNECTION":
|
|
2588
3072
|
bundle.addBundledConnection(self.getSocketConnection(child_element))
|
|
2589
|
-
else:
|
|
3073
|
+
else:
|
|
2590
3074
|
self.notImplemented("Unsupported Bundled Connection <%s>" % tag_name)
|
|
2591
3075
|
|
|
2592
3076
|
def readSocketConnectionBundle(self, element: ET.Element, bundle: SocketConnectionBundle):
|
|
@@ -2616,12 +3100,11 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2616
3100
|
|
|
2617
3101
|
def readTcpTp(self, element: ET.Element, tp: TcpTp):
|
|
2618
3102
|
tp.setKeepAliveInterval(self.getChildElementOptionalTimeValue(element, "KEEP-ALIVE-INTERVAL")) \
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
3103
|
+
.setKeepAliveProbesMax(self.getChildElementOptionalPositiveInteger(element, "KEEP-ALIVE-PROBES-MAX")) \
|
|
3104
|
+
.setKeepAliveTime(self.getChildElementOptionalTimeValue(element, "KEEP-ALIVE-TIME")) \
|
|
3105
|
+
.setKeepAlives(self.getChildElementOptionalBooleanValue(element, "KEEP-ALIVES")) \
|
|
3106
|
+
.setNaglesAlgorithm(self.getChildElementOptionalLiteral(element, "NAGLES-ALGORITHM")) \
|
|
3107
|
+
.setTcpTpPort(self.getTpPort(element, "TCP-TP-PORT"))
|
|
2625
3108
|
|
|
2626
3109
|
def readGenericTp(self, element: ET.Element, tp: GenericTp):
|
|
2627
3110
|
tp.setTpAddress(self.getChildElementOptionalLiteral(element, "TP-ADDRESS")) \
|
|
@@ -2657,17 +3140,6 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2657
3140
|
delay.setMaxValue(self.getChildElementOptionalTimeValue(child_element, "MAX-VALUE")) \
|
|
2658
3141
|
.setMinValue(self.getChildElementOptionalTimeValue(child_element, "MIN-VALUE"))
|
|
2659
3142
|
return delay
|
|
2660
|
-
|
|
2661
|
-
def getInitialSdDelayConfig(self, element: ET.Element, key: str) -> InitialSdDelayConfig:
|
|
2662
|
-
config = None
|
|
2663
|
-
child_element = self.find(element, key)
|
|
2664
|
-
if child_element is not None:
|
|
2665
|
-
config = InitialSdDelayConfig()
|
|
2666
|
-
config.setInitialDelayMaxValue(self.getChildElementOptionalTimeValue(child_element, "INITIAL-DELAY-MAX-VALUE")) \
|
|
2667
|
-
.setInitialDelayMinValue(self.getChildElementOptionalTimeValue(child_element, "INITIAL-DELAY-MIN-VALUE")) \
|
|
2668
|
-
.setInitialRepetitionsBaseDelay(self.getChildElementOptionalTimeValue(child_element, "INITIAL-REPETITIONS-BASE-DELAY")) \
|
|
2669
|
-
.setInitialRepetitionsMax(self.getChildElementOptionalPositiveInteger(child_element, "INITIAL-REPETITIONS-MAX"))
|
|
2670
|
-
return config
|
|
2671
3143
|
|
|
2672
3144
|
def getSdClientConfig(self, element: ET.Element, key: str) -> SdClientConfig:
|
|
2673
3145
|
config = None
|
|
@@ -2722,7 +3194,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2722
3194
|
.setInitialRepetitionsBaseDelay(self.getChildElementOptionalTimeValue(child_element, "INITIAL-REPETITIONS-BASE-DELAY")) \
|
|
2723
3195
|
.setInitialRepetitionsMax(self.getChildElementOptionalPositiveInteger(child_element, "INITIAL-REPETITIONS-MAX"))
|
|
2724
3196
|
return config
|
|
2725
|
-
|
|
3197
|
+
|
|
2726
3198
|
def getSdServerConfig(self, element: ET.Element, key: str) -> SdServerConfig:
|
|
2727
3199
|
config = None
|
|
2728
3200
|
child_element = self.find(element, key)
|
|
@@ -2744,7 +3216,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2744
3216
|
handler.setMulticastThreshold(self.getChildElementOptionalPositiveInteger(element, "MULTICAST-THRESHOLD"))
|
|
2745
3217
|
for ref in self.getChildElementRefTypeList(element, "ROUTING-GROUP-REFS/ROUTING-GROUP-REF"):
|
|
2746
3218
|
handler.addRoutingGroupRef(ref)
|
|
2747
|
-
handler.setSdServerConfig(self.getSdServerConfig(element, "SD-SERVER-CONFIG"))
|
|
3219
|
+
handler.setSdServerConfig(self.getSdServerConfig(element, "SD-SERVER-CONFIG"))
|
|
2748
3220
|
|
|
2749
3221
|
def readProvidedServiceInstanceEventHandlers(self, element: ET.Element, instance: ProvidedServiceInstance):
|
|
2750
3222
|
for child_element in self.findall(element, "EVENT-HANDLERS/*"):
|
|
@@ -2785,7 +3257,6 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2785
3257
|
for ref in self.getChildElementRefTypeList(element, "MULTICAST-CONNECTOR-REFS/MULTICAST-CONNECTOR-REF"):
|
|
2786
3258
|
address.addMulticastConnectorRef(ref)
|
|
2787
3259
|
|
|
2788
|
-
|
|
2789
3260
|
def readSocketAddress(self, element: ET.Element, address: SocketAddress):
|
|
2790
3261
|
self.readIdentifiable(element, address)
|
|
2791
3262
|
self.readSocketAddressApplicationEndpoint(element, address)
|
|
@@ -2793,7 +3264,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2793
3264
|
address.setConnectorRef(self.getChildElementOptionalRefType(element, "CONNECTOR-REF")) \
|
|
2794
3265
|
.setPortAddress(self.getChildElementOptionalPositiveInteger(element, "PORT-ADDRESS"))
|
|
2795
3266
|
|
|
2796
|
-
def readSoAdConfigSocketAddresses(self, element: ET.Element, config: SoAdConfig):
|
|
3267
|
+
def readSoAdConfigSocketAddresses(self, element: ET.Element, config: SoAdConfig):
|
|
2797
3268
|
for child_element in self.findall(element, "SOCKET-ADDRESSS/*"):
|
|
2798
3269
|
tag_name = self.getTagName(child_element)
|
|
2799
3270
|
if tag_name == "SOCKET-ADDRESS":
|
|
@@ -2818,12 +3289,15 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2818
3289
|
vlan.setVlanIdentifier(self.getChildElementOptionalPositiveInteger(child_element, "VLAN-IDENTIFIER"))
|
|
2819
3290
|
|
|
2820
3291
|
def readEthernetPhysicalChannel(self, element: ET.Element, channel: EthernetPhysicalChannel):
|
|
2821
|
-
self.readIdentifiable(element, channel)
|
|
2822
3292
|
self.readPhysicalChannel(element, channel)
|
|
2823
3293
|
self.readEthernetPhysicalChannelNetworkEndPoints(element, channel)
|
|
2824
3294
|
channel.setSoAdConfig(self.getSoAdConfig(element, "SO-AD-CONFIG"))
|
|
2825
3295
|
self.readEthernetPhysicalChannelVlan(element, channel)
|
|
2826
3296
|
|
|
3297
|
+
def readFlexrayPhysicalChannel(self, element: ET.Element, channel: FlexrayPhysicalChannel):
|
|
3298
|
+
self.readPhysicalChannel(element, channel)
|
|
3299
|
+
channel.setChannelName(self.getChildElementOptionalLiteral(element, "CHANNEL-NAME"))
|
|
3300
|
+
|
|
2827
3301
|
def readCommunicationClusterPhysicalChannels(self, element: ET.Element, cluster: CommunicationCluster):
|
|
2828
3302
|
for child_element in self.findall(element, "PHYSICAL-CHANNELS/*"):
|
|
2829
3303
|
tag_name = self.getTagName(child_element)
|
|
@@ -2836,12 +3310,14 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2836
3310
|
elif tag_name == "ETHERNET-PHYSICAL-CHANNEL":
|
|
2837
3311
|
channel = cluster.createEthernetPhysicalChannel(self.getShortName(child_element))
|
|
2838
3312
|
self.readEthernetPhysicalChannel(child_element, channel)
|
|
3313
|
+
elif tag_name == "FLEXRAY-PHYSICAL-CHANNEL":
|
|
3314
|
+
channel = cluster.createFlexrayPhysicalChannel(self.getShortName(child_element))
|
|
3315
|
+
self.readFlexrayPhysicalChannel(child_element, channel)
|
|
2839
3316
|
else:
|
|
2840
3317
|
self.notImplemented("Unsupported Physical Channel <%s>" % tag_name)
|
|
2841
3318
|
|
|
2842
|
-
|
|
2843
3319
|
def readCommunicationCluster(self, element: ET.Element, cluster: CommunicationCluster):
|
|
2844
|
-
cluster.setBaudrate(self.getChildElementOptionalNumericalValue(element, "BAUDRATE"))
|
|
3320
|
+
cluster.setBaudrate(self.getChildElementOptionalNumericalValue(element, "BAUDRATE"))
|
|
2845
3321
|
self.readCommunicationClusterPhysicalChannels(element, cluster)
|
|
2846
3322
|
cluster.setProtocolName(self.getChildElementOptionalLiteral(element, "PROTOCOL-NAME")) \
|
|
2847
3323
|
.setProtocolVersion(self.getChildElementOptionalLiteral(element, "PROTOCOL-VERSION"))
|
|
@@ -2857,6 +3333,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2857
3333
|
return recovery
|
|
2858
3334
|
|
|
2859
3335
|
def readAbstractCanCluster(self, element: ET.Element, cluster: AbstractCanCluster):
|
|
3336
|
+
self.readCommunicationCluster(element, cluster)
|
|
2860
3337
|
cluster.setBusOffRecovery(self.getCanClusterBusOffRecovery(element, "BUS-OFF-RECOVERY")) \
|
|
2861
3338
|
.setCanFdBaudrate(self.getChildElementOptionalNumericalValue(element, "CAN-FD-BAUDRATE")) \
|
|
2862
3339
|
.setSpeed(self.getChildElementOptionalNumericalValue(element, "SPEED"))
|
|
@@ -2873,9 +3350,47 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
2873
3350
|
self.readIdentifiable(element, cluster)
|
|
2874
3351
|
child_element = self.find(element, "CAN-CLUSTER-VARIANTS/CAN-CLUSTER-CONDITIONAL")
|
|
2875
3352
|
if child_element is not None:
|
|
2876
|
-
self.readCommunicationCluster(child_element, cluster)
|
|
2877
3353
|
self.readAbstractCanCluster(child_element, cluster)
|
|
2878
3354
|
|
|
3355
|
+
def readFlexrayCluster(self, element: ET.Element, cluster: FlexrayCluster):
|
|
3356
|
+
self.logger.debug("Read FlexrayCluster <%s>" % cluster.getShortName())
|
|
3357
|
+
self.readIdentifiable(element, cluster)
|
|
3358
|
+
child_element = self.find(element, "FLEXRAY-CLUSTER-VARIANTS/FLEXRAY-CLUSTER-CONDITIONAL")
|
|
3359
|
+
if child_element is not None:
|
|
3360
|
+
self.readCommunicationCluster(child_element, cluster)
|
|
3361
|
+
cluster.setActionPointOffset(self.getChildElementOptionalIntegerValue(child_element, "ACTION-POINT-OFFSET")) \
|
|
3362
|
+
.setBit(self.getChildElementOptionalTimeValue(child_element, "BIT")) \
|
|
3363
|
+
.setCasRxLowMax(self.getChildElementOptionalIntegerValue(child_element, "CAS-RX-LOW-MAX")) \
|
|
3364
|
+
.setColdStartAttempts(self.getChildElementOptionalIntegerValue(child_element, "COLD-START-ATTEMPTS")) \
|
|
3365
|
+
.setCycle(self.getChildElementOptionalTimeValue(child_element, "CYCLE")) \
|
|
3366
|
+
.setCycleCountMax(self.getChildElementOptionalIntegerValue(child_element, "CYCLE-COUNT-MAX")) \
|
|
3367
|
+
.setDetectNitError(self.getChildElementOptionalBooleanValue(child_element, "DETECT-NIT-ERROR")) \
|
|
3368
|
+
.setDynamicSlotIdlePhase(self.getChildElementOptionalIntegerValue(child_element, "DYNAMIC-SLOT-IDLE-PHASE")) \
|
|
3369
|
+
.setIgnoreAfterTx(self.getChildElementOptionalIntegerValue(child_element, "IGNORE-AFTER-TX")) \
|
|
3370
|
+
.setListenNoise(self.getChildElementOptionalIntegerValue(child_element, "LISTEN-NOISE")) \
|
|
3371
|
+
.setMacroPerCycle(self.getChildElementOptionalIntegerValue(child_element, "MACRO-PER-CYCLE")) \
|
|
3372
|
+
.setMacrotickDuration(self.getChildElementOptionalTimeValue(child_element, "MACROTICK-DURATION")) \
|
|
3373
|
+
.setMaxWithoutClockCorrectionFatal(self.getChildElementOptionalIntegerValue(child_element, "MAX-WITHOUT-CLOCK-CORRECTION-FATAL")) \
|
|
3374
|
+
.setMaxWithoutClockCorrectionPassive(self.getChildElementOptionalIntegerValue(child_element, "MAX-WITHOUT-CLOCK-CORRECTION-PASSIVE")) \
|
|
3375
|
+
.setMinislotActionPointOffset(self.getChildElementOptionalIntegerValue(child_element, "MINISLOT-ACTION-POINT-OFFSET")) \
|
|
3376
|
+
.setMinislotDuration(self.getChildElementOptionalIntegerValue(child_element, "MINISLOT-DURATION")) \
|
|
3377
|
+
.setNetworkIdleTime(self.getChildElementOptionalIntegerValue(child_element, "NETWORK-IDLE-TIME")) \
|
|
3378
|
+
.setNetworkManagementVectorLength(self.getChildElementOptionalIntegerValue(child_element, "NETWORK-MANAGEMENT-VECTOR-LENGTH")) \
|
|
3379
|
+
.setNumberOfMinislots(self.getChildElementOptionalIntegerValue(child_element, "NUMBER-OF-MINISLOTS")) \
|
|
3380
|
+
.setNumberOfStaticSlots(self.getChildElementOptionalIntegerValue(child_element, "NUMBER-OF-STATIC-SLOTS")) \
|
|
3381
|
+
.setOffsetCorrectionStart(self.getChildElementOptionalIntegerValue(child_element, "OFFSET-CORRECTION-START")) \
|
|
3382
|
+
.setPayloadLengthStatic(self.getChildElementOptionalIntegerValue(child_element, "PAYLOAD-LENGTH-STATIC")) \
|
|
3383
|
+
.setSafetyMargin(self.getChildElementOptionalIntegerValue(child_element, "SAFETY-MARGIN")) \
|
|
3384
|
+
.setSampleClockPeriod(self.getChildElementOptionalTimeValue(child_element, "SAMPLE-CLOCK-PERIOD")) \
|
|
3385
|
+
.setStaticSlotDuration(self.getChildElementOptionalIntegerValue(child_element, "STATIC-SLOT-DURATION")) \
|
|
3386
|
+
.setSyncFrameIdCountMax(self.getChildElementOptionalIntegerValue(child_element, "SYNC-FRAME-ID-COUNT-MAX")) \
|
|
3387
|
+
.setTransmissionStartSequenceDuration(self.getChildElementOptionalIntegerValue(child_element, "TRANSMISSION-START-SEQUENCE-DURATION")) \
|
|
3388
|
+
.setWakeupRxIdle(self.getChildElementOptionalIntegerValue(child_element, "WAKEUP-RX-IDLE")) \
|
|
3389
|
+
.setWakeupRxLow(self.getChildElementOptionalIntegerValue(child_element, "WAKEUP-RX-LOW")) \
|
|
3390
|
+
.setWakeupRxWindow(self.getChildElementOptionalIntegerValue(child_element, "WAKEUP-RX-WINDOW")) \
|
|
3391
|
+
.setWakeupTxActive(self.getChildElementOptionalIntegerValue(child_element, "WAKEUP-TX-ACTIVE")) \
|
|
3392
|
+
.setWakeupTxIdle(self.getChildElementOptionalIntegerValue(child_element, "WAKEUP-TX-IDLE")) # noqa E501
|
|
3393
|
+
|
|
2879
3394
|
def readMacMulticastGroup(self, element: ET.Element, group: MacMulticastGroup):
|
|
2880
3395
|
self.readIdentifiable(element, group)
|
|
2881
3396
|
group.setMacMulticastAddress(self.getChildElementOptionalLiteral(element, "MAC-MULTICAST-ADDRESS",))
|
|
@@ -3082,6 +3597,53 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3082
3597
|
self.readDoIpTpConfigDoIpLogicAddresses(element, config)
|
|
3083
3598
|
self.readDoIpTpConfigTpConnections(element, config)
|
|
3084
3599
|
|
|
3600
|
+
def readHwDescriptionEntityHwCategoryRefs(self, element: ET.Element, entity: HwDescriptionEntity):
|
|
3601
|
+
for ref in self.getChildElementRefTypeList(element, "HW-CATEGORY-REFS/HW-CATEGORY-REF"):
|
|
3602
|
+
entity.addHwCategoryRef(ref)
|
|
3603
|
+
|
|
3604
|
+
def readHwDescriptionEntity(self, element: ET.Element, entity: HwDescriptionEntity):
|
|
3605
|
+
self.readARElement(element, entity)
|
|
3606
|
+
self.readHwDescriptionEntityHwCategoryRefs(element, entity)
|
|
3607
|
+
|
|
3608
|
+
def readHwPinGroup(self, element: ET.SubElement, pin_group: HwPinGroup):
|
|
3609
|
+
self.readHwDescriptionEntity(element, pin_group)
|
|
3610
|
+
|
|
3611
|
+
def readHwElementHwPinGroups(self, element: ET.Element, hw_element: HwElement):
|
|
3612
|
+
for child_element in self.findall(element, "HW-PIN-GROUPS/*"):
|
|
3613
|
+
tag_name = self.getTagName(child_element)
|
|
3614
|
+
if tag_name == "HW-PIN-GROUP":
|
|
3615
|
+
pin_group = hw_element.createHwPinGroup(self.getShortName(child_element))
|
|
3616
|
+
self.readHwPinGroup(child_element, pin_group)
|
|
3617
|
+
else:
|
|
3618
|
+
self.notImplemented("Unsupported Hw Pin Group <%s>" % tag_name)
|
|
3619
|
+
|
|
3620
|
+
def readHwElement(self, element: ET.Element, hw_element: HwElement):
|
|
3621
|
+
self.logger.debug("Read HwElement <%s>" % hw_element.getShortName())
|
|
3622
|
+
self.readHwDescriptionEntity(element, hw_element)
|
|
3623
|
+
self.readHwElementHwPinGroups(element, hw_element)
|
|
3624
|
+
|
|
3625
|
+
def readHwAttributeDef(self, element: ET.Element, attribute_def: HwAttributeDef):
|
|
3626
|
+
self.readIdentifiable(element, attribute_def)
|
|
3627
|
+
attribute_def.setUnitRef(self.getChildElementOptionalRefType(element, "UNIT-REF"))
|
|
3628
|
+
|
|
3629
|
+
def readHwCategoryHwAttributeDef(self, element: ET.Element, hw_category: HwCategory):
|
|
3630
|
+
for child_element in self.findall(element, "HW-ATTRIBUTE-DEFS/*"):
|
|
3631
|
+
tag_name = self.getTagName(child_element)
|
|
3632
|
+
if tag_name == "HW-ATTRIBUTE-DEF":
|
|
3633
|
+
pin_group = hw_category.createHwAttributeDef(self.getShortName(child_element))
|
|
3634
|
+
self.readHwAttributeDef(child_element, pin_group)
|
|
3635
|
+
else:
|
|
3636
|
+
self.notImplemented("Unsupported Hw Attribute Defs <%s>" % tag_name)
|
|
3637
|
+
|
|
3638
|
+
def readHwCategory(self, element: ET.Element, hw_category: HwCategory):
|
|
3639
|
+
self.logger.debug("Read HwCategory <%s>" % hw_category.getShortName())
|
|
3640
|
+
self.readARElement(element, hw_category)
|
|
3641
|
+
self.readHwCategoryHwAttributeDef(element, hw_category)
|
|
3642
|
+
|
|
3643
|
+
def readHwType(self, element: ET.Element, type: HwType):
|
|
3644
|
+
self.logger.debug("Read HwType <%s>" % type.getShortName())
|
|
3645
|
+
self.readARElement(element, type)
|
|
3646
|
+
|
|
3085
3647
|
def readPduToFrameMappings(self, element: ET.Element, parent: Frame):
|
|
3086
3648
|
for child_element in self.findall(element, "PDU-TO-FRAME-MAPPINGS/PDU-TO-FRAME-MAPPING"):
|
|
3087
3649
|
short_name = self.getShortName(child_element)
|
|
@@ -3153,7 +3715,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3153
3715
|
.setDataId(self.getChildElementOptionalPositiveInteger(child_element, "DATA-ID")) \
|
|
3154
3716
|
.setFreshnessValueId(self.getChildElementOptionalPositiveInteger(child_element, "FRESHNESS-VALUE-ID")) \
|
|
3155
3717
|
.setFreshnessValueLength(self.getChildElementOptionalPositiveInteger(child_element, "FRESHNESS-VALUE-LENGTH")) \
|
|
3156
|
-
.setFreshnessValueTxLength(self.getChildElementOptionalPositiveInteger(child_element, "FRESHNESS-VALUE-TX-LENGTH"))
|
|
3718
|
+
.setFreshnessValueTxLength(self.getChildElementOptionalPositiveInteger(child_element, "FRESHNESS-VALUE-TX-LENGTH")) # NOQA E501
|
|
3157
3719
|
return props
|
|
3158
3720
|
|
|
3159
3721
|
def readSecuredIPdu(self, element: ET.Element, i_pdu: SecuredIPdu):
|
|
@@ -3176,7 +3738,6 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3176
3738
|
nm_node.addRxNmPduRef(ref)
|
|
3177
3739
|
for ref in self.getChildElementRefTypeList(element, "TX-NM-PDU-REFS/TX-NM-PDU-REF"):
|
|
3178
3740
|
nm_node.addTxNmPduRefs(ref)
|
|
3179
|
-
|
|
3180
3741
|
|
|
3181
3742
|
def readCanNmNode(self, element: ET.Element, nm_node: CanNmNode):
|
|
3182
3743
|
self.logger.debug("Read CanNmNode <%s>" % nm_node.getShortName())
|
|
@@ -3205,7 +3766,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3205
3766
|
self.notImplemented("Unsupported Nm Node <%s>" % tag_name)
|
|
3206
3767
|
|
|
3207
3768
|
def getCanNmClusterCoupling(self, element: ET.Element) -> CanNmClusterCoupling:
|
|
3208
|
-
coupling
|
|
3769
|
+
coupling = CanNmClusterCoupling()
|
|
3209
3770
|
for ref in self.getChildElementRefTypeList(element, "COUPLED-CLUSTER-REFS/COUPLED-CLUSTER-REF"):
|
|
3210
3771
|
coupling.addCoupledClusterRef(ref)
|
|
3211
3772
|
coupling.setNmBusloadReductionEnabled(self.getChildElementOptionalBooleanValue(element, "NM-BUSLOAD-REDUCTION-ENABLED")) \
|
|
@@ -3401,7 +3962,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3401
3962
|
|
|
3402
3963
|
def readCanTpEcu(self, element: ET.Element, tp_ecu: CanTpEcu):
|
|
3403
3964
|
tp_ecu.setCycleTimeMainFunction(self.getChildElementOptionalTimeValue(element, "CYCLE-TIME-MAIN-FUNCTION")) \
|
|
3404
|
-
.setEcuInstanceRef(self.getChildElementOptionalRefType(element, "ECU-INSTANCE-REF"))
|
|
3965
|
+
.setEcuInstanceRef(self.getChildElementOptionalRefType(element, "ECU-INSTANCE-REF"))
|
|
3405
3966
|
|
|
3406
3967
|
def readCanTpConfigTpEcus(self, element: ET.Element, config: CanTpConfig):
|
|
3407
3968
|
for child_element in self.findall(element, "TP-ECUS/*"):
|
|
@@ -3457,7 +4018,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3457
4018
|
self.readTpConnection(element, connection)
|
|
3458
4019
|
connection.setDataPduRef(self.getChildElementOptionalRefType(element, "DATA-PDU-REF")) \
|
|
3459
4020
|
.setFlowControlRef(self.getChildElementOptionalRefType(element, "FLOW-CONTROL-REF")) \
|
|
3460
|
-
.setLinTpNSduRef(self.getChildElementOptionalRefType(element, "LIN-TP-N-SDU-REF"))
|
|
4021
|
+
.setLinTpNSduRef(self.getChildElementOptionalRefType(element, "LIN-TP-N-SDU-REF"))
|
|
3461
4022
|
self.readTpConnectionReceiverRefs(element, connection)
|
|
3462
4023
|
connection.setTimeoutAs(self.getChildElementOptionalTimeValue(element, "TIMEOUT-AS")) \
|
|
3463
4024
|
.setTimeoutCr(self.getChildElementOptionalTimeValue(element, "TIMEOUT-CR")) \
|
|
@@ -3502,6 +4063,179 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3502
4063
|
self.logger.debug("Read CanFrame <%s>" % frame.getShortName())
|
|
3503
4064
|
self.readFrame(element, frame)
|
|
3504
4065
|
|
|
4066
|
+
def readFlexrayFrame(self, element: ET.Element, frame: FlexrayFrame):
|
|
4067
|
+
self.logger.debug("Read FlexrayFrame <%s>" % frame.getShortName())
|
|
4068
|
+
self.readFrame(element, frame)
|
|
4069
|
+
|
|
4070
|
+
def readFlexrayCommunicationController(self, element: ET.Element, controller: FlexrayCommunicationController):
|
|
4071
|
+
self.logger.debug("Read CommunicationController <%s>" % controller.getShortName())
|
|
4072
|
+
self.readIdentifiable(element, controller)
|
|
4073
|
+
child_element = self.find(element, "FLEXRAY-COMMUNICATION-CONTROLLER-VARIANTS/FLEXRAY-COMMUNICATION-CONTROLLER-CONDITIONAL")
|
|
4074
|
+
if child_element is not None:
|
|
4075
|
+
self.readCommunicationController(element, controller)
|
|
4076
|
+
controller.setAcceptedStartupRange(self.getChildElementOptionalIntegerValue(child_element, "ACCEPTED-STARTUP-RANGE")) \
|
|
4077
|
+
.setAllowHaltDueToClock(self.getChildElementOptionalBooleanValue(child_element, "ALLOW-HALT-DUE-TO-CLOCK")) \
|
|
4078
|
+
.setAllowPassiveToActive(self.getChildElementOptionalIntegerValue(child_element, "ALLOW-PASSIVE-TO-ACTIVE")) \
|
|
4079
|
+
.setClusterDriftDamping(self.getChildElementOptionalIntegerValue(child_element, "CLUSTER-DRIFT-DAMPING")) \
|
|
4080
|
+
.setDecodingCorrection(self.getChildElementOptionalIntegerValue(child_element, "DECODING-CORRECTION")) \
|
|
4081
|
+
.setDelayCompensationA(self.getChildElementOptionalIntegerValue(child_element, "DELAY-COMPENSATION-A")) \
|
|
4082
|
+
.setDelayCompensationB(self.getChildElementOptionalIntegerValue(child_element, "DELAY-COMPENSATION-B")) \
|
|
4083
|
+
.setKeySlotOnlyEnabled(self.getChildElementOptionalBooleanValue(child_element, "KEY-SLOT-ONLY-ENABLED")) \
|
|
4084
|
+
.setKeySlotUsedForStartUp(self.getChildElementOptionalBooleanValue(child_element, "KEY-SLOT-USED-FOR-START-UP")) \
|
|
4085
|
+
.setKeySlotUsedForSync(self.getChildElementOptionalBooleanValue(child_element, "KEY-SLOT-USED-FOR-SYNC")) \
|
|
4086
|
+
.setLatestTX(self.getChildElementOptionalIntegerValue(child_element, "LATEST-TX")) \
|
|
4087
|
+
.setListenTimeout(self.getChildElementOptionalIntegerValue(child_element, "LISTEN-TIMEOUT")) \
|
|
4088
|
+
.setMacroInitialOffsetA(self.getChildElementOptionalIntegerValue(child_element, "MACRO-INITIAL-OFFSET-A")) \
|
|
4089
|
+
.setMacroInitialOffsetB(self.getChildElementOptionalIntegerValue(child_element, "MACRO-INITIAL-OFFSET-B")) \
|
|
4090
|
+
.setMaximumDynamicPayloadLength(self.getChildElementOptionalIntegerValue(child_element, "MAXIMUM-DYNAMIC-PAYLOAD-LENGTH")) \
|
|
4091
|
+
.setMicroInitialOffsetA(self.getChildElementOptionalIntegerValue(child_element, "MICRO-INITIAL-OFFSET-A")) \
|
|
4092
|
+
.setMicroInitialOffsetB(self.getChildElementOptionalIntegerValue(child_element, "MICRO-INITIAL-OFFSET-B")) \
|
|
4093
|
+
.setMicroPerCycle(self.getChildElementOptionalIntegerValue(child_element, "MICRO-PER-CYCLE")) \
|
|
4094
|
+
.setMicrotickDuration(self.getChildElementOptionalTimeValue(child_element, "MICROTICK-DURATION")) \
|
|
4095
|
+
.setOffsetCorrectionOut(self.getChildElementOptionalIntegerValue(child_element, "OFFSET-CORRECTION-OUT")) \
|
|
4096
|
+
.setRateCorrectionOut(self.getChildElementOptionalIntegerValue(child_element, "RATE-CORRECTION-OUT")) \
|
|
4097
|
+
.setSamplesPerMicrotick(self.getChildElementOptionalIntegerValue(child_element, "SAMPLES-PER-MICROTICK")) \
|
|
4098
|
+
.setWakeUpPattern(self.getChildElementOptionalIntegerValue(child_element, "WAKE-UP-PATTERN"))
|
|
4099
|
+
|
|
4100
|
+
def readDataTransformationTransformerChainRefs(self, element: ET.Element, dtf: DataTransformation):
|
|
4101
|
+
for ref in self.getChildElementRefTypeList(element, "TRANSFORMER-CHAIN-REFS/TRANSFORMER-CHAIN-REF"):
|
|
4102
|
+
dtf.addTransformerChainRef(ref)
|
|
4103
|
+
|
|
4104
|
+
def readDataTransformation(self, element: ET.Element, dtf: DataTransformation):
|
|
4105
|
+
self.readIdentifiable(element, dtf)
|
|
4106
|
+
dtf.setExecuteDespiteDataUnavailability(self.getChildElementOptionalBooleanValue(element, "EXECUTE-DESPITE-DATA-UNAVAILABILITY"))
|
|
4107
|
+
self.readDataTransformationTransformerChainRefs(element, dtf)
|
|
4108
|
+
|
|
4109
|
+
def readDataTransformationSetDataTransformations(self, element: ET.Element, dtf_set: DataTransformationSet):
|
|
4110
|
+
for child_element in self.findall(element, "DATA-TRANSFORMATIONS/*"):
|
|
4111
|
+
tag_name = self.getTagName(child_element)
|
|
4112
|
+
if tag_name == "DATA-TRANSFORMATION":
|
|
4113
|
+
dtf = dtf_set.createDataTransformation(self.getShortName(child_element))
|
|
4114
|
+
self.readDataTransformation(child_element, dtf)
|
|
4115
|
+
else:
|
|
4116
|
+
self.notImplemented("Unsupported DataTransformation <%s>" % tag_name)
|
|
4117
|
+
|
|
4118
|
+
def readBufferPropertiesBufferComputation(self, element: ET.Element, properties: BufferProperties):
|
|
4119
|
+
child_element = self.find(element, "BUFFER-COMPUTATION")
|
|
4120
|
+
if child_element is not None:
|
|
4121
|
+
scale = CompuScale()
|
|
4122
|
+
self.readCompuScale(child_element, scale)
|
|
4123
|
+
properties.setBufferComputation(scale)
|
|
4124
|
+
|
|
4125
|
+
def getBufferProperties(self, element: ET.Element, key: str) -> BufferProperties:
|
|
4126
|
+
properties = None
|
|
4127
|
+
child_element = self.find(element, key)
|
|
4128
|
+
if child_element is not None:
|
|
4129
|
+
properties = BufferProperties()
|
|
4130
|
+
self.readBufferPropertiesBufferComputation(child_element, properties)
|
|
4131
|
+
properties.setHeaderLength(self.getChildElementOptionalIntegerValue(child_element, "HEADER-LENGTH")) \
|
|
4132
|
+
.setInPlace(self.getChildElementOptionalBooleanValue(child_element, "IN-PLACE"))
|
|
4133
|
+
return properties
|
|
4134
|
+
|
|
4135
|
+
def readDescribable(self, element: ET.Element, desc: Describable):
|
|
4136
|
+
self.readARObjectAttributes(element, desc)
|
|
4137
|
+
|
|
4138
|
+
def readTransformationDescription(self, element: ET.Element, desc: TransformationDescription):
|
|
4139
|
+
self.readDescribable(element, desc)
|
|
4140
|
+
|
|
4141
|
+
def readEndToEndTransformationDescription(self, element: ET.Element, desc: EndToEndTransformationDescription):
|
|
4142
|
+
self.readTransformationDescription(element, desc)
|
|
4143
|
+
desc.setDataIdMode(self.getChildElementOptionalLiteral(element, "DATA-ID-MODE")) \
|
|
4144
|
+
.setMaxDeltaCounter(self.getChildElementOptionalPositiveInteger(element, "MAX-DELTA-COUNTER")) \
|
|
4145
|
+
.setMaxErrorStateInit(self.getChildElementOptionalPositiveInteger(element, "MAX-ERROR-STATE-INIT")) \
|
|
4146
|
+
.setMaxErrorStateInvalid(self.getChildElementOptionalPositiveInteger(element, "MAX-ERROR-STATE-INVALID")) \
|
|
4147
|
+
.setMaxErrorStateValid(self.getChildElementOptionalPositiveInteger(element, "MAX-ERROR-STATE-VALID")) \
|
|
4148
|
+
.setMaxNoNewOrRepeatedData(self.getChildElementOptionalPositiveInteger(element, "MAX-NO-NEW-OR-REPEATED-DATA")) \
|
|
4149
|
+
.setMinOkStateInit(self.getChildElementOptionalPositiveInteger(element, "MIN-OK-STATE-INIT")) \
|
|
4150
|
+
.setMinOkStateInvalid(self.getChildElementOptionalPositiveInteger(element, "MIN-OK-STATE-INVALID")) \
|
|
4151
|
+
.setMinOkStateValid(self.getChildElementOptionalPositiveInteger(element, "MIN-OK-STATE-VALID")) \
|
|
4152
|
+
.setProfileBehavior(self.getChildElementOptionalLiteral(element, "PROFILE-BEHAVIOR")) \
|
|
4153
|
+
.setProfileName(self.getChildElementOptionalLiteral(element, "PROFILE-NAME")) \
|
|
4154
|
+
.setSyncCounterInit(self.getChildElementOptionalPositiveInteger(element, "SYNC-COUNTER-INIT")) \
|
|
4155
|
+
.setUpperHeaderBitsToShift(self.getChildElementOptionalPositiveInteger(element, "UPPER-HEADER-BITS-TO-SHIFT")) \
|
|
4156
|
+
.setWindowSizeInit(self.getChildElementOptionalPositiveInteger(element, "WINDOW-SIZE-INIT")) \
|
|
4157
|
+
.setWindowSizeInvalid(self.getChildElementOptionalPositiveInteger(element, "WINDOW-SIZE-INVALID")) \
|
|
4158
|
+
.setWindowSizeValid(self.getChildElementOptionalPositiveInteger(element, "WINDOW-SIZE-VALID"))
|
|
4159
|
+
|
|
4160
|
+
def readTransformationTechnologyTransformationDescriptions(self, element: ET.Element, tech: TransformationTechnology):
|
|
4161
|
+
for child_element in self.findall(element, "TRANSFORMATION-DESCRIPTIONS/*"):
|
|
4162
|
+
tag_name = self.getTagName(child_element)
|
|
4163
|
+
if tag_name == "END-TO-END-TRANSFORMATION-DESCRIPTION":
|
|
4164
|
+
desc = EndToEndTransformationDescription()
|
|
4165
|
+
self.readEndToEndTransformationDescription(child_element, desc)
|
|
4166
|
+
tech.setTransformationDescription(desc)
|
|
4167
|
+
else:
|
|
4168
|
+
self.notImplemented("Unsupported TransformationDescription <%s>" % tag_name)
|
|
4169
|
+
|
|
4170
|
+
def readTransformationTechnology(self, element: ET.Element, tech: TransformationTechnology):
|
|
4171
|
+
self.readIdentifiable(element, tech)
|
|
4172
|
+
tech.setBufferProperties(self.getBufferProperties(element, "BUFFER-PROPERTIES")) \
|
|
4173
|
+
.setNeedsOriginalData(self.getChildElementOptionalBooleanValue(element, "NEEDS-ORIGINAL-DATA")) \
|
|
4174
|
+
.setProtocol(self.getChildElementOptionalLiteral(element, "PROTOCOL"))
|
|
4175
|
+
self.readTransformationTechnologyTransformationDescriptions(element, tech)
|
|
4176
|
+
tech.setTransformerClass(self.getChildElementOptionalLiteral(element, "TRANSFORMER-CLASS")) \
|
|
4177
|
+
.setVersion(self.getChildElementOptionalLiteral(element, "VERSION"))
|
|
4178
|
+
|
|
4179
|
+
def readDataTransformationSetTransformationTechnologies(self, element: ET.Element, dtf_set: DataTransformationSet):
|
|
4180
|
+
for child_element in self.findall(element, "TRANSFORMATION-TECHNOLOGYS/*"):
|
|
4181
|
+
tag_name = self.getTagName(child_element)
|
|
4182
|
+
if tag_name == "TRANSFORMATION-TECHNOLOGY":
|
|
4183
|
+
tech = dtf_set.createTransformationTechnology(self.getShortName(child_element))
|
|
4184
|
+
self.readTransformationTechnology(child_element, tech)
|
|
4185
|
+
else:
|
|
4186
|
+
self.notImplemented("Unsupported TransformationTechnology <%s>" % tag_name)
|
|
4187
|
+
|
|
4188
|
+
def readDataTransformationSet(self, element: ET.Element, dtf_set: DataTransformationSet):
|
|
4189
|
+
self.logger.debug("Read DataTransformationSet <%s>" % dtf_set.getShortName())
|
|
4190
|
+
self.readARElement(element, dtf_set)
|
|
4191
|
+
self.readDataTransformationSetDataTransformations(element, dtf_set)
|
|
4192
|
+
self.readDataTransformationSetTransformationTechnologies(element, dtf_set)
|
|
4193
|
+
|
|
4194
|
+
def readCollectionElementRefs(self, element: ET.Element, collection: Collection):
|
|
4195
|
+
for ref in self.getChildElementRefTypeList(element, "ELEMENT-REFS/ELEMENT-REF"):
|
|
4196
|
+
collection.addElementRef(ref)
|
|
4197
|
+
|
|
4198
|
+
def readCollectionSourceElementRefs(self, element: ET.Element, collection: Collection):
|
|
4199
|
+
for ref in self.getChildElementRefTypeList(element, "SOURCE-ELEMENT-REFS/SOURCE-ELEMENT-REF"):
|
|
4200
|
+
collection.addSourceElementRef(ref)
|
|
4201
|
+
|
|
4202
|
+
def readCollection(self, element: ET.Element, collection: Collection):
|
|
4203
|
+
self.logger.debug("Read Collection <%s>" % collection.getShortName())
|
|
4204
|
+
self.readARElement(element, collection)
|
|
4205
|
+
collection.setAutoCollect(self.getChildElementOptionalLiteral(element, "AUTO-COLLECT")) \
|
|
4206
|
+
.setElementRole(self.getChildElementOptionalLiteral(element, "ELEMENT-ROLE"))
|
|
4207
|
+
self.readCollectionElementRefs(element, collection)
|
|
4208
|
+
self.readCollectionSourceElementRefs(element, collection)
|
|
4209
|
+
|
|
4210
|
+
def readKeywordClassifications(self, element: ET.Element, keyword: Keyword):
|
|
4211
|
+
for literal in self.getChildElementLiteralValueList(element, "CLASSIFICATIONS/CLASSIFICATION"):
|
|
4212
|
+
keyword.addClassification(literal)
|
|
4213
|
+
|
|
4214
|
+
def readKeyword(self, element: ET.Element, keyword: Keyword):
|
|
4215
|
+
# self.logger.debug("Read Keyword <%s>" % keyword.getShortName())
|
|
4216
|
+
self.readIdentifiable(element, keyword)
|
|
4217
|
+
keyword.setAbbrName(self.getChildElementOptionalLiteral(element, "ABBR-NAME"))
|
|
4218
|
+
self.readKeywordClassifications(element, keyword)
|
|
4219
|
+
|
|
4220
|
+
def readKeywordSetKeywords(self, element: ET.Element, keyword_set: KeywordSet):
|
|
4221
|
+
for child_element in self.findall(element, "KEYWORDS/*"):
|
|
4222
|
+
tag_name = self.getTagName(child_element)
|
|
4223
|
+
if tag_name == "KEYWORD":
|
|
4224
|
+
tech = keyword_set.createKeyword(self.getShortName(child_element))
|
|
4225
|
+
self.readKeyword(child_element, tech)
|
|
4226
|
+
else:
|
|
4227
|
+
self.notImplemented("Unsupported Keyword <%s>" % tag_name)
|
|
4228
|
+
|
|
4229
|
+
def readKeywordSet(self, element: ET.Element, keyword_set: KeywordSet):
|
|
4230
|
+
self.logger.debug("Read KeywordSet <%s>" % keyword_set.getShortName())
|
|
4231
|
+
self.readARElement(element, keyword_set)
|
|
4232
|
+
self.readKeywordSetKeywords(element, keyword_set)
|
|
4233
|
+
|
|
4234
|
+
def readPortPrototypeBlueprint(self, element: ET.Element, blueprint: PortPrototypeBlueprint):
|
|
4235
|
+
self.logger.debug("Read PortPrototypeBlueprint <%s>" % blueprint.getShortName())
|
|
4236
|
+
self.readARElement(element, blueprint)
|
|
4237
|
+
blueprint.setInterfaceRef(self.getChildElementOptionalRefType(element, "INTERFACE-REF"))
|
|
4238
|
+
|
|
3505
4239
|
def readCommunicationController(self, element: ET.Element, controller: CommunicationController):
|
|
3506
4240
|
controller.setWakeUpByControllerSupported(self.getChildElementOptionalBooleanValue(element, "WAKE-UP-BY-CONTROLLER-SUPPORTED"))
|
|
3507
4241
|
|
|
@@ -3510,7 +4244,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3510
4244
|
child_element = self.find(element, key)
|
|
3511
4245
|
if child_element is not None:
|
|
3512
4246
|
configuration = CanControllerFdConfiguration()
|
|
3513
|
-
#TODO: need to implemented
|
|
4247
|
+
# TODO: need to implemented
|
|
3514
4248
|
return configuration
|
|
3515
4249
|
|
|
3516
4250
|
def getCanControllerFdConfigurationRequirements(self, element: ET.Element, key: str) -> CanControllerFdConfigurationRequirements:
|
|
@@ -3526,7 +4260,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3526
4260
|
.setMinSamplePoint(self.getChildElementOptionalFloatValue(child_element, "MIN-SAMPLE-POINT")) \
|
|
3527
4261
|
.setMinSyncJumpWidth(self.getChildElementOptionalFloatValue(child_element, "MIN-SYNC-JUMP-WIDTH")) \
|
|
3528
4262
|
.setMinTrcvDelayCompensationOffset(self.getChildElementOptionalTimeValue(child_element, "MIN-TRCV-DELAY-COMPENSATION-OFFSET")) \
|
|
3529
|
-
.setTxBitRateSwitch(self.getChildElementOptionalBooleanValue(child_element, "TX-BIT-RATE-SWITCH"))
|
|
4263
|
+
.setTxBitRateSwitch(self.getChildElementOptionalBooleanValue(child_element, "TX-BIT-RATE-SWITCH")) # NOQA E501
|
|
3530
4264
|
return requirements
|
|
3531
4265
|
|
|
3532
4266
|
def readAbstractCanCommunicationControllerAttributes(self, element: ET.Element, attributes: AbstractCanCommunicationControllerAttributes):
|
|
@@ -3616,9 +4350,9 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3616
4350
|
for child_element in self.findall(element, "VLAN-MEMBERSHIPS/*"):
|
|
3617
4351
|
tag_name = self.getTagName(child_element)
|
|
3618
4352
|
if tag_name == "VLAN-MEMBERSHIP":
|
|
3619
|
-
|
|
3620
|
-
|
|
3621
|
-
|
|
4353
|
+
membership = VlanMembership()
|
|
4354
|
+
self.readVlanMembership(child_element, membership)
|
|
4355
|
+
port.addVlanMembership(membership)
|
|
3622
4356
|
else:
|
|
3623
4357
|
self.notImplemented("Unsupported VlanMembership <%s>" % tag_name)
|
|
3624
4358
|
|
|
@@ -3657,7 +4391,6 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3657
4391
|
self.readLinCommunicationController(child_element, controller)
|
|
3658
4392
|
controller.setTimeBase(self.getChildElementOptionalTimeValue(child_element, "TIME-BASE")) \
|
|
3659
4393
|
.setTimeBaseJitter(self.getChildElementOptionalTimeValue(child_element, "TIME-BASE-JITTER"))
|
|
3660
|
-
|
|
3661
4394
|
|
|
3662
4395
|
def readEcuInstanceCommControllers(self, element: ET.Element, instance: EcuInstance):
|
|
3663
4396
|
self.logger.debug("readEcuInstanceCommControllers %s" % instance.getShortName())
|
|
@@ -3672,6 +4405,9 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3672
4405
|
elif tag_name == "LIN-MASTER":
|
|
3673
4406
|
controller = instance.createLinMaster(self.getShortName(child_element))
|
|
3674
4407
|
self.readLinMaster(child_element, controller)
|
|
4408
|
+
elif tag_name == "FLEXRAY-COMMUNICATION-CONTROLLER":
|
|
4409
|
+
controller = instance.createFlexrayCommunicationController(self.getShortName(child_element))
|
|
4410
|
+
self.readFlexrayCommunicationController(child_element, controller)
|
|
3675
4411
|
else:
|
|
3676
4412
|
self.raiseError("Unsupported Communication Controller <%s>" % tag_name)
|
|
3677
4413
|
|
|
@@ -3686,7 +4422,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3686
4422
|
self.readCommConnectorPort(element, port)
|
|
3687
4423
|
port.setKeyId(self.getChildElementOptionalPositiveInteger(element, "KEY-ID")) \
|
|
3688
4424
|
.setRxSecurityVerification(self.getChildElementOptionalBooleanValue(element, "RX-SECURITY-VERIFICATION")) \
|
|
3689
|
-
.setUseAuthDataFreshness(self.getChildElementOptionalBooleanValue(element, "USE-AUTH-DATA-FRESHNESS"))
|
|
4425
|
+
.setUseAuthDataFreshness(self.getChildElementOptionalBooleanValue(element, "USE-AUTH-DATA-FRESHNESS"))
|
|
3690
4426
|
|
|
3691
4427
|
def readISignalPort(self, element: ET.Element, port: ISignalPort):
|
|
3692
4428
|
self.readCommConnectorPort(element, port)
|
|
@@ -3706,7 +4442,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3706
4442
|
port = connector.createISignalPort(self.getShortName(child_element))
|
|
3707
4443
|
self.readISignalPort(child_element, port)
|
|
3708
4444
|
else:
|
|
3709
|
-
self.raiseError("Unsupported EcuCommPortInstances <%s>" % tag_name)
|
|
4445
|
+
self.raiseError("Unsupported EcuCommPortInstances <%s>" % tag_name)
|
|
3710
4446
|
|
|
3711
4447
|
def readCommunicationConnector(self, element: ET.Element, connector: CommunicationConnector):
|
|
3712
4448
|
self.readIdentifiable(element, connector)
|
|
@@ -3729,6 +4465,9 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3729
4465
|
def readLinCommunicationConnector(self, element: ET.Element, connector: LinCommunicationConnector):
|
|
3730
4466
|
self.readCommunicationConnector(element, connector)
|
|
3731
4467
|
|
|
4468
|
+
def readFlexrayCommunicationConnector(self, element: ET.Element, connector: FlexrayCommunicationConnector):
|
|
4469
|
+
self.readCommunicationConnector(element, connector)
|
|
4470
|
+
|
|
3732
4471
|
def readEcuInstanceConnectors(self, element: ET.Element, instance: EcuInstance):
|
|
3733
4472
|
self.logger.debug("readEcuInstanceCommControllers %s" % instance.getShortName())
|
|
3734
4473
|
for child_element in self.findall(element, "CONNECTORS/*"):
|
|
@@ -3742,6 +4481,9 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3742
4481
|
elif tag_name == "LIN-COMMUNICATION-CONNECTOR":
|
|
3743
4482
|
connector = instance.createLinCommunicationConnector(self.getShortName(child_element))
|
|
3744
4483
|
self.readLinCommunicationConnector(child_element, connector)
|
|
4484
|
+
elif tag_name == "FLEXRAY-COMMUNICATION-CONNECTOR":
|
|
4485
|
+
connector = instance.createFlexrayCommunicationConnector(self.getShortName(child_element))
|
|
4486
|
+
self.readFlexrayCommunicationConnector(child_element, connector)
|
|
3745
4487
|
else:
|
|
3746
4488
|
self.notImplemented("Unsupported Communication Connector <%s>" % tag_name)
|
|
3747
4489
|
|
|
@@ -3821,7 +4563,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3821
4563
|
|
|
3822
4564
|
def readEcucValueCollectionEcucValues(self, element: ET.Element, parent: EcucValueCollection):
|
|
3823
4565
|
for child_element in self.findall(element, "ECUC-VALUES/ECUC-MODULE-CONFIGURATION-VALUES-REF-CONDITIONAL"):
|
|
3824
|
-
ref = self.getChildElementOptionalRefType(child_element, "ECUC-MODULE-CONFIGURATION-VALUES-REF")
|
|
4566
|
+
ref = self.getChildElementOptionalRefType(child_element, "ECUC-MODULE-CONFIGURATION-VALUES-REF")
|
|
3825
4567
|
if (ref is not None):
|
|
3826
4568
|
parent.addEcucValueRef(ref)
|
|
3827
4569
|
self.logger.debug("EcucValue <%s> of EcucValueCollection <%s> has been added", ref.value, parent.getShortName())
|
|
@@ -3875,7 +4617,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3875
4617
|
child_element = self.find(element, key)
|
|
3876
4618
|
if child_element is not None:
|
|
3877
4619
|
instance_ref = AnyInstanceRef()
|
|
3878
|
-
instance_ref.setBaseRef(self.getChildElementOptionalRefType(child_element, "BASE-REF"))
|
|
4620
|
+
instance_ref.setBaseRef(self.getChildElementOptionalRefType(child_element, "BASE-REF"))
|
|
3879
4621
|
for ref in self.getChildElementRefTypeList(child_element, "CONTEXT-ELEMENT-REF"):
|
|
3880
4622
|
instance_ref.addContextElementRef(ref)
|
|
3881
4623
|
instance_ref.setTargetRef(self.getChildElementOptionalRefType(child_element, "TARGET-REF"))
|
|
@@ -3916,7 +4658,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3916
4658
|
if tag_name == "ECUC-CONTAINER-VALUE":
|
|
3917
4659
|
self.readEcucContainerValueEcucContainerValue(child_element, parent)
|
|
3918
4660
|
else:
|
|
3919
|
-
self.notImplemented("Unsupported Sub Container %s" % tag_name)
|
|
4661
|
+
self.notImplemented("Unsupported Sub Container %s" % tag_name)
|
|
3920
4662
|
|
|
3921
4663
|
def readEcucModuleConfigurationValuesEcucContainerValue(self, element: ET.Element, parent: EcucModuleConfigurationValues):
|
|
3922
4664
|
short_name = self.getShortName(element)
|
|
@@ -3930,7 +4672,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3930
4672
|
if tag_name == "ECUC-CONTAINER-VALUE":
|
|
3931
4673
|
self.readEcucModuleConfigurationValuesEcucContainerValue(child_element, values)
|
|
3932
4674
|
else:
|
|
3933
|
-
self.notImplemented("Unsupported Container %s" % tag_name)
|
|
4675
|
+
self.notImplemented("Unsupported Container %s" % tag_name)
|
|
3934
4676
|
|
|
3935
4677
|
def readEcucModuleConfigurationValues(self, element: ET.Element, values: EcucModuleConfigurationValues):
|
|
3936
4678
|
self.logger.debug("Read EcucModuleConfigurationValues %s" % values.getShortName())
|
|
@@ -3946,27 +4688,52 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3946
4688
|
dimension.setLengthExp(self.getChildElementOptionalNumericalValue(element, "LENGTH-EXP")) \
|
|
3947
4689
|
.setLuminousIntensityExp(self.getChildElementOptionalNumericalValue(element, "LUMINOUS-INTENSITY-EXP")) \
|
|
3948
4690
|
.setMassExp(self.getChildElementOptionalNumericalValue(element, "MASS-EXP")) \
|
|
4691
|
+
.setMolarAmountExp(self.getChildElementOptionalNumericalValue(element, "MOLAR-AMOUNT-EXP")) \
|
|
3949
4692
|
.setTemperatureExp(self.getChildElementOptionalNumericalValue(element, "TEMPERATURE-EXP")) \
|
|
3950
4693
|
.setTimeExp(self.getChildElementOptionalNumericalValue(element, "TIME-EXP")) \
|
|
3951
|
-
.setCurrentExp(self.getChildElementOptionalNumericalValue(element, "CURRENT-EXP"))
|
|
4694
|
+
.setCurrentExp(self.getChildElementOptionalNumericalValue(element, "CURRENT-EXP"))
|
|
3952
4695
|
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
4696
|
+
def readISignalGroupISignalRef(self, element: ET.Element, group: ISignalGroup):
|
|
4697
|
+
for ref_type in self.getChildElementRefTypeList(element, "I-SIGNAL-REFS/I-SIGNAL-REF"):
|
|
4698
|
+
group.addISignalRef(ref_type)
|
|
4699
|
+
|
|
4700
|
+
def readISignalGroupComBasedSignalGroupTransformation(self, element: ET.Element, group: ISignalGroup):
|
|
4701
|
+
for ref in self.getChildElementRefTypeList(element, "COM-BASED-SIGNAL-GROUP-TRANSFORMATIONS/DATA-TRANSFORMATION-REF-CONDITIONAL/DATA-TRANSFORMATION-REF"): # noqa E501
|
|
4702
|
+
group.addComBasedSignalGroupTransformationRef(ref)
|
|
4703
|
+
|
|
4704
|
+
def readTransformationISignalProps(self, element: ET.Element, props: TransformationISignalProps):
|
|
4705
|
+
self.readDescribable(element, props)
|
|
4706
|
+
|
|
4707
|
+
def readEndToEndTransformationISignalPropsDataIds(self, element: ET.Element, props: EndToEndTransformationISignalProps):
|
|
4708
|
+
child_element = self.find(element, "DATA-IDS")
|
|
4709
|
+
if child_element is not None:
|
|
4710
|
+
props.addDataId(self.getChildElementOptionalPositiveInteger(child_element, "DATA-ID"))
|
|
4711
|
+
|
|
4712
|
+
def readEndToEndTransformationISignalProps(self, element: ET.Element, props: EndToEndTransformationISignalProps):
|
|
4713
|
+
child_element = self.find(element, "END-TO-END-TRANSFORMATION-I-SIGNAL-PROPS-VARIANTS/END-TO-END-TRANSFORMATION-I-SIGNAL-PROPS-CONDITIONAL")
|
|
4714
|
+
if child_element is not None:
|
|
4715
|
+
self.readTransformationISignalProps(child_element, props)
|
|
4716
|
+
props.setTransformerRef(self.getChildElementOptionalRefType(child_element, "TRANSFORMER-REF"))
|
|
4717
|
+
self.readEndToEndTransformationISignalPropsDataIds(child_element, props)
|
|
4718
|
+
props.setDataLength(self.getChildElementOptionalPositiveInteger(child_element, "DATA-LENGTH"))
|
|
4719
|
+
|
|
4720
|
+
def readISignalGroupTransformationISignalProps(self, element: ET.Element, group: ISignalGroup):
|
|
4721
|
+
for child_element in self.findall(element, "TRANSFORMATION-I-SIGNAL-PROPSS/*"):
|
|
4722
|
+
tag_name = self.getTagName(child_element)
|
|
4723
|
+
if tag_name == "END-TO-END-TRANSFORMATION-I-SIGNAL-PROPS":
|
|
4724
|
+
props = EndToEndTransformationISignalProps()
|
|
4725
|
+
self.readEndToEndTransformationISignalProps(child_element, props)
|
|
4726
|
+
group.setTransformationISignalProps(props)
|
|
4727
|
+
else:
|
|
4728
|
+
self.notImplemented("Unsupported TransformationISignalProps %s" % tag_name)
|
|
3963
4729
|
|
|
3964
4730
|
def readISignalGroup(self, element: ET.Element, group: ISignalGroup):
|
|
3965
4731
|
self.logger.debug("Read ISignalGroup <%s>" % group.getShortName())
|
|
3966
4732
|
self.readIdentifiable(element, group)
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
group.
|
|
4733
|
+
self.readISignalGroupComBasedSignalGroupTransformation(element, group)
|
|
4734
|
+
self.readISignalGroupISignalRef(element, group)
|
|
4735
|
+
group.setSystemSignalGroupRef(self.getChildElementOptionalRefType(element, "SYSTEM-SIGNAL-GROUP-REF"))
|
|
4736
|
+
self.readISignalGroupTransformationISignalProps(element, group)
|
|
3970
4737
|
|
|
3971
4738
|
def readSystemSignal(self, element: ET.Element, signal: SystemSignal):
|
|
3972
4739
|
self.logger.debug("Read SystemSignal <%s>" % signal.getShortName())
|
|
@@ -3999,7 +4766,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
3999
4766
|
filter = DataFilter()
|
|
4000
4767
|
filter.setDataFilterType(self.getChildElementOptionalLiteral(child_element, "DATA-FILTER-TYPE")) \
|
|
4001
4768
|
.setMask(self.getChildElementOptionalIntegerValue(child_element, "MASK")) \
|
|
4002
|
-
.setX(self.getChildElementOptionalIntegerValue(child_element, "X"))
|
|
4769
|
+
.setX(self.getChildElementOptionalIntegerValue(child_element, "X"))
|
|
4003
4770
|
|
|
4004
4771
|
return filter
|
|
4005
4772
|
|
|
@@ -4012,7 +4779,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4012
4779
|
.setISignalInIPduRef(self.getChildElementOptionalRefType(child_element, "I-SIGNAL-IN-I-PDU-REF"))
|
|
4013
4780
|
result.append(condition)
|
|
4014
4781
|
return result
|
|
4015
|
-
|
|
4782
|
+
|
|
4016
4783
|
def getTimeRangeType(self, element: ET.Element, key: str) -> TimeRangeType:
|
|
4017
4784
|
time_range = None
|
|
4018
4785
|
child_element = self.find(element, key)
|
|
@@ -4020,7 +4787,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4020
4787
|
time_range = TimeRangeType()
|
|
4021
4788
|
time_range.setValue(self.getChildElementOptionalTimeValue(child_element, "VALUE"))
|
|
4022
4789
|
return time_range
|
|
4023
|
-
|
|
4790
|
+
|
|
4024
4791
|
def getCyclicTiming(self, element: ET.Element, key: str) -> CyclicTiming:
|
|
4025
4792
|
timing = None
|
|
4026
4793
|
child_element = self.find(element, key)
|
|
@@ -4052,7 +4819,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4052
4819
|
def getTransmissionModeDeclaration(self, element: ET.Element, key: str) -> TransmissionModeDeclaration:
|
|
4053
4820
|
decl = None
|
|
4054
4821
|
child_element = self.find(element, key)
|
|
4055
|
-
if child_element
|
|
4822
|
+
if child_element is not None:
|
|
4056
4823
|
decl = TransmissionModeDeclaration()
|
|
4057
4824
|
for condition in self.getTransmissionModeConditions(child_element, "TRANSMISSION-MODE-CONDITIONS/TRANSMISSION-MODE-CONDITION"):
|
|
4058
4825
|
decl.addTransmissionModeCondition(condition)
|
|
@@ -4078,7 +4845,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4078
4845
|
ipdu.setUnusedBitPattern(self.getChildElementOptionalIntegerValue(element, "UNUSED-BIT-PATTERN"))
|
|
4079
4846
|
|
|
4080
4847
|
def getISignalIPduRefs(self, element: ET.Element) -> List[RefType]:
|
|
4081
|
-
ref_types = []
|
|
4848
|
+
ref_types = []
|
|
4082
4849
|
for child_element in self.findall(element, "I-SIGNAL-I-PDUS/I-SIGNAL-I-PDU-REF-CONDITIONAL"):
|
|
4083
4850
|
ref_types.append(self.getChildElementOptionalRefType(child_element, "I-SIGNAL-I-PDU-REF"))
|
|
4084
4851
|
return ref_types
|
|
@@ -4093,26 +4860,61 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4093
4860
|
for ref_type in self.getISignalIPduRefs(element):
|
|
4094
4861
|
group.addISignalIPduRef(ref_type)
|
|
4095
4862
|
|
|
4096
|
-
def
|
|
4097
|
-
mapping = SenderReceiverToSignalMapping()
|
|
4863
|
+
def readSenderReceiverToSignalMapping(self, element: ET.Element, mapping: SenderReceiverToSignalMapping):
|
|
4098
4864
|
mapping.setCommunicationDirection(self.getChildElementOptionalLiteral(element, "COMMUNICATION-DIRECTION")) \
|
|
4099
4865
|
.setDataElementIRef(self.getVariableDataPrototypeInSystemInstanceRef(self.find(element, "DATA-ELEMENT-IREF"))) \
|
|
4100
4866
|
.setSystemSignalRef(self.getChildElementOptionalRefType(element, "SYSTEM-SIGNAL-REF"))
|
|
4101
|
-
return mapping
|
|
4102
4867
|
|
|
4103
|
-
def
|
|
4104
|
-
mapping
|
|
4868
|
+
def readSenderRecCompositeTypeMapping(self, element: ET.Element, mapping: SenderRecCompositeTypeMapping):
|
|
4869
|
+
self.readARObjectAttributes(element, mapping)
|
|
4870
|
+
|
|
4871
|
+
def readSenderRecRecordElementMapping(self, element: ET.Element, mapping: SenderRecRecordElementMapping):
|
|
4872
|
+
self.readARObjectAttributes(element, mapping)
|
|
4873
|
+
mapping.setApplicationRecordElementRef(self.getChildElementOptionalRefType(element, "APPLICATION-RECORD-ELEMENT-REF")) \
|
|
4874
|
+
.setImplementationRecordElementRef(self.getChildElementOptionalRefType(element, "IMPLEMENTATION-RECORD-ELEMENT-REF")) \
|
|
4875
|
+
.setSystemSignalRef(self.getChildElementOptionalRefType(element, "SYSTEM-SIGNAL-REF"))
|
|
4876
|
+
|
|
4877
|
+
def readSenderRecArrayTypeMappingRecordElementMapping(self, element: ET.Element, mapping: SenderRecRecordTypeMapping):
|
|
4878
|
+
for child_element in self.findall(element, "RECORD-ELEMENT-MAPPINGS/*"):
|
|
4879
|
+
tag_name = self.getTagName(child_element)
|
|
4880
|
+
if tag_name == "SENDER-REC-RECORD-ELEMENT-MAPPING":
|
|
4881
|
+
record_element_mapping = SenderRecRecordElementMapping()
|
|
4882
|
+
self.readSenderRecRecordElementMapping(child_element, record_element_mapping)
|
|
4883
|
+
mapping.addRecordElementMapping(record_element_mapping)
|
|
4884
|
+
else:
|
|
4885
|
+
self.notImplemented("Unsupported RecordElementMapping %s" % tag_name)
|
|
4886
|
+
|
|
4887
|
+
def readSenderRecRecordTypeMapping(self, element: ET.Element, mapping: SenderRecRecordTypeMapping):
|
|
4888
|
+
self.readSenderRecCompositeTypeMapping(element, mapping)
|
|
4889
|
+
self.readSenderRecArrayTypeMappingRecordElementMapping(element, mapping)
|
|
4890
|
+
|
|
4891
|
+
def readSenderReceiverToSignalGroupMappingTypeMapping(self, element: ET.Element, mapping: SenderReceiverToSignalGroupMapping):
|
|
4892
|
+
child_element = self.find(element, "TYPE-MAPPING/*")
|
|
4893
|
+
if child_element is not None:
|
|
4894
|
+
tag_name = self.getTagName(child_element)
|
|
4895
|
+
if tag_name == "SENDER-REC-RECORD-TYPE-MAPPING":
|
|
4896
|
+
type_mapping = SenderRecRecordTypeMapping()
|
|
4897
|
+
self.readSenderRecRecordTypeMapping(child_element, type_mapping)
|
|
4898
|
+
mapping.setTypeMapping(type_mapping)
|
|
4899
|
+
else:
|
|
4900
|
+
self.notImplemented("Unsupported Type Mapping %s" % tag_name)
|
|
4901
|
+
|
|
4902
|
+
def readSenderReceiverToSignalGroupMapping(self, element: ET.Element, mapping: SenderReceiverToSignalGroupMapping):
|
|
4105
4903
|
mapping.setDataElementIRef(self.getVariableDataPrototypeInSystemInstanceRef(self.find(element, "DATA-ELEMENT-IREF")))
|
|
4106
4904
|
mapping.setSignalGroupRef(self.getChildElementOptionalRefType(element, "SIGNAL-GROUP-REF"))
|
|
4107
|
-
|
|
4108
|
-
|
|
4905
|
+
self.readSenderReceiverToSignalGroupMappingTypeMapping(element, mapping)
|
|
4906
|
+
|
|
4109
4907
|
def readSystemMappingDataMappings(self, element: ET.Element, mapping: SystemMapping):
|
|
4110
4908
|
for child_element in self.findall(element, "DATA-MAPPINGS/*"):
|
|
4111
4909
|
tag_name = self.getTagName(child_element)
|
|
4112
4910
|
if tag_name == "SENDER-RECEIVER-TO-SIGNAL-MAPPING":
|
|
4113
|
-
|
|
4911
|
+
signal_mapping = SenderReceiverToSignalMapping()
|
|
4912
|
+
self.readSenderReceiverToSignalMapping(child_element, signal_mapping)
|
|
4913
|
+
mapping.addDataMapping(signal_mapping)
|
|
4114
4914
|
elif tag_name == "SENDER-RECEIVER-TO-SIGNAL-GROUP-MAPPING":
|
|
4115
|
-
|
|
4915
|
+
signal_group_mapping = SenderReceiverToSignalGroupMapping()
|
|
4916
|
+
self.readSenderReceiverToSignalGroupMapping(child_element, signal_group_mapping)
|
|
4917
|
+
mapping.addDataMapping(signal_group_mapping)
|
|
4116
4918
|
else:
|
|
4117
4919
|
self.notImplemented("Unsupported Data Mapping %s" % tag_name)
|
|
4118
4920
|
|
|
@@ -4122,7 +4924,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4122
4924
|
for child_element in self.findall(element, "COMPONENT-IREFS/COMPONENT-IREF"):
|
|
4123
4925
|
mapping.addComponentIRef(self.getComponentInSystemInstanceRef(child_element))
|
|
4124
4926
|
mapping.setEcuInstanceRef(self.getChildElementOptionalRefType(element, "ECU-INSTANCE-REF"))
|
|
4125
|
-
|
|
4927
|
+
|
|
4126
4928
|
def readSystemMappingSwMappings(self, element: ET.Element, mapping: SystemMapping):
|
|
4127
4929
|
for child_element in self.findall(element, "SW-MAPPINGS/*"):
|
|
4128
4930
|
tag_name = self.getTagName(child_element)
|
|
@@ -4135,7 +4937,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4135
4937
|
def readEcuMapping(self, element: ET.Element, mapping: ECUMapping):
|
|
4136
4938
|
self.readIdentifiable(element, mapping)
|
|
4137
4939
|
mapping.setEcuInstanceRef(self.getChildElementOptionalRefType(element, "ECU-INSTANCE-REF")) \
|
|
4138
|
-
.setEcuRef(self.getChildElementOptionalRefType(element, "ECU-REF"))
|
|
4940
|
+
.setEcuRef(self.getChildElementOptionalRefType(element, "ECU-REF"))
|
|
4139
4941
|
|
|
4140
4942
|
def readSystemMappingEcuResourceMappings(self, element: ET.Element, mapping: SystemMapping):
|
|
4141
4943
|
for child_element in self.findall(element, "ECU-RESOURCE-MAPPINGS/*"):
|
|
@@ -4177,7 +4979,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4177
4979
|
self.readSystemMapping(child_element, mapping)
|
|
4178
4980
|
else:
|
|
4179
4981
|
self.notImplemented("Unsupported Mapping %s" % tag_name)
|
|
4180
|
-
|
|
4982
|
+
|
|
4181
4983
|
def readRootSwCompositionPrototype(self, element: ET.Element, system: System):
|
|
4182
4984
|
child_element = self.find(element, "ROOT-SOFTWARE-COMPOSITIONS/ROOT-SW-COMPOSITION-PROTOTYPE")
|
|
4183
4985
|
if child_element is not None:
|
|
@@ -4188,7 +4990,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4188
4990
|
prototype.setFlatMapRef(self.getChildElementOptionalRefType(child_element, "FLAT-MAP-REF")) \
|
|
4189
4991
|
.setSoftwareCompositionTRef(self.getChildElementOptionalRefType(child_element, "SOFTWARE-COMPOSITION-TREF"))
|
|
4190
4992
|
AUTOSAR.getInstance().setRootSwCompositionPrototype(prototype)
|
|
4191
|
-
|
|
4993
|
+
|
|
4192
4994
|
def readSystemFibexElementRefs(self, element: ET.Element, system: System):
|
|
4193
4995
|
for ref in self.getChildElementRefTypeList(element, "FIBEX-ELEMENTS/FIBEX-ELEMENT-REF-CONDITIONAL/FIBEX-ELEMENT-REF"):
|
|
4194
4996
|
system.addFibexElementRef(ref)
|
|
@@ -4207,9 +5009,42 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4207
5009
|
self.logger.debug("Read GenericEthernetFrame <%s>" % frame.getShortName())
|
|
4208
5010
|
self.readFrame(element, frame)
|
|
4209
5011
|
|
|
5012
|
+
def getLifeCyclePeriod(self, element: ET.Element, key: str) -> LifeCyclePeriod:
|
|
5013
|
+
child_element = self.find(element, key)
|
|
5014
|
+
period = None
|
|
5015
|
+
if child_element is not None:
|
|
5016
|
+
period = LifeCyclePeriod()
|
|
5017
|
+
period.setArReleaseVersion(self.getChildElementOptionalRevisionLabelString(child_element, "AR-RELEASE-VERSION"))
|
|
5018
|
+
return period
|
|
5019
|
+
|
|
5020
|
+
def readLifeCycleInfoUseInsteadRefs(self, element: ET.Element, info: LifeCycleInfo):
|
|
5021
|
+
for ref in self.getChildElementRefTypeList(element, "USE-INSTEAD-REFS/USE-INSTEAD-REF"):
|
|
5022
|
+
info.addUseInsteadRef(ref)
|
|
5023
|
+
|
|
5024
|
+
def readLifeCycleInfo(self, element: ET.Element, info: LifeCycleInfo):
|
|
5025
|
+
self.readARObjectAttributes(element, info)
|
|
5026
|
+
info.setLcObjectRef(self.getChildElementOptionalRefType(element, "LC-OBJECT-REF")) \
|
|
5027
|
+
.setLcStateRef(self.getChildElementOptionalRefType(element, "LC-STATE-REF")) \
|
|
5028
|
+
.setPeriodBegin(self.getLifeCyclePeriod(element, "PERIOD-BEGIN")) \
|
|
5029
|
+
.setRemark(self.getDocumentationBlock(element, "REMARK"))
|
|
5030
|
+
self.readLifeCycleInfoUseInsteadRefs(element, info)
|
|
5031
|
+
|
|
5032
|
+
def readLifeCycleInfoSetLifeCycleInfos(self, element: ET.Element, info_set: LifeCycleInfoSet):
|
|
5033
|
+
for child_element in self.findall(element, "LIFE-CYCLE-INFOS/*"):
|
|
5034
|
+
tag_name = self.getTagName(child_element)
|
|
5035
|
+
if tag_name == "LIFE-CYCLE-INFO":
|
|
5036
|
+
info = LifeCycleInfo()
|
|
5037
|
+
self.readLifeCycleInfo(child_element, info)
|
|
5038
|
+
info_set.addLifeCycleInfo(info)
|
|
5039
|
+
else:
|
|
5040
|
+
self.notImplemented("Unsupported Life Cycle Info <%s>" % tag_name)
|
|
5041
|
+
|
|
4210
5042
|
def readLifeCycleInfoSet(self, element: ET.Element, info_set: LifeCycleInfoSet):
|
|
4211
5043
|
self.logger.debug("Read LifeCycleInfoSet <%s>" % info_set.getShortName())
|
|
4212
5044
|
self.readIdentifiable(element, info_set)
|
|
5045
|
+
info_set.setDefaultLcStateRef(self.getChildElementOptionalRefType(element, "DEFAULT-LC-STATE-REF"))
|
|
5046
|
+
self.readLifeCycleInfoSetLifeCycleInfos(element, info_set)
|
|
5047
|
+
info_set.setUsedLifeCycleStateDefinitionGroupRef(self.getChildElementOptionalRefType(element, "USED-LIFE-CYCLE-STATE-DEFINITION-GROUP-REF"))
|
|
4213
5048
|
|
|
4214
5049
|
def readFlatInstanceDescriptor(self, element: ET.Element, desc: FlatInstanceDescriptor):
|
|
4215
5050
|
self.logger.debug("Read LifeCycleInfoSet %s" % desc.getShortName())
|
|
@@ -4240,18 +5075,40 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4240
5075
|
mappings.append(mapping)
|
|
4241
5076
|
return mappings
|
|
4242
5077
|
|
|
4243
|
-
def
|
|
4244
|
-
self.logger.debug("
|
|
5078
|
+
def readVariableAndParameterInterfaceMapping(self, element: ET.Element, mapping: VariableAndParameterInterfaceMapping):
|
|
5079
|
+
# self.logger.debug("Read VariableAndParameterInterfaceMapping %s" % mapping.getShortName())
|
|
4245
5080
|
self.readIdentifiable(element, mapping)
|
|
4246
5081
|
for item in self.getDataPrototypeMappings(element, "DATA-MAPPINGS"):
|
|
4247
5082
|
mapping.addDataMapping(item)
|
|
4248
5083
|
|
|
5084
|
+
def readClientServerOperationMapping(self, element: ET.Element, mapping: ClientServerOperationMapping):
|
|
5085
|
+
mapping.setFirstOperationRef(self.getChildElementOptionalRefType(element, "FIRST-OPERATION-REF")) \
|
|
5086
|
+
.setSecondOperationRef(self.getChildElementOptionalRefType(element, "SECOND-OPERATION-REF"))
|
|
5087
|
+
|
|
5088
|
+
def readClientServerInterfaceMappingOperationMappings(self, element: ET.Element, mapping: ClientServerInterfaceMapping):
|
|
5089
|
+
for child_element in self.findall(element, "OPERATION-MAPPINGS/*"):
|
|
5090
|
+
tag_name = self.getTagName(child_element)
|
|
5091
|
+
if tag_name == "CLIENT-SERVER-OPERATION-MAPPING":
|
|
5092
|
+
operation_mapping = ClientServerOperationMapping()
|
|
5093
|
+
self.readClientServerOperationMapping(child_element, operation_mapping)
|
|
5094
|
+
mapping.addOperationMapping(operation_mapping)
|
|
5095
|
+
else:
|
|
5096
|
+
self.notImplemented("Unsupported Operation Mapping <%s>" % tag_name)
|
|
5097
|
+
|
|
5098
|
+
def readClientServerInterfaceMapping(self, element: ET.Element, mapping: ClientServerInterfaceMapping):
|
|
5099
|
+
# self.logger.debug("Read ClientServerInterfaceMapping %s" % mapping.getShortName())
|
|
5100
|
+
self.readIdentifiable(element, mapping)
|
|
5101
|
+
self.readClientServerInterfaceMappingOperationMappings(element, mapping)
|
|
5102
|
+
|
|
4249
5103
|
def readPortInterfaceMappings(self, element: ET.Element, mapping_set: PortInterfaceMappingSet):
|
|
4250
5104
|
for child_element in self.findall(element, "PORT-INTERFACE-MAPPINGS/*"):
|
|
4251
5105
|
tag_name = self.getTagName(child_element)
|
|
4252
5106
|
if tag_name == "VARIABLE-AND-PARAMETER-INTERFACE-MAPPING":
|
|
4253
5107
|
mapping = mapping_set.createVariableAndParameterInterfaceMapping(self.getShortName(child_element))
|
|
4254
|
-
self.
|
|
5108
|
+
self.readVariableAndParameterInterfaceMapping(child_element, mapping)
|
|
5109
|
+
elif tag_name == "CLIENT-SERVER-INTERFACE-MAPPING":
|
|
5110
|
+
mapping = mapping_set.createClientServerInterfaceMapping(self.getShortName(child_element))
|
|
5111
|
+
self.readClientServerInterfaceMapping(child_element, mapping)
|
|
4255
5112
|
else:
|
|
4256
5113
|
self.notImplemented("Unsupported PortInterfaceMapping <%s>" % tag_name)
|
|
4257
5114
|
|
|
@@ -4270,7 +5127,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4270
5127
|
type = parent.createComplexDeviceDriverSwComponentType(self.getShortName(child_element))
|
|
4271
5128
|
self.readComplexDeviceDriverSwComponentType(child_element, type)
|
|
4272
5129
|
elif tag_name == "SWC-IMPLEMENTATION":
|
|
4273
|
-
impl = parent.createSwcImplementation(self.getShortName(child_element))
|
|
5130
|
+
impl = parent.createSwcImplementation(self.getShortName(child_element))
|
|
4274
5131
|
self.readSwcImplementation(child_element, impl)
|
|
4275
5132
|
elif tag_name == "APPLICATION-PRIMITIVE-DATA-TYPE":
|
|
4276
5133
|
data_type = parent.createApplicationPrimitiveDataType(self.getShortName(child_element))
|
|
@@ -4309,7 +5166,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4309
5166
|
mapping = parent.createSwcBswMapping(self.getShortName(child_element))
|
|
4310
5167
|
self.readSwcBswMapping(child_element, mapping)
|
|
4311
5168
|
elif tag_name == "BSW-IMPLEMENTATION":
|
|
4312
|
-
impl = parent.createBswImplementation(self.getShortName(child_element))
|
|
5169
|
+
impl = parent.createBswImplementation(self.getShortName(child_element))
|
|
4313
5170
|
self.readBswImplementation(child_element, impl)
|
|
4314
5171
|
elif tag_name == "IMPLEMENTATION-DATA-TYPE":
|
|
4315
5172
|
data_type = parent.createImplementationDataType(self.getShortName(child_element))
|
|
@@ -4372,7 +5229,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4372
5229
|
i_pdu = parent.createSecuredIPdu(self.getShortName(child_element))
|
|
4373
5230
|
self.readSecuredIPdu(child_element, i_pdu)
|
|
4374
5231
|
elif tag_name == "NM-CONFIG":
|
|
4375
|
-
config = parent.createNmConfig(self.getShortName(child_element))
|
|
5232
|
+
config = parent.createNmConfig(self.getShortName(child_element))
|
|
4376
5233
|
self.readNmConfig(child_element, config)
|
|
4377
5234
|
elif tag_name == "CAN-TP-CONFIG":
|
|
4378
5235
|
config = parent.createCanTpConfig(self.getShortName(child_element))
|
|
@@ -4470,11 +5327,37 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4470
5327
|
elif tag_name == "DO-IP-TP-CONFIG":
|
|
4471
5328
|
config = parent.createDoIpTpConfig(self.getShortName(child_element))
|
|
4472
5329
|
self.readDoIpTpConfig(child_element, config)
|
|
5330
|
+
elif tag_name == "HW-ELEMENT":
|
|
5331
|
+
hw_element = parent.createHwElement(self.getShortName(child_element))
|
|
5332
|
+
self.readHwElement(child_element, hw_element)
|
|
5333
|
+
elif tag_name == "HW-CATEGORY":
|
|
5334
|
+
hw_category = parent.createHwCategory(self.getShortName(child_element))
|
|
5335
|
+
self.readHwCategory(child_element, hw_category)
|
|
5336
|
+
elif tag_name == "HW-TYPE":
|
|
5337
|
+
type = parent.createHwType(self.getShortName(child_element))
|
|
5338
|
+
self.readHwType(child_element, type)
|
|
5339
|
+
elif tag_name == "FLEXRAY-FRAME":
|
|
5340
|
+
frame = parent.createFlexrayFrame(self.getShortName(child_element))
|
|
5341
|
+
self.readFlexrayFrame(child_element, frame)
|
|
5342
|
+
elif tag_name == "FLEXRAY-CLUSTER":
|
|
5343
|
+
cluster = parent.createFlexrayCluster(self.getShortName(child_element))
|
|
5344
|
+
self.readFlexrayCluster(child_element, cluster)
|
|
5345
|
+
elif tag_name == "DATA-TRANSFORMATION-SET":
|
|
5346
|
+
transformation_set = parent.createDataTransformationSet(self.getShortName(child_element))
|
|
5347
|
+
self.readDataTransformationSet(child_element, transformation_set)
|
|
5348
|
+
elif tag_name == "COLLECTION":
|
|
5349
|
+
collection = parent.createCollection(self.getShortName(child_element))
|
|
5350
|
+
self.readCollection(child_element, collection)
|
|
5351
|
+
elif tag_name == "KEYWORD-SET":
|
|
5352
|
+
keyword_set = parent.createKeywordSet(self.getShortName(child_element))
|
|
5353
|
+
self.readKeywordSet(child_element, keyword_set)
|
|
5354
|
+
elif tag_name == "PORT-PROTOTYPE-BLUEPRINT":
|
|
5355
|
+
keyword_set = parent.createPortPrototypeBlueprint(self.getShortName(child_element))
|
|
5356
|
+
self.readPortPrototypeBlueprint(child_element, keyword_set)
|
|
4473
5357
|
else:
|
|
4474
|
-
self.notImplemented("Unsupported
|
|
5358
|
+
self.notImplemented("Unsupported Element type of ARPackage <%s>" % tag_name)
|
|
4475
5359
|
|
|
4476
5360
|
def readReferenceBases(self, element: ET.Element, parent: ARPackage):
|
|
4477
|
-
self.logger.debug("Read ReferenceBases")
|
|
4478
5361
|
for child_element in self.findall(element, "REFERENCE-BASES/REFERENCE-BASE"):
|
|
4479
5362
|
base = ReferenceBase()
|
|
4480
5363
|
base.setShortLabel(self.getChildElementOptionalLiteral(child_element, "SHORT-LABEL")) \
|
|
@@ -4484,17 +5367,22 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4484
5367
|
.setPackageRef(self.getChildElementOptionalRefType(child_element, "PACKAGE-REF"))
|
|
4485
5368
|
parent.addReferenceBase(base)
|
|
4486
5369
|
|
|
4487
|
-
def
|
|
4488
|
-
|
|
4489
|
-
short_name = self.getShortName(child_element)
|
|
4490
|
-
ar_package = parent.createARPackage(short_name)
|
|
5370
|
+
def readARPackage(self, element: ET.Element, ar_package: ARPackage):
|
|
5371
|
+
self.logger.debug("Read ARPackages %s" % ar_package.getFullName())
|
|
4491
5372
|
|
|
4492
|
-
|
|
5373
|
+
self.readIdentifiable(element, ar_package)
|
|
5374
|
+
self.readARPackages(element, ar_package)
|
|
5375
|
+
self.readARPackageElements(element, ar_package)
|
|
5376
|
+
self.readReferenceBases(element, ar_package)
|
|
4493
5377
|
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
self.
|
|
4497
|
-
|
|
5378
|
+
def readARPackages(self, element: ET.Element, parent: ARPackage):
|
|
5379
|
+
for child_element in self.findall(element, "AR-PACKAGES/*"):
|
|
5380
|
+
tag_name = self.getTagName(child_element)
|
|
5381
|
+
if tag_name == "AR-PACKAGE":
|
|
5382
|
+
ar_package = parent.createARPackage(self.getShortName(child_element))
|
|
5383
|
+
self.readARPackage(child_element, ar_package)
|
|
5384
|
+
else:
|
|
5385
|
+
self.notImplemented("Unsupported ARPackage <%s>" % tag_name)
|
|
4498
5386
|
|
|
4499
5387
|
def load(self, filename, document: AUTOSAR):
|
|
4500
5388
|
self.logger.info("Loading %s ..." % os.path.realpath(filename))
|
|
@@ -4505,7 +5393,7 @@ class ARXMLParser(AbstractARXMLParser):
|
|
|
4505
5393
|
self.raiseError("Invalid ARXML file <%s>" % filename)
|
|
4506
5394
|
|
|
4507
5395
|
self.getAUTOSARInfo(root, document)
|
|
4508
|
-
document.setAdminData(self.getAdminData(root, "ADMIN-DATA"))
|
|
5396
|
+
document.setAdminData(self.getAdminData(root, "ADMIN-DATA"))
|
|
4509
5397
|
self.readARPackages(root, document)
|
|
4510
5398
|
|
|
4511
5399
|
document.reload()
|