armodel 1.6.3__py3-none-any.whl → 1.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. armodel/cli/arxml_dump_cli.py +7 -7
  2. armodel/cli/arxml_format_cli.py +14 -12
  3. armodel/cli/connector2xlsx_cli.py +2 -3
  4. armodel/cli/connector_update_cli.py +1 -4
  5. armodel/cli/memory_section_cli.py +2 -2
  6. armodel/cli/swc_list_cli.py +2 -3
  7. armodel/cli/system_signal_cli.py +2 -2
  8. armodel/lib/sw_component.py +2 -2
  9. armodel/lib/system_signal.py +1 -3
  10. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +5 -10
  11. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +9 -11
  12. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +51 -12
  13. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +3 -3
  14. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +5 -6
  15. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__init__.py +4 -1
  16. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +86 -0
  17. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +186 -29
  18. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +7 -10
  19. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +21 -11
  20. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +3 -3
  21. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +3 -6
  22. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +3 -5
  23. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +10 -6
  24. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +3 -4
  25. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +2 -5
  26. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +0 -1
  27. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +45 -0
  28. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +24 -0
  29. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +33 -0
  30. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +2 -2
  31. armodel/models/M2/AUTOSARTemplates/CommonStructure/__init__.py +4 -6
  32. armodel/models/M2/AUTOSARTemplates/{ecuc_description_template.py → ECUCDescriptionTemplate.py} +6 -11
  33. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +3 -6
  34. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +42 -36
  35. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +2 -5
  36. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +11 -16
  37. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +87 -4
  38. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__init__.py +0 -1
  39. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +21 -8
  40. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py +2 -4
  41. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +114 -12
  42. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py +2 -5
  43. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +4 -62
  44. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +6 -8
  45. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +7 -7
  46. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__init__.py +0 -1
  47. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/{port_interface/instance_refs.py → PortInterface/InstanceRefs.py} +2 -2
  48. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/{port_interface → PortInterface}/__init__.py +10 -10
  49. armodel/models/{rpt_scenario.py → M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py} +4 -6
  50. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +29 -6
  51. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +6 -6
  52. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +2 -2
  53. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +3 -3
  54. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +28 -4
  55. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py +3 -3
  56. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +86 -0
  57. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +174 -0
  58. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py +3 -4
  59. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +37 -3
  60. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +2 -4
  61. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +166 -10
  62. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{data_mapping.py → DataMapping.py} +2 -3
  63. armodel/models/{fibex/can_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py} +3 -4
  64. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +173 -0
  65. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +14 -0
  66. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +116 -0
  67. armodel/models/{fibex/lin_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py} +4 -5
  68. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__init__.py +0 -0
  69. armodel/models/{fibex/fibex_4_multiplatform.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py} +5 -6
  70. armodel/models/{fibex/fibex_core/core_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py} +6 -14
  71. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +388 -0
  72. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +223 -0
  73. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +177 -0
  74. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__init__.py +0 -0
  75. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__init__.py +0 -0
  76. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +39 -2
  77. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{network_management.py → NetworkManagement.py} +5 -10
  78. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +6 -0
  79. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +86 -17
  80. armodel/models/M2/MSR/AsamHdo/AdminData.py +2 -5
  81. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +3 -3
  82. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +5 -6
  83. armodel/models/M2/MSR/AsamHdo/Constraints/GlobalConstraints.py +3 -4
  84. armodel/models/M2/MSR/AsamHdo/Constraints/__init__.py +0 -1
  85. armodel/models/M2/MSR/AsamHdo/SpecialData.py +1 -4
  86. armodel/models/M2/MSR/AsamHdo/Units.py +3 -6
  87. armodel/models/M2/MSR/AsamHdo/__init__.py +0 -1
  88. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +3 -7
  89. armodel/models/M2/MSR/CalibrationData/__init__.py +0 -1
  90. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +3 -6
  91. armodel/models/M2/MSR/DataDictionary/Axis.py +3 -3
  92. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +3 -3
  93. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +5 -6
  94. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +4 -4
  95. armodel/models/M2/MSR/DataDictionary/__init__.py +0 -1
  96. armodel/models/M2/MSR/Documentation/Annotation.py +4 -6
  97. armodel/models/M2/MSR/Documentation/BlockElements.py +2 -2
  98. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +1 -2
  99. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +3 -6
  100. armodel/models/M2/MSR/Documentation/TextModel/__init__.py +0 -2
  101. armodel/models/M2/MSR/Documentation/__init__.py +1 -1
  102. armodel/models/M2/MSR/__init__.py +1 -1
  103. armodel/models/M2/__init__.py +0 -1
  104. armodel/models/__init__.py +57 -3
  105. armodel/parser/abstract_arxml_parser.py +50 -16
  106. armodel/parser/arxml_parser.py +285 -112
  107. armodel/parser/file_parser.py +2 -1
  108. armodel/report/connector_xls_report.py +2 -1
  109. armodel/tests/test_armodel/models/test_ar_object.py +0 -2
  110. armodel/tests/test_armodel/models/test_ar_package.py +4 -4
  111. armodel/tests/test_armodel/models/test_data_prototype.py +1 -1
  112. armodel/tests/test_armodel/models/test_datatype.py +7 -7
  113. armodel/tests/test_armodel/models/test_port_interface.py +6 -6
  114. armodel/tests/test_armodel/parser/test_parse_bswmd.py +12 -12
  115. armodel/tests/test_armodel/parser/test_sw_components.py +1 -23
  116. armodel/tests/test_armodel/parser/test_system.py +3 -3
  117. armodel/writer/abstract_arxml_writer.py +10 -1
  118. armodel/writer/arxml_writer.py +249 -80
  119. {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/METADATA +385 -366
  120. armodel-1.7.0.dist-info/RECORD +160 -0
  121. {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/WHEEL +1 -1
  122. armodel/models/M2/AUTOSARTemplates/SystemTemplate/transport_protocols.py +0 -7
  123. armodel/models/fibex/fibex_core/core_topology.py +0 -184
  124. armodel/models/sw_component.py +0 -390
  125. armodel/models/timing.py +0 -91
  126. armodel-1.6.3.dist-info/RECORD +0 -148
  127. /armodel/models/{fibex → M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint}/__init__.py +0 -0
  128. /armodel/models/{fibex/fibex_4_can → M2/AUTOSARTemplates/CommonStructure/Timing}/__init__.py +0 -0
  129. /armodel/models/{fibex/fibex_4_lin → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can}/__init__.py +0 -0
  130. /armodel/models/{fibex/fibex_core → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet}/__init__.py +0 -0
  131. {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/LICENSE +0 -0
  132. {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/entry_points.txt +0 -0
  133. {armodel-1.6.3.dist-info → armodel-1.7.0.dist-info}/top_level.txt +0 -0
@@ -2,96 +2,84 @@ from typing import List
2
2
  import xml.etree.ElementTree as ET
3
3
  import os
4
4
 
5
- from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroupContent, SwRecordLayoutV
6
5
 
7
6
 
8
- from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstrRule, InternalConstrs, PhysConstrs
7
+
8
+
9
+ from ..models.M2.MSR.AsamHdo.AdminData import AdminData
10
+ from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition
11
+ from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstrRule, InternalConstrs, PhysConstrs, DataConstr
12
+ from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuMethod, Compu, CompuConst, CompuConstTextContent, CompuNominatorDenominator, CompuRationalCoeffs, CompuScale, CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
13
+ from ..models.M2.MSR.AsamHdo.SpecialData import Sdg, Sd
14
+ from ..models.M2.MSR.CalibrationData.CalibrationValue import SwValueCont, SwValues
15
+ from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, SwPointerTargetProps
9
16
  from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxis
10
17
  from ..models.M2.MSR.DataDictionary.Axis import SwAxisGrouped, SwAxisIndividual
11
- from ..models.M2.MSR.CalibrationData.CalibrationValue import SwValues
12
- from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition
13
- from ..models.M2.MSR.AsamHdo.SpecialData import Sdg
14
- from ..models.M2.MSR.AsamHdo.AdminData import AdminData
15
- from ..models.M2.MSR.AsamHdo.ComputationMethod import Compu, CompuConst, CompuConstTextContent, CompuNominatorDenominator, CompuRationalCoeffs, CompuScale, CompuScaleConstantContents, CompuScaleRationalFormula, CompuScales
16
- from ..models.M2.MSR.Documentation.TextModel.LanguageDataModel import LOverviewParagraph
18
+ from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroupContent, SwRecordLayoutV
19
+ from ..models.M2.MSR.DataDictionary.DataDefProperties import ValueList
20
+ from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroup
21
+ from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxisSet
22
+ from ..models.M2.MSR.Documentation.Annotation import Annotation, GeneralAnnotation
23
+ from ..models.M2.MSR.Documentation.BlockElements import DocumentationBlock
24
+ from ..models.M2.MSR.Documentation.TextModel.LanguageDataModel import LLongName, LOverviewParagraph
17
25
  from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph, MultiLanguageParagraph, MultilanguageLongName
18
- from ..models.M2.MSR.Documentation.Annotation import GeneralAnnotation
19
26
 
20
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationCompositeDataType, ApplicationDataType, AutosarDataType, DataTypeMap, DataTypeMappingSet
21
- from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import Code
22
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndDescription, EndToEndProtection, EndToEndProtectionVariablePrototype
23
- from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup, ModeRequestTypeMap
24
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
27
+ from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
28
+ from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalBehavior, BswModuleEntity, BswScheduleEvent, BswModeSenderPolicy
29
+ from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
30
+ from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
31
+ from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference, NumericalValueSpecification, RecordValueSpecification, TextValueSpecification, ValueSpecification
32
+ from ..models.M2.AUTOSARTemplates.CommonStructure.Filter import DataFilter
33
+ from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import ImplementationProps, Code
34
+ from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup, ModeRequestTypeMap, ModeDeclarationGroupPrototype
25
35
  from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import ResourceConsumption
26
36
  from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.MemorySectionUsage import MemorySection
27
- from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
28
- from ..models.M2.AUTOSARTemplates.CommonStructure.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
37
+ from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity, InternalBehavior
29
38
  from ..models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping, SwcBswRunnableMapping
30
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
31
- from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalBehavior, BswModuleEntity, BswScheduleEvent
32
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
33
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
34
- from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import ImplementationProps
35
- from ..models.M2.AUTOSARTemplates.CommonStructure import ApplicationValueSpecification, ArrayValueSpecification, ConstantReference, NumericalValueSpecification, RecordValueSpecification, TextValueSpecification, ValueSpecification
39
+ from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import RoleBasedDataAssignment, ServiceDependency
40
+ from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import Implementation
41
+ from ..models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
42
+ from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.ExecutionOrderConstraint import ExecutionOrderConstraint
43
+ from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import TimingExtension
44
+ from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
36
45
  from ..models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
37
- from ..models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataTypeElement
46
+ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable, MultilanguageReferrable
47
+ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject, EngineeringObject
48
+ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
49
+ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARLiteral
50
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortAPIOption, PortDefinedArgumentValue
51
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import DataReceivedEvent, OperationInvokedEvent, RTEEvent, SwcModeSwitchEvent
52
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationRecordDataType, ApplicationArrayDataType, ApplicationCompositeDataType, ApplicationDataType, AutosarDataType, DataTypeMap, DataTypeMappingSet
53
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet, EndToEndDescription, EndToEndProtection, EndToEndProtectionVariablePrototype
38
54
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition.InstanceRefs import POperationInAtomicSwcInstanceRef, PPortInCompositionInstanceRef, ROperationInAtomicSwcInstanceRef, RPortInCompositionInstanceRef
39
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.port_interface.instance_refs import ApplicationCompositeElementInPortInterfaceInstanceRef
55
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface.InstanceRefs import ApplicationCompositeElementInPortInterfaceInstanceRef
40
56
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef, AutosarVariableRef, VariableInAtomicSWCTypeInstanceRef
41
- from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import VariableDataPrototypeInSystemInstanceRef
42
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import InnerPortGroupInCompositionInstanceRef, PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef
43
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import RunnableEntityArgument
44
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import PortGroup, SwComponentType, SymbolProps, PPortPrototype, RPortPrototype
45
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import AssemblySwConnector, CompositionSwComponentType, DelegationSwConnector
46
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import ModeAccessPoint
47
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
48
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
49
-
50
- from ..models.fibex.lin_communication import LinFrameTriggering
51
- from ..models.fibex.fibex_core.core_topology import AbstractCanCluster, CanPhysicalChannel, CommunicationCluster, LinPhysicalChannel, PhysicalChannel
52
- from ..models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps, SwPointerTargetProps
53
- from ..models.M2.MSR.Documentation.BlockElements import DocumentationBlock
54
- from ..models.M2.AUTOSARTemplates.SystemTemplate import System, SystemMapping
55
- from ..models.M2.AUTOSARTemplates.SystemTemplate.data_mapping import SenderReceiverToSignalGroupMapping, SenderReceiverToSignalMapping
56
- from ..models.M2.AUTOSARTemplates.SystemTemplate.network_management import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode
57
- from ..models.fibex.can_communication import CanFrameTriggering, RxIdentifierRange
58
- from ..models.M2.AUTOSARTemplates.ecuc_description_template import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue, EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue, EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
59
57
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import CompositeNetworkRepresentation, TransmissionAcknowledgementRequest
60
- from ..models.fibex.fibex_4_multiplatform import ISignalMapping
61
- from ..models.fibex.fibex_core.core_communication import Frame, FrameTriggering, IPdu, ISignalIPdu, ISignalTriggering, PduTriggering
62
58
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
63
- from ..models.timing import ExecutionOrderConstraint, TimingExtension
64
- from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswModeSenderPolicy
65
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.port_interface import ArgumentDataPrototype, ClientServerInterface, ClientServerOperation, InvalidationPolicy, ModeSwitchInterface, ParameterInterface, PortInterface, SenderReceiverInterface
66
- from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroupPrototype
67
- from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
68
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import MultilanguageReferrable
69
- from ..models.M2.MSR.Documentation.TextModel.LanguageDataModel import LLongName
70
- from ..models.M2.MSR.DataDictionary.DataDefProperties import ValueList
71
- from ..models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayoutGroup
72
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType
73
- from ..models.M2.MSR.DataDictionary.CalibrationParameter import SwCalprmAxisSet
74
-
75
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
76
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import RoleBasedPortAssignment
77
- from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
78
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
79
- from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import RoleBasedDataAssignment
80
- from ..models.sw_component import AtomicSwComponentType, PortAPIOption, PortDefinedArgumentValue, ServiceDependency, SwcServiceDependency
59
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components.InstanceRefs import InnerPortGroupInCompositionInstanceRef, PModeGroupInAtomicSwcInstanceRef, RModeGroupInAtomicSWCInstanceRef, RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
60
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import RunnableEntity, RunnableEntityArgument, SwcInternalBehavior
61
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType, PortGroup, SwComponentType, SymbolProps, PPortPrototype, RPortPrototype
62
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import AssemblySwConnector, DelegationSwConnector
63
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet, ModeAccessPoint
64
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import ServerCallPoint
65
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import RoleBasedPortAssignment, SwcServiceDependency
66
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, ReceiverComSpec, SenderComSpec, ServerComSpec
67
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ArgumentDataPrototype, ClientServerInterface, ClientServerOperation, InvalidationPolicy, ModeSwitchInterface, ParameterInterface, PortInterface, SenderReceiverInterface
68
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AtomicSwComponentType
81
69
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationCompositeElementDataPrototype, AutosarDataPrototype, DataPrototype, ParameterDataPrototype, VariableDataPrototype
82
- from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import Implementation
83
- from ..models.M2.MSR.Documentation.Annotation import Annotation
84
- from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr
85
- from ..models.M2.MSR.AsamHdo.SpecialData import Sd
86
- from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuMethod
87
- from ..models.M2.MSR.CalibrationData.CalibrationValue import SwValueCont
88
-
89
- from ..models import SwcInternalBehavior, RunnableEntity, RTEEvent, OperationInvokedEvent, DataReceivedEvent, RVariableInAtomicSwcInstanceRef
90
- from ..models import SwcModeSwitchEvent, RModeInAtomicSwcInstanceRef
91
- from ..models import ImplementationDataType
92
- from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
93
- from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
94
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationRecordDataType
70
+
71
+ from ..models.M2.AUTOSARTemplates.SystemTemplate import SwcToEcuMapping , System, SystemMapping
72
+ from ..models.M2.AUTOSARTemplates.SystemTemplate.DataMapping import SenderReceiverToSignalGroupMapping, SenderReceiverToSignalMapping
73
+ from ..models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import CanNmCluster, CanNmClusterCoupling, CanNmNode, NmCluster, NmConfig, NmNode
74
+ from ..models.M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef, VariableDataPrototypeInSystemInstanceRef
75
+ from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering
76
+ from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import AbstractCanCluster, CanPhysicalChannel, CommConnectorPort, CommunicationCluster, CommunicationConnector, FramePort, IPduPort, ISignalPort, LinPhysicalChannel, PhysicalChannel
77
+ from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import Frame, FrameTriggering, IPdu, IPduTiming, ISignalIPdu, ISignalTriggering, PduTriggering
78
+ from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import CyclicTiming, EventControlledTiming, TimeRangeType, TransmissionModeCondition, TransmissionModeDeclaration, TransmissionModeTiming
79
+ from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
80
+ from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering, RxIdentifierRange
81
+ from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
82
+ from ..models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import ISignalMapping
95
83
 
96
84
  from .abstract_arxml_parser import AbstractARXMLParser
97
85
 
@@ -189,29 +177,39 @@ class ARXMLParser(AbstractARXMLParser):
189
177
  return paragraph
190
178
 
191
179
  def getVariableInAtomicSWCTypeInstanceRef(self, element: ET.Element) -> VariableInAtomicSWCTypeInstanceRef:
192
- autosar_variable_iref = None
180
+ iref = None
193
181
  if element is not None:
194
- autosar_variable_iref = VariableInAtomicSWCTypeInstanceRef()
195
- self.readElementAttributes(element, autosar_variable_iref)
196
- autosar_variable_iref.setPortPrototypeRef(self.getChildElementOptionalRefType(element, "PORT-PROTOTYPE-REF"))
197
- autosar_variable_iref.setTargetDataPrototypeRef(self.getChildElementOptionalRefType(element, "TARGET-DATA-PROTOTYPE-REF"))
198
- return autosar_variable_iref
182
+ iref = VariableInAtomicSWCTypeInstanceRef()
183
+ self.readElementAttributes(element, iref)
184
+ iref.setPortPrototypeRef(self.getChildElementOptionalRefType(element, "PORT-PROTOTYPE-REF"))
185
+ iref.setTargetDataPrototypeRef(self.getChildElementOptionalRefType(element, "TARGET-DATA-PROTOTYPE-REF"))
186
+ return iref
187
+
188
+ def getComponentInSystemInstanceRef(self, element: ET.Element) -> ComponentInSystemInstanceRef:
189
+ iref = None
190
+ if element is not None:
191
+ iref = ComponentInSystemInstanceRef()
192
+ self.readElementAttributes(element, iref)
193
+ iref.setBaseRef(self.getChildElementOptionalRefType(element, "BASE-REF"))
194
+ iref.setContextCompositionRef(self.getChildElementOptionalRefType(element, "CONTEXT-COMPOSITION-REF"))
195
+ iref.setTargetComponentRef(self.getChildElementOptionalRefType(element, "TARGET-COMPONENT-REF"))
196
+ return iref
199
197
 
200
198
  def getAutosarVariableInImplDatatype(self, element: ET.Element) -> AutosarVariableRef:
201
199
  child_element = self.find(element, "ACCESSED-VARIABLE")
202
- accessed_variable_ref = None
200
+ ref = None
203
201
  if (child_element is not None):
204
- accessed_variable_ref = AutosarVariableRef()
205
- accessed_variable_ref.setAutosarVariableIRef(self.getVariableInAtomicSWCTypeInstanceRef(self.find(child_element, "AUTOSAR-VARIABLE-IREF")))
206
- return accessed_variable_ref
202
+ ref = AutosarVariableRef()
203
+ ref.setAutosarVariableIRef(self.getVariableInAtomicSWCTypeInstanceRef(self.find(child_element, "AUTOSAR-VARIABLE-IREF")))
204
+ return ref
207
205
 
208
206
  def getLocalVariableRef(self, element: ET.Element) -> AutosarVariableRef:
209
207
  child_element = self.find(element, "ACCESSED-VARIABLE")
210
- accessed_variable_ref = None
208
+ ref = None
211
209
  if (child_element is not None):
212
- accessed_variable_ref = AutosarVariableRef()
213
- accessed_variable_ref.setLocalVariableRef(self.getChildElementOptionalRefType(child_element, "LOCAL-VARIABLE-REF"))
214
- return accessed_variable_ref
210
+ ref = AutosarVariableRef()
211
+ ref.setLocalVariableRef(self.getChildElementOptionalRefType(child_element, "LOCAL-VARIABLE-REF"))
212
+ return ref
215
213
 
216
214
  def _readVariableAccesses(self, element: ET.Element, parent: RunnableEntity, key: str):
217
215
  for child_element in element.findall("./xmlns:%s/xmlns:VARIABLE-ACCESS" % key, self.nsmap):
@@ -598,12 +596,12 @@ class ARXMLParser(AbstractARXMLParser):
598
596
  def readImplementation(self, element: ET.Element, impl: Implementation):
599
597
  self.readIdentifiable(element, impl)
600
598
  self.readCodeDescriptor(element, impl)
601
- impl.programming_language = self.getChildElementOptionalLiteral(element, "PROGRAMMING-LANGUAGE")
599
+ impl.programmingLanguage = self.getChildElementOptionalLiteral(element, "PROGRAMMING-LANGUAGE")
602
600
  self.readResourceConsumption(element, impl)
603
- impl.sw_version = self.getChildElementOptionalLiteral(element, "SW-VERSION")
604
- impl.swc_bsw_mapping_ref = self.getChildElementOptionalRefType(element, "SWC-BSW-MAPPING-REF")
605
- impl.used_code_generator = self.getChildElementOptionalLiteral(element, "USED-CODE-GENERATOR")
606
- impl.vendor_id = self.getChildElementOptionalNumericalValue(element, "VENDOR-ID")
601
+ impl.swVersion = self.getChildElementOptionalLiteral(element, "SW-VERSION")
602
+ impl.swcBswMappingRef = self.getChildElementOptionalRefType(element, "SWC-BSW-MAPPING-REF")
603
+ impl.usedCodeGenerator = self.getChildElementOptionalLiteral(element, "USED-CODE-GENERATOR")
604
+ impl.vendorId = self.getChildElementOptionalNumericalValue(element, "VENDOR-ID")
607
605
 
608
606
  def readBswImplementationVendorSpecificModuleDefRefs(self, element: ET.Element, parent: BswImplementation):
609
607
  child_element = element.find("./xmlns:VENDOR-SPECIFIC-MODULE-DEF-REFS", self.nsmap)
@@ -616,8 +614,8 @@ class ARXMLParser(AbstractARXMLParser):
616
614
  impl = parent.createBswImplementation(short_name)
617
615
  self.logger.debug("readBswImplementation %s" % impl.getShortName())
618
616
  self.readImplementation(element, impl)
619
- impl.ar_release_version = self.getChildElementOptionalLiteral(element, "AR-RELEASE-VERSION")
620
- impl.behavior_ref = self.getChildElementOptionalRefType(element, "BEHAVIOR-REF")
617
+ impl.setArReleaseVersion(self.getChildElementOptionalLiteral(element, "AR-RELEASE-VERSION")) \
618
+ .setBehaviorRef(self.getChildElementOptionalRefType(element, "BEHAVIOR-REF"))
621
619
  self.readBswImplementationVendorSpecificModuleDefRefs(element, impl)
622
620
 
623
621
  def readSwcImplementation(self, element: ET.Element, parent: ARPackage):
@@ -625,7 +623,7 @@ class ARXMLParser(AbstractARXMLParser):
625
623
  impl = parent.createSwcImplementation(short_name)
626
624
  self.logger.debug("readSwcImplementation %s" % impl.getShortName())
627
625
  self.readImplementation(element, impl)
628
- impl.behavior_ref = self.getChildElementOptionalRefType(element, "BEHAVIOR-REF")
626
+ impl.behaviorRef = self.getChildElementOptionalRefType(element, "BEHAVIOR-REF")
629
627
 
630
628
  def readDataReceivePointByArguments(self, element, parent: RunnableEntity):
631
629
  self._readVariableAccesses(element, parent, "DATA-RECEIVE-POINT-BY-ARGUMENTS")
@@ -807,7 +805,7 @@ class ARXMLParser(AbstractARXMLParser):
807
805
 
808
806
  def readRTEEvent(self, element: ET.Element, event: RTEEvent):
809
807
  self.readIdentifiable(element, event)
810
- event.start_on_event_ref = self.getChildElementOptionalRefType(element, "START-ON-EVENT-REF")
808
+ event.startOnEventRef = self.getChildElementOptionalRefType(element, "START-ON-EVENT-REF")
811
809
  for child_element in element.findall("./xmlns:DISABLED-MODE-IREFS/xmlns:DISABLED-MODE-IREF", self.nsmap):
812
810
  iref = self.getRModeInAtomicSwcInstanceRef(child_element)
813
811
  event.addDisabledModeIRef(iref)
@@ -815,9 +813,9 @@ class ARXMLParser(AbstractARXMLParser):
815
813
  def readOperationIRef(self, element: ET.Element, parent: OperationInvokedEvent):
816
814
  child_element = element.find("./xmlns:OPERATION-IREF", self.nsmap)
817
815
  if (child_element is not None):
818
- parent.operation_iref = POperationInAtomicSwcInstanceRef()
819
- parent.operation_iref.context_p_port_ref = self.getChildElementRefType(parent.getShortName(), child_element, "CONTEXT-P-PORT-REF")
820
- parent.operation_iref.target_provided_operation_ref = self.getChildElementRefType(parent.getShortName(), child_element, "TARGET-PROVIDED-OPERATION-REF")
816
+ parent.operationIRef = POperationInAtomicSwcInstanceRef()
817
+ parent.operationIRef.context_p_port_ref = self.getChildElementRefType(parent.getShortName(), child_element, "CONTEXT-P-PORT-REF")
818
+ parent.operationIRef.target_provided_operation_ref = self.getChildElementRefType(parent.getShortName(), child_element, "TARGET-PROVIDED-OPERATION-REF")
821
819
 
822
820
  def readOperationInvokedEvent(self, element: ET.Element, parent: SwcInternalBehavior):
823
821
  short_name = self.getShortName(element)
@@ -865,15 +863,15 @@ class ARXMLParser(AbstractARXMLParser):
865
863
  child_element = element.find("./xmlns:VALUE/*", self.nsmap)
866
864
  if child_element is not None:
867
865
  argument_value.value = self.getValueSpecification(child_element)
868
- argument_value.value_type = self.getChildElementOptionalRefType(element, "VALUE-TYPE-TREF")
866
+ argument_value.valueTypeTRef = self.getChildElementOptionalRefType(element, "VALUE-TYPE-TREF")
869
867
  return argument_value
870
868
 
871
869
  def readPortAPIOptions(self, element: ET.Element, behavior: SwcInternalBehavior):
872
870
  for child_element in element.findall("./xmlns:PORT-API-OPTIONS/xmlns:PORT-API-OPTION", self.nsmap):
873
871
  option = PortAPIOption()
874
- option.enable_take_address = self.getChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS")
875
- option.indirect_api = self.getChildElementOptionalBooleanValue(child_element, "INDIRECT-API")
876
- option.port_ref = self.getChildElementOptionalRefType(child_element, "PORT-REF")
872
+ option.enableTakeAddress = self.getChildElementOptionalBooleanValue(child_element, "ENABLE-TAKE-ADDRESS")
873
+ option.indirectAPI = self.getChildElementOptionalBooleanValue(child_element, "INDIRECT-API")
874
+ option.portRef = self.getChildElementOptionalRefType(child_element, "PORT-REF")
877
875
  for argument_value_tag in child_element.findall("./xmlns:PORT-ARG-VALUES/xmlns:PORT-DEFINED-ARGUMENT-VALUE", self.nsmap):
878
876
  option.addPortArgValue(self.readPortDefinedArgumentValue(argument_value_tag))
879
877
  behavior.addPortAPIOption(option)
@@ -2151,7 +2149,8 @@ class ARXMLParser(AbstractARXMLParser):
2151
2149
  .setProtocolVersion(self.getChildElementOptionalLiteral(element, "PROTOCOL-VERSION"))
2152
2150
 
2153
2151
  def readAbstractCanCluster(self, element: ET.Element, cluster: AbstractCanCluster):
2154
- cluster.setCanFdBaudrate(self.getChildElementOptionalNumericalValue(element, "CAN-FD-BAUDRATE"))
2152
+ cluster.setCanFdBaudrate(self.getChildElementOptionalNumericalValue(element, "CAN-FD-BAUDRATE")) \
2153
+ .setSpeed(self.getChildElementOptionalNumericalValue(element, "SPEED"))
2155
2154
 
2156
2155
  def readLinCluster(self, element: ET.Element, parent: ARPackage):
2157
2156
  short_name = self.getShortName(element)
@@ -2321,21 +2320,90 @@ class ARXMLParser(AbstractARXMLParser):
2321
2320
 
2322
2321
  def readCanTpConfig(self, element: ET.Element, parent: ARPackage):
2323
2322
  short_name = self.getShortName(element)
2324
- self.logger.debug("CanTpConfig %s" % short_name)
2323
+ self.logger.debug("read CanTpConfig %s" % short_name)
2325
2324
  pdu = parent.createCanTpConfig(short_name)
2326
2325
  self.readIdentifiable(element, pdu)
2327
2326
 
2328
2327
  def readCanFrame(self, element: ET.Element, parent: ARPackage):
2329
2328
  short_name = self.getShortName(element)
2330
- self.logger.debug("CanFrame %s" % short_name)
2329
+ self.logger.debug("read CanFrame %s" % short_name)
2331
2330
  frame = parent.createCanFrame(short_name)
2332
2331
  self.readFrame(element, frame)
2333
2332
 
2333
+ def readCanCommunicationController(self, element: ET.Element, controller: CanCommunicationController):
2334
+ self.logger.debug("read CanCommunicationController %s" % controller.getShortName())
2335
+ self.readIdentifiable(element, controller)
2336
+
2337
+ def readEcuInstanceCommControllers(self, element: ET.Element, instance: EcuInstance):
2338
+ self.logger.debug("readEcuInstanceCommControllers %s" % instance.getShortName())
2339
+ for child_element in self.findall(element, "COMM-CONTROLLERS/*"):
2340
+ tag_name = self.getTagName(child_element)
2341
+ if tag_name == "CAN-COMMUNICATION-CONTROLLER":
2342
+ controller = instance.createCanCommunicationController(self.getShortName(child_element))
2343
+ self.readCanCommunicationController(child_element, controller)
2344
+ else:
2345
+ self._raiseError("Unsupported Communication Controller <%s>" % tag_name)
2346
+
2347
+ def readCommConnectorPort(self, element: ET.Element, port: CommConnectorPort):
2348
+ self.readIdentifiable(element, port)
2349
+ port.setCommunicationDirection(self.getChildElementOptionalLiteral(element, "COMMUNICATION-DIRECTION"))
2350
+
2351
+ def readFramePort(self, element: ET.Element, port: FramePort):
2352
+ self.readCommConnectorPort(element, port)
2353
+
2354
+ def readIPduPort(self, element: ET.Element, port: IPduPort):
2355
+ self.readCommConnectorPort(element, port)
2356
+
2357
+ def readISignalPort(self, element: ET.Element, port: ISignalPort):
2358
+ self.readCommConnectorPort(element, port)
2359
+
2360
+ def readCommunicationConnectorEcuCommPortInstances(self, element: ET.Element, connector: CommunicationConnector):
2361
+ self.logger.debug("read EcuCommPortInstances of CommunicationConnector %s" % connector.getShortName())
2362
+ for child_element in self.findall(element, "ECU-COMM-PORT-INSTANCES/*"):
2363
+ tag_name = self.getTagName(child_element)
2364
+ if tag_name == "FRAME-PORT":
2365
+ port = connector.createFramePort(self.getShortName(child_element))
2366
+ self.readFramePort(child_element, port)
2367
+ elif tag_name == "I-PDU-PORT":
2368
+ port = connector.createIPduPort(self.getShortName(child_element))
2369
+ self.readIPduPort(child_element, port)
2370
+ elif tag_name == "I-SIGNAL-PORT":
2371
+ port = connector.createISignalPort(self.getShortName(child_element))
2372
+ self.readISignalPort(child_element, port)
2373
+ else:
2374
+ self._raiseError("Unsupported EcuCommPortInstances <%s>" % tag_name)
2375
+
2376
+ def readCommunicationConnector(self, element: ET.Element, connector: CommunicationConnector):
2377
+ self.readIdentifiable(element, connector)
2378
+ connector.setCommControllerRef(self.getChildElementOptionalRefType(element, "COMM-CONTROLLER-REF"))
2379
+ self.readCommunicationConnectorEcuCommPortInstances(element, connector)
2380
+
2381
+ def readCanCommunicationConnector(self, element: ET.Element, connector: CanCommunicationConnector):
2382
+ self.readCommunicationConnector(element, connector)
2383
+
2384
+ def readEcuInstanceConnectors(self, element: ET.Element, instance: EcuInstance):
2385
+ self.logger.debug("readEcuInstanceCommControllers %s" % instance.getShortName())
2386
+ for child_element in self.findall(element, "CONNECTORS/*"):
2387
+ tag_name = self.getTagName(child_element)
2388
+ if tag_name == "CAN-COMMUNICATION-CONNECTOR":
2389
+ connector = instance.createCanCommunicationConnector(self.getShortName(child_element))
2390
+ self.readCanCommunicationConnector(child_element, connector)
2391
+ else:
2392
+ self._raiseError("Unsupported Communication Controller <%s>" % tag_name)
2393
+
2334
2394
  def readEcuInstance(self, element: ET.Element, parent: ARPackage):
2335
2395
  short_name = self.getShortName(element)
2336
2396
  self.logger.debug("EcuInstance %s" % short_name)
2337
2397
  instance = parent.createEcuInstance(short_name)
2338
2398
  self.readIdentifiable(element, instance)
2399
+ instance.setComConfigurationGwTimeBase(self.getChildElementOptionalTimeValue(element, "COM-CONFIGURATION-GW-TIME-BASE")) \
2400
+ .setComConfigurationRxTimeBase(self.getChildElementOptionalTimeValue(element, "COM-CONFIGURATION-RX-TIME-BASE")) \
2401
+ .setComConfigurationTxTimeBase(self.getChildElementOptionalTimeValue(element, "COM-CONFIGURATION-TX-TIME-BASE")) \
2402
+ .setComEnableMDTForCyclicTransmission(self.getChildElementOptionalBooleanValue(element, "COM-ENABLE-MDT-FOR-CYCLIC-TRANSMISSION"))
2403
+ self.readEcuInstanceCommControllers(element, instance)
2404
+ self.readEcuInstanceConnectors(element, instance)
2405
+ instance.setSleepModeSupported(self.getChildElementOptionalBooleanValue(element, "SLEEP-MODE-SUPPORTED")) \
2406
+ .setWakeUpOverBusSupported(self.getChildElementOptionalBooleanValue(element, "WAKE-UP-OVER-BUS-SUPPORTED"))
2339
2407
 
2340
2408
  '''
2341
2409
  def getFrameMappings(self, element: ET.Element) -> List[FrameMapping]:
@@ -2566,13 +2634,84 @@ class ARXMLParser(AbstractARXMLParser):
2566
2634
  .setStartPosition(self.getChildElementOptionalNumericalValue(child_element, "START-POSITION")) \
2567
2635
  .setTransferProperty(self.getChildElementOptionalLiteral(child_element, "TRANSFER-PROPERTY")) \
2568
2636
  .setUpdateIndicationBitPosition(self.getChildElementOptionalNumericalValue(child_element, "UPDATE-INDICATION-BIT-POSITION"))
2637
+
2638
+ def getDataFilter(self, element: ET.Element, key: str) -> DataFilter:
2639
+ filter = None
2640
+ child_element = self.find(element, key)
2641
+ if child_element is not None:
2642
+ filter = DataFilter()
2643
+ filter.setDataFilterType(self.getChildElementOptionalLiteral(child_element, "DATA-FILTER-TYPE"))
2644
+ return filter
2645
+
2646
+ def getTransmissionModeConditions(self, element: ET.Element, key: str) -> List[TransmissionModeCondition]:
2647
+ result = []
2648
+ child_elements = self.findall(element, key)
2649
+ for child_element in child_elements:
2650
+ condition = TransmissionModeCondition()
2651
+ condition.setDataFilter(self.getDataFilter(child_element, "DATA-FILTER")) \
2652
+ .setISignalInIPduRef(self.getChildElementOptionalRefType(child_element, "I-SIGNAL-IN-I-PDU-REF"))
2653
+ result.append(condition)
2654
+ return result
2655
+
2656
+ def getTimeRangeType(self, element: ET.Element, key: str) -> TimeRangeType:
2657
+ time_range = None
2658
+ child_element = self.find(element, key)
2659
+ if child_element is not None:
2660
+ time_range = TimeRangeType()
2661
+ time_range.setValue(self.getChildElementOptionalTimeValue(child_element, "VALUE"))
2662
+ return time_range
2663
+
2664
+ def getCyclicTiming(self, element: ET.Element, key: str) -> CyclicTiming:
2665
+ timing = None
2666
+ child_element = self.find(element, key)
2667
+ if child_element is not None:
2668
+ timing = CyclicTiming()
2669
+ return timing
2670
+
2671
+ def getEventControlledTiming(self, element: ET.Element, key: str) -> EventControlledTiming:
2672
+ timing = None
2673
+ child_element = self.find(element, key)
2674
+ if child_element is not None:
2675
+ timing = EventControlledTiming()
2676
+ timing.setNumberOfRepetitions(self.getChildElementOptionalIntegerValue(child_element, "NUMBER-OF-REPETITIONS"))
2677
+ timing.setRepetitionPeriod(self.getTimeRangeType(child_element, "REPETITION-PERIOD"))
2678
+ return timing
2679
+
2680
+ def getTransmissionModeTiming(self, element: ET.Element, key: str) -> TransmissionModeTiming:
2681
+ timing = None
2682
+ child_element = self.find(element, key)
2683
+ if child_element is not None:
2684
+ self.logger.debug("Get TransmissionModeTiming of <%s>" % key)
2685
+ timing = TransmissionModeTiming()
2686
+ #timing.getCyclicTiming(child_element, "")
2687
+ timing.setEventControlledTiming(self.getEventControlledTiming(child_element, "EVENT-CONTROLLED-TIMING"))
2688
+ return timing
2689
+
2690
+ def getTransmissionModeDeclaration(self, element: ET.Element, key: str) -> TransmissionModeDeclaration:
2691
+ decl = None
2692
+ child_element = self.find(element, key)
2693
+ if child_element != None:
2694
+ decl = TransmissionModeDeclaration()
2695
+ for condition in self.getTransmissionModeConditions(child_element, "TRANSMISSION-MODE-CONDITIONS/TRANSMISSION-MODE-CONDITION"):
2696
+ decl.addTransmissionModeCondition(condition)
2697
+ decl.setTransmissionModeTrueTiming(self.getTransmissionModeTiming(child_element, "TRANSMISSION-MODE-TRUE-TIMING"))
2698
+ return decl
2699
+
2700
+ def getISignalIPduIPduTimingSpecification(self, element: ET.Element) -> IPduTiming:
2701
+ timing = None
2702
+ child_element = self.find(element, "I-PDU-TIMING-SPECIFICATIONS/I-PDU-TIMING")
2703
+ if child_element is not None:
2704
+ timing = IPduTiming()
2705
+ timing.setTransmissionModeDeclaration(self.getTransmissionModeDeclaration(child_element, "TRANSMISSION-MODE-DECLARATION"))
2706
+ return timing
2569
2707
 
2570
2708
  def readISignalIPdu(self, element: ET.Element, parent: ARPackage):
2571
2709
  short_name = self.getShortName(element)
2572
2710
  self.logger.debug("ISignalIPdu %s" % short_name)
2573
2711
  i_pdu = parent.createISignalIPdu(short_name)
2574
2712
  self.readIdentifiable(element, i_pdu)
2575
- i_pdu.setLength(self.getChildElementOptionalNumericalValue(element, "LENGTH"))
2713
+ i_pdu.setLength(self.getChildElementOptionalNumericalValue(element, "LENGTH")) \
2714
+ .setIPduTimingSpecification(self.getISignalIPduIPduTimingSpecification(element))
2576
2715
  self.readISignalToPduMappings(element, i_pdu)
2577
2716
  i_pdu.setUnusedBitPattern(self.getChildElementOptionalLiteral(element, "UNUSED-BIT-PATTERN"))
2578
2717
 
@@ -2616,12 +2755,28 @@ class ARXMLParser(AbstractARXMLParser):
2616
2755
  else:
2617
2756
  raise NotImplementedError("Unsupported Data Mapping %s" % tag_name)
2618
2757
 
2758
+ def readSwcToEcuMapping(self, element: ET.Element, mapping: SwcToEcuMapping):
2759
+ self.logger.debug("SwcToEcuMapping %s" % mapping.getShortName())
2760
+ self.readIdentifiable(element, mapping)
2761
+ for child_element in self.findall(element, "COMPONENT-IREFS/COMPONENT-IREF"):
2762
+ mapping.addComponentIRef(self.getComponentInSystemInstanceRef(child_element))
2763
+ mapping.setEcuInstanceRef(self.getChildElementOptionalRefType(element, "ECU-INSTANCE-REF"))
2764
+
2765
+ def readSystemMappingSwMappings(self, element: ET.Element, mapping: SystemMapping):
2766
+ for child_element in self.findall(element, "SW-MAPPINGS/*"):
2767
+ tag_name = self.getTagName(child_element)
2768
+ if tag_name == "SWC-TO-ECU-MAPPING":
2769
+ self.readSwcToEcuMapping(child_element, mapping.createSwcToEcuMapping(self.getShortName(child_element)))
2770
+ else:
2771
+ raise NotImplementedError("Unsupported Sw Mapping %s" % tag_name)
2772
+
2619
2773
  def readSystemMapping(self, element: ET.Element, parent: System):
2620
2774
  short_name = self.getShortName(element)
2621
2775
  self.logger.debug("SystemMapping %s" % short_name)
2622
2776
  mapping = parent.createSystemMapping(short_name)
2623
2777
  self.readIdentifiable(element, mapping)
2624
2778
  self.readSystemMappingDataMappings(element, mapping)
2779
+ self.readSystemMappingSwMappings(element, mapping)
2625
2780
 
2626
2781
  def readSystemMappings(self, element: ET.Element, system: System):
2627
2782
  for child_element in self.findall(element, "MAPPINGS/*"):
@@ -2630,10 +2785,19 @@ class ARXMLParser(AbstractARXMLParser):
2630
2785
  self.readSystemMapping(child_element, system)
2631
2786
  else:
2632
2787
  raise NotImplementedError("Unsupported Mapping %s" % tag_name)
2788
+
2789
+ def readRootSwCompositionPrototype(self, element: ET.Element, system: System):
2790
+ child_element = self.find(element, "ROOT-SOFTWARE-COMPOSITIONS/ROOT-SW-COMPOSITION-PROTOTYPE")
2791
+ if child_element is not None:
2792
+ short_name = self.getShortName(child_element)
2793
+ self.logger.debug("Read RootSwCompositionPrototype %s" % short_name)
2794
+ prototype = system.createRootSoftwareComposition(short_name)
2795
+ self.readIdentifiable(child_element, prototype)
2796
+ prototype.setSoftwareCompositionTRef(self.getChildElementOptionalRefType(child_element, "SOFTWARE-COMPOSITION-TREF"))
2633
2797
 
2634
2798
  def readSystem(self, element: ET.Element, parent: ARPackage):
2635
2799
  short_name = self.getShortName(element)
2636
- self.logger.debug("System %s" % short_name)
2800
+ self.logger.debug("Read System %s" % short_name)
2637
2801
  system = parent.createSystem(short_name)
2638
2802
  self.readIdentifiable(element, system)
2639
2803
 
@@ -2641,20 +2805,27 @@ class ARXMLParser(AbstractARXMLParser):
2641
2805
  for child_element in self.findall(element, "FIBEX-ELEMENTS/FIBEX-ELEMENT-REF-CONDITIONAL"):
2642
2806
  system.addFibexElementRef(self.getChildElementOptionalRefType(child_element, "FIBEX-ELEMENT-REF"))
2643
2807
  self.readSystemMappings(element, system)
2808
+ self.readRootSwCompositionPrototype(element, system)
2809
+ system.setSystemVersion(self.getChildElementOptionalRevisionLabelString(element, "SYSTEM-VERSION"))
2644
2810
 
2645
2811
  def readParameterInterfaceParameters(self, element: ET.Element, parent: ParameterInterface):
2646
- for child_element in element.findall("./xmlns:PARAMETERS/xmlns:PARAMETER-DATA-PROTOTYPE", self.nsmap):
2812
+ for child_element in self.findall(element, "PARAMETERS/PARAMETER-DATA-PROTOTYPE"):
2647
2813
  short_name = self.getShortName(child_element)
2648
2814
  prototype = parent.createParameter(short_name)
2649
2815
  self.readParameterDataPrototype(child_element, prototype)
2650
2816
 
2651
2817
  def readParameterInterface(self, element: ET.Element, parent: ARPackage):
2652
2818
  short_name = self.getShortName(element)
2653
- self.logger.debug("ParameterInterface %s" % short_name)
2819
+ self.logger.debug("Read ParameterInterface %s" % short_name)
2654
2820
  pi_interface = parent.createParameterInterface(short_name)
2655
2821
  self.readIdentifiable(element, pi_interface)
2656
2822
  self.readParameterInterfaceParameters(element, pi_interface)
2657
2823
 
2824
+ def readGenericEthernetFrame(self, element: ET.Element, parent: ARPackage):
2825
+ short_name = self.getShortName(element)
2826
+ self.logger.debug("Read EthernetFrame %s" % short_name)
2827
+ frame = parent.createGenericEthernetFrame(short_name)
2828
+ self.readFrame(element, frame)
2658
2829
 
2659
2830
  def readARPackageElements(self, element: ET.Element, parent: ARPackage):
2660
2831
  for child_element in self.findall(element, "./ELEMENTS/*"):
@@ -2767,6 +2938,8 @@ class ARXMLParser(AbstractARXMLParser):
2767
2938
  self.readPhysicalDimensions(child_element, parent)
2768
2939
  elif tag_name == "PARAMETER-INTERFACE":
2769
2940
  self.readParameterInterface(child_element, parent)
2941
+ elif tag_name == "ETHERNET-FRAME":
2942
+ self.readGenericEthernetFrame(child_element, parent)
2770
2943
  else:
2771
2944
  self._raiseError("Unsupported element type of ARPackage <%s>" % tag_name)
2772
2945
 
@@ -20,7 +20,8 @@ class FileListParser:
20
20
  try:
21
21
  with open(file) as f_in:
22
22
  for line in f_in:
23
- self.file_list.append(line.strip())
23
+ if not line.startswith('#'):
24
+ self.file_list.append(line.strip())
24
25
  except:
25
26
  self.logger.error("No such file or directory: %s" % os.path.realpath(file))
26
27
 
@@ -1,6 +1,7 @@
1
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType
1
2
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
2
3
  from .excel_report import ExcelReporter
3
- from ..models import AUTOSAR, CompositionSwComponentType
4
+ from ..models import AUTOSAR
4
5
  from ..models import PPortInCompositionInstanceRef, RPortInCompositionInstanceRef
5
6
  from typing import List
6
7
 
@@ -1,8 +1,6 @@
1
-
2
1
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical
3
2
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
4
3
 
5
-
6
4
  class TestARObject:
7
5
 
8
6
  def test_ARNumerical(self):
@@ -14,14 +14,14 @@ from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Iden
14
14
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
15
15
 
16
16
  from ....models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
17
- from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components import SwComponentType
17
+ from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, AtomicSwComponentType, EcuAbstractionSwComponentType, SwComponentType
18
18
  from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
19
19
  from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
20
20
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
21
21
  from ....models.M2.MSR.AsamHdo.ComputationMethod import CompuMethod
22
- from ....models.M2.AUTOSARTemplates.SWComponentTemplate.port_interface import ClientServerInterface, DataInterface, PortInterface, SenderReceiverInterface
23
- from ....models.sw_component import ApplicationSwComponentType, AtomicSwComponentType, EcuAbstractionSwComponentType, ServiceSwComponentType
24
- from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import CompositionSwComponentType
22
+ from ....models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerInterface, DataInterface, PortInterface, SenderReceiverInterface
23
+ from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ServiceSwComponentType
24
+ from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType
25
25
 
26
26
  class TestAUTOSAR:
27
27