armodel 1.8.4__py3-none-any.whl → 1.8.6__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 (174) hide show
  1. armodel/__pycache__/__init__.cpython-312.pyc +0 -0
  2. armodel/cli/uuid_checker_cli.py +1 -0
  3. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +8 -3
  4. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswBehavior.cpython-312.pyc +0 -0
  5. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswImplementation.cpython-312.pyc +0 -0
  6. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswInterfaces.cpython-312.pyc +0 -0
  7. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswOverview.cpython-312.pyc +0 -0
  8. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  9. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HardwareConfiguration.cpython-312.pyc +0 -0
  10. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HeapUsage.cpython-312.pyc +0 -0
  11. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/MemorySectionUsage.cpython-312.pyc +0 -0
  12. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/SoftwareContext.cpython-312.pyc +0 -0
  13. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/StackUsage.cpython-312.pyc +0 -0
  14. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/__init__.cpython-312.pyc +0 -0
  15. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/PortPrototypeBlueprint.cpython-312.pyc +0 -0
  16. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/__init__.cpython-312.pyc +0 -0
  17. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/Keyword.cpython-312.pyc +0 -0
  18. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  19. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/ExecutionOrderConstraint.cpython-312.pyc +0 -0
  20. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingConstraint.cpython-312.pyc +0 -0
  21. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingExtensions.cpython-312.pyc +0 -0
  22. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/__init__.cpython-312.pyc +0 -0
  23. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__pycache__/__init__.cpython-312.pyc +0 -0
  24. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Filter.cpython-312.pyc +0 -0
  25. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/FlatMap.cpython-312.pyc +0 -0
  26. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Implementation.cpython-312.pyc +0 -0
  27. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ImplementationDataTypes.cpython-312.pyc +0 -0
  28. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/InternalBehavior.cpython-312.pyc +0 -0
  29. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ModeDeclaration.cpython-312.pyc +0 -0
  30. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ServiceNeeds.cpython-312.pyc +0 -0
  31. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/SwcBswMapping.cpython-312.pyc +0 -0
  32. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/TriggerDeclaration.cpython-312.pyc +0 -0
  33. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  34. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/DiagnosticContribution.cpython-312.pyc +0 -0
  35. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/__init__.cpython-312.pyc +0 -0
  36. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/HwElementCategory.cpython-312.pyc +0 -0
  37. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  38. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +3 -2
  39. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ARPackage.cpython-312.pyc +0 -0
  40. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ArObject.cpython-312.pyc +0 -0
  41. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ElementCollection.cpython-312.pyc +0 -0
  42. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/EngineeringObject.cpython-312.pyc +0 -0
  43. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/Identifiable.cpython-312.pyc +0 -0
  44. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/PrimitiveTypes.cpython-312.pyc +0 -0
  45. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/__init__.cpython-312.pyc +0 -0
  46. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/AbstractStructure.cpython-312.pyc +0 -0
  47. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/LifeCycles.cpython-312.pyc +0 -0
  48. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  49. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +52 -0
  50. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +3 -3
  51. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  52. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/__init__.cpython-312.pyc +0 -0
  53. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +25 -30
  54. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  55. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/__init__.cpython-312.pyc +0 -0
  56. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/DataPrototypes.cpython-312.pyc +0 -0
  57. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/Datatypes.cpython-312.pyc +0 -0
  58. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/__init__.cpython-312.pyc +0 -0
  59. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  60. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/__init__.cpython-312.pyc +0 -0
  61. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +1 -0
  62. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +5 -4
  63. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AccessCount.cpython-312.pyc +0 -0
  64. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AutosarVariableRef.cpython-312.pyc +0 -0
  65. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/DataElements.cpython-312.pyc +0 -0
  66. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/IncludedDataTypes.cpython-312.pyc +0 -0
  67. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/InstanceRefsUsage.cpython-312.pyc +0 -0
  68. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ModeDeclarationGroup.cpython-312.pyc +0 -0
  69. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PerInstanceMemory.cpython-312.pyc +0 -0
  70. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PortAPIOptions.cpython-312.pyc +0 -0
  71. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/RTEEvents.cpython-312.pyc +0 -0
  72. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServerCall.cpython-312.pyc +0 -0
  73. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServiceMapping.cpython-312.pyc +0 -0
  74. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/Trigger.cpython-312.pyc +0 -0
  75. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/__init__.cpython-312.pyc +0 -0
  76. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/Communication.cpython-312.pyc +0 -0
  77. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/EndToEndProtection.cpython-312.pyc +0 -0
  78. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/RPTScenario.cpython-312.pyc +0 -0
  79. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/SwcImplementation.cpython-312.pyc +0 -0
  80. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  81. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanCommunication.cpython-312.pyc +0 -0
  82. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanTopology.cpython-312.pyc +0 -0
  83. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/__init__.cpython-312.pyc +0 -0
  84. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetCommunication.cpython-312.pyc +0 -0
  85. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetFrame.cpython-312.pyc +0 -0
  86. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetTopology.cpython-312.pyc +0 -0
  87. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/NetworkEndpoint.cpython-312.pyc +0 -0
  88. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/ServiceInstances.cpython-312.pyc +0 -0
  89. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/__init__.cpython-312.pyc +0 -0
  90. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayCommunication.cpython-312.pyc +0 -0
  91. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayTopology.cpython-312.pyc +0 -0
  92. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/__init__.cpython-312.pyc +0 -0
  93. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinCommunication.cpython-312.pyc +0 -0
  94. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinTopology.cpython-312.pyc +0 -0
  95. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/__init__.cpython-312.pyc +0 -0
  96. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreCommunication.cpython-312.pyc +0 -0
  97. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreTopology.cpython-312.pyc +0 -0
  98. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/EcuInstance.cpython-312.pyc +0 -0
  99. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/Timing.cpython-312.pyc +0 -0
  100. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/__init__.cpython-312.pyc +0 -0
  101. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/Fibex4Multiplatform.cpython-312.pyc +0 -0
  102. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/__init__.cpython-312.pyc +0 -0
  103. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__pycache__/__init__.cpython-312.pyc +0 -0
  104. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DataMapping.cpython-312.pyc +0 -0
  105. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DiagnosticConnection.cpython-312.pyc +0 -0
  106. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DoIp.cpython-312.pyc +0 -0
  107. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/EcuResourceMapping.cpython-312.pyc +0 -0
  108. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  109. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/NetworkManagement.cpython-312.pyc +0 -0
  110. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/RteEventToOsTaskMapping.cpython-312.pyc +0 -0
  111. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SWmapping.cpython-312.pyc +0 -0
  112. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SecureCommunication.cpython-312.pyc +0 -0
  113. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/TransportProtocols.cpython-312.pyc +0 -0
  114. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  115. armodel/models/M2/AUTOSARTemplates/__pycache__/AutosarTopLevelStructure.cpython-312.pyc +0 -0
  116. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCDescriptionTemplate.cpython-312.pyc +0 -0
  117. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCParameterDefTemplate.cpython-312.pyc +0 -0
  118. armodel/models/M2/AUTOSARTemplates/__pycache__/__init__.cpython-312.pyc +0 -0
  119. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/GlobalConstraints.cpython-312.pyc +0 -0
  120. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/__init__.cpython-312.pyc +0 -0
  121. armodel/models/M2/MSR/AsamHdo/__pycache__/AdminData.cpython-312.pyc +0 -0
  122. armodel/models/M2/MSR/AsamHdo/__pycache__/BaseTypes.cpython-312.pyc +0 -0
  123. armodel/models/M2/MSR/AsamHdo/__pycache__/ComputationMethod.cpython-312.pyc +0 -0
  124. armodel/models/M2/MSR/AsamHdo/__pycache__/SpecialData.cpython-312.pyc +0 -0
  125. armodel/models/M2/MSR/AsamHdo/__pycache__/Units.cpython-312.pyc +0 -0
  126. armodel/models/M2/MSR/AsamHdo/__pycache__/__init__.cpython-312.pyc +0 -0
  127. armodel/models/M2/MSR/CalibrationData/__pycache__/CalibrationValue.cpython-312.pyc +0 -0
  128. armodel/models/M2/MSR/CalibrationData/__pycache__/__init__.cpython-312.pyc +0 -0
  129. armodel/models/M2/MSR/DataDictionary/__pycache__/AuxillaryObjects.cpython-312.pyc +0 -0
  130. armodel/models/M2/MSR/DataDictionary/__pycache__/Axis.cpython-312.pyc +0 -0
  131. armodel/models/M2/MSR/DataDictionary/__pycache__/CalibrationParameter.cpython-312.pyc +0 -0
  132. armodel/models/M2/MSR/DataDictionary/__pycache__/DataDefProperties.cpython-312.pyc +0 -0
  133. armodel/models/M2/MSR/DataDictionary/__pycache__/RecordLayout.cpython-312.pyc +0 -0
  134. armodel/models/M2/MSR/DataDictionary/__pycache__/ServiceProcessTask.cpython-312.pyc +0 -0
  135. armodel/models/M2/MSR/DataDictionary/__pycache__/__init__.cpython-312.pyc +0 -0
  136. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/Figure.cpython-312.pyc +0 -0
  137. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  138. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/ListElements.cpython-312.pyc +0 -0
  139. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/PaginationAndView.cpython-312.pyc +0 -0
  140. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  141. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/LanguageDataModel.cpython-312.pyc +0 -0
  142. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/MultilanguageData.cpython-312.pyc +0 -0
  143. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/__init__.cpython-312.pyc +0 -0
  144. armodel/models/M2/MSR/Documentation/__pycache__/Annotation.cpython-312.pyc +0 -0
  145. armodel/models/M2/MSR/Documentation/__pycache__/__init__.cpython-312.pyc +0 -0
  146. armodel/models/M2/MSR/__pycache__/__init__.cpython-312.pyc +0 -0
  147. armodel/models/M2/__pycache__/__init__.cpython-312.pyc +0 -0
  148. armodel/models/__pycache__/__init__.cpython-312.pyc +0 -0
  149. armodel/models/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  150. armodel/models/utils/__pycache__/uuid_mgr.cpython-312.pyc +0 -0
  151. armodel/parser/__pycache__/__init__.cpython-312.pyc +0 -0
  152. armodel/parser/__pycache__/abstract_arxml_parser.cpython-312.pyc +0 -0
  153. armodel/parser/__pycache__/arxml_parser.cpython-312.pyc +0 -0
  154. armodel/parser/__pycache__/file_parser.cpython-312.pyc +0 -0
  155. armodel/parser/arxml_parser.py +78 -23
  156. armodel/tests/test_armodel/models/test_data_dictionary.py +15 -14
  157. armodel/tests/test_armodel/models/test_data_prototype.py +44 -41
  158. armodel/tests/test_armodel/models/test_general_structure.py +0 -5
  159. armodel/tests/test_armodel/models/test_implementation.py +4 -4
  160. armodel/tests/test_armodel/models/test_m2_msr.py +32 -32
  161. armodel/tests/test_armodel/models/test_port_interface.py +9 -10
  162. armodel/tests/test_armodel/models/test_port_prototype.py +4 -3
  163. armodel/tests/test_armodel/parser/test_sw_components.py +111 -1
  164. armodel/writer/__pycache__/__init__.cpython-312.pyc +0 -0
  165. armodel/writer/__pycache__/abstract_arxml_writer.cpython-312.pyc +0 -0
  166. armodel/writer/__pycache__/arxml_writer.cpython-312.pyc +0 -0
  167. armodel/writer/arxml_writer.py +42 -13
  168. {armodel-1.8.4.dist-info → armodel-1.8.6.dist-info}/METADATA +16 -1
  169. armodel-1.8.6.dist-info/RECORD +360 -0
  170. armodel-1.8.4.dist-info/RECORD +0 -211
  171. {armodel-1.8.4.dist-info → armodel-1.8.6.dist-info}/LICENSE +0 -0
  172. {armodel-1.8.4.dist-info → armodel-1.8.6.dist-info}/WHEEL +0 -0
  173. {armodel-1.8.4.dist-info → armodel-1.8.6.dist-info}/entry_points.txt +0 -0
  174. {armodel-1.8.4.dist-info → armodel-1.8.6.dist-info}/top_level.txt +0 -0
@@ -1,21 +1,19 @@
1
1
  import pytest
2
2
 
3
3
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import PackageableElement
4
-
5
4
  from ....models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AtpFeature
6
-
7
5
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement
8
-
9
6
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable, MultilanguageReferrable, Referrable
10
-
11
7
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
12
-
13
8
  from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
14
9
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
15
- from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import AtpPrototype, AutosarDataPrototype, DataPrototype, VariableDataPrototype
10
+ from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import AtpPrototype, AutosarDataPrototype, DataPrototype
11
+ from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import VariableDataPrototype
16
12
  from ....models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AtpType
17
13
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
18
- from ....models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ArgumentDataPrototype, ClientServerInterface, ClientServerOperation, DataInterface, NvDataInterface, ParameterInterface, PortInterface, SenderReceiverInterface
14
+ from ....models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ApplicationError, ArgumentDataPrototype, ClientServerInterface
15
+ from ....models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerOperation, DataInterface, NvDataInterface
16
+ from ....models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ParameterInterface, PortInterface, SenderReceiverInterface
19
17
 
20
18
 
21
19
  class Test_M2_AUTOSARTemplates_SWComponentTemplate_PortInterface:
@@ -125,8 +123,8 @@ class Test_M2_AUTOSARTemplates_SWComponentTemplate_PortInterface:
125
123
 
126
124
  assert (prototype.getParent() == ar_root)
127
125
  assert (prototype.getShortName() == "ArgumentDataPrototype")
128
- assert (prototype.getDirection() == None)
129
- assert (prototype.getServerArgumentImplPolicy() == None)
126
+ assert (prototype.getDirection() is None)
127
+ assert (prototype.getServerArgumentImplPolicy() is None)
130
128
 
131
129
  def test_ApplicationError(self):
132
130
  document = AUTOSAR.getInstance()
@@ -155,7 +153,8 @@ class Test_M2_AUTOSARTemplates_SWComponentTemplate_PortInterface:
155
153
  assert (isinstance(operation, ClientServerOperation))
156
154
  assert (operation.short_name == "client_server_operation")
157
155
 
158
- prototype = operation.createArgumentDataPrototype("argument_data_prototype1")
156
+ prototype = operation.createArgumentDataPrototype(
157
+ "argument_data_prototype1")
159
158
  assert (prototype.short_name == "argument_data_prototype1")
160
159
 
161
160
  assert (len(operation.getArguments()) == 1)
@@ -2,13 +2,14 @@ import pytest
2
2
 
3
3
  from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import PPortComSpec, RPortComSpec
4
4
 
5
- class Test_PortProtype:
5
+
6
+ class Test_PortPrototype:
6
7
  def test_PPortComSpec(self):
7
8
  with pytest.raises(NotImplementedError) as err:
8
9
  PPortComSpec()
9
- assert(str(err.value) == "PPortComSpec is an abstract class.")
10
+ assert (str(err.value) == "PPortComSpec is an abstract class.")
10
11
 
11
12
  def test_RPortComSpec(self):
12
13
  with pytest.raises(NotImplementedError) as err:
13
14
  RPortComSpec()
14
- assert(str(err.value) == "RPortComSpec is an abstract class.")
15
+ assert (str(err.value) == "RPortComSpec is an abstract class.")
@@ -1,11 +1,13 @@
1
1
  import filecmp
2
+ import xml.etree.ElementTree as ET
2
3
 
4
+ from ....models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import SwcInternalBehavior
3
5
  from ....models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
4
6
  from ....models.M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
5
7
  from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components import AtomicSwComponentType, CompositionSwComponentType
6
8
  from ....writer.arxml_writer import ARXMLWriter
7
9
  from ....parser.arxml_parser import ARXMLParser
8
- from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
10
+ from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR, AUTOSARDoc
9
11
 
10
12
 
11
13
  class TestSWComponents:
@@ -372,3 +374,111 @@ class TestSWComponents:
372
374
 
373
375
  assert (filecmp.cmp("test_files/AUTOSAR_MOD_AISpecification_DataConstr_LifeCycle_Standard.arxml",
374
376
  "data/generated_AUTOSAR_MOD_AISpecification_DataConstr_LifeCycle_Standard.arxml", shallow=False) is True)
377
+
378
+
379
+ class TestSwComponentsWithSameName:
380
+ def test_read_same_package_and_sw_component_name(self):
381
+ parser = ARXMLParser()
382
+ parser.nsmap = {"xmlns": "http://autosar.org/schema/r4.0"}
383
+ xml_content = """
384
+ <AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_00049.xsd" T="2025-05-08T10:56:35+03:00">
385
+ <AR-PACKAGES>
386
+ <AR-PACKAGE>
387
+ <SHORT-NAME>Components</SHORT-NAME>
388
+ <ELEMENTS>
389
+ <APPLICATION-SW-COMPONENT-TYPE T="2025-05-08T21:49:46+03:00">
390
+ <SHORT-NAME>DUPLICATE_NAME</SHORT-NAME>
391
+ <INTERNAL-BEHAVIORS>
392
+ <SWC-INTERNAL-BEHAVIOR T="2025-06-13T08:49:08+03:00">
393
+ <SHORT-NAME>DUPLICATE_NAME</SHORT-NAME>
394
+ <RUNNABLES>
395
+ <RUNNABLE-ENTITY T="2025-06-13T08:49:24+03:00">
396
+ <SHORT-NAME>RunnableInit</SHORT-NAME>
397
+ <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
398
+ <CAN-BE-INVOKED-CONCURRENTLY>false</CAN-BE-INVOKED-CONCURRENTLY>
399
+ <SYMBOL>RunnableInit</SYMBOL>
400
+ </RUNNABLE-ENTITY>
401
+ </RUNNABLES>
402
+ </SWC-INTERNAL-BEHAVIOR>
403
+ </INTERNAL-BEHAVIORS>
404
+ </APPLICATION-SW-COMPONENT-TYPE>
405
+ </ELEMENTS>
406
+ <AR-PACKAGES>
407
+ <AR-PACKAGE>
408
+ <SHORT-NAME>DUPLICATE_NAME</SHORT-NAME>
409
+ </AR-PACKAGE>
410
+ <AR-PACKAGE>
411
+ <SHORT-NAME>NewPackage</SHORT-NAME>
412
+ </AR-PACKAGE>
413
+ </AR-PACKAGES>
414
+ </AR-PACKAGE>
415
+ <AR-PACKAGE>
416
+ <SHORT-NAME>Implementation</SHORT-NAME>
417
+ <ELEMENTS>
418
+ <SW-ADDR-METHOD>
419
+ <SHORT-NAME>CODE</SHORT-NAME>
420
+ <MEMORY-ALLOCATION-KEYWORD-POLICY>ADDR-METHOD-SHORT-NAME</MEMORY-ALLOCATION-KEYWORD-POLICY>
421
+ <SECTION-TYPE>CODE</SECTION-TYPE>
422
+ </SW-ADDR-METHOD>
423
+ <SWC-IMPLEMENTATION>
424
+ <SHORT-NAME>DUPLICATE_NAME</SHORT-NAME>
425
+ <CODE-DESCRIPTORS>
426
+ <CODE>
427
+ <SHORT-NAME>CODE</SHORT-NAME>
428
+ <ARTIFACT-DESCRIPTORS>
429
+ <AUTOSAR-ENGINEERING-OBJECT>
430
+ <SHORT-LABEL>CODE</SHORT-LABEL>
431
+ <CATEGORY>SWSRC</CATEGORY>
432
+ </AUTOSAR-ENGINEERING-OBJECT>
433
+ </ARTIFACT-DESCRIPTORS>
434
+ </CODE>
435
+ </CODE-DESCRIPTORS>
436
+ <PROGRAMMING-LANGUAGE>C</PROGRAMMING-LANGUAGE>
437
+ <RESOURCE-CONSUMPTION>
438
+ <SHORT-NAME>ResourceConsumption</SHORT-NAME>
439
+ <MEMORY-SECTIONS>
440
+ <MEMORY-SECTION>
441
+ <SHORT-NAME>CODE</SHORT-NAME>
442
+ <SIZE>0</SIZE>
443
+ <SW-ADDRMETHOD-REF DEST="SW-ADDR-METHOD">/AUTOSAR_MemMap/SwAddrMethods/CODE</SW-ADDRMETHOD-REF>
444
+ </MEMORY-SECTION>
445
+ </MEMORY-SECTIONS>
446
+ </RESOURCE-CONSUMPTION>
447
+ <SW-VERSION>1.0.0</SW-VERSION>
448
+ <VENDOR-ID>0</VENDOR-ID>
449
+ <BEHAVIOR-REF DEST="SWC-INTERNAL-BEHAVIOR">/Components/DUPLICATE_NAME/DUPLICATE_NAME</BEHAVIOR-REF>
450
+ </SWC-IMPLEMENTATION>
451
+ </ELEMENTS>
452
+ </AR-PACKAGE>
453
+ </AR-PACKAGES>
454
+ </AUTOSAR>
455
+ """ # noqa E501
456
+
457
+ # prepare the XML content
458
+ element = ET.fromstring(xml_content)
459
+
460
+ document = AUTOSARDoc()
461
+ parser.readARPackages(element, document)
462
+ assert len(document.getARPackages()) == 2
463
+ assert document.getARPackages()[0].getShortName() == "Components"
464
+ assert document.getARPackages()[1].getShortName() == "Implementation"
465
+ assert len(document.getARPackages()[0].getElements()) == 1
466
+
467
+ sw_component: AtomicSwComponentType = document.getARPackages()[0].getElement("DUPLICATE_NAME", AtomicSwComponentType)
468
+ assert sw_component is not None
469
+ assert sw_component.getShortName() == "DUPLICATE_NAME"
470
+
471
+ internal_behavior: SwcInternalBehavior = sw_component.getInternalBehavior()
472
+ # Check if the internal behavior is present
473
+ assert internal_behavior is not None
474
+ assert internal_behavior.getShortName() == "DUPLICATE_NAME"
475
+
476
+ # Check if the runnable is present
477
+ assert len(internal_behavior.getRunnableEntities()) == 1
478
+ runnables = internal_behavior.getRunnableEntities()
479
+
480
+ # Check the first runnable
481
+ runnable = runnables[0]
482
+ assert runnable is not None
483
+ assert runnable.getShortName() == "RunnableInit"
484
+
@@ -88,7 +88,7 @@ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identi
88
88
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Referrable, MultilanguageReferrable
89
89
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARLiteral, Limit
90
90
  from ..models.M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfo, LifeCycleInfoSet, LifeCyclePeriod
91
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import CompositeNetworkRepresentation, ModeSwitchedAckRequest
91
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import CompositeNetworkRepresentation, ModeSwitchedAckRequest, NvProvideComSpec, NvRequireComSpec
92
92
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import TransformationComSpecProps, UserDefinedTransformationComSpecProps
93
93
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import TransmissionAcknowledgementRequest
94
94
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec
@@ -132,7 +132,7 @@ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import
132
132
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior import SwcInternalBehavior, SynchronousServerCallPoint
133
133
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.AutosarVariableRef import AutosarVariableRef
134
134
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import ParameterAccess, VariableAccess
135
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef
135
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import AutosarParameterRef, ParameterInAtomicSWCTypeInstanceRef
136
136
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import VariableInAtomicSWCTypeInstanceRef
137
137
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PortAPIOptions import PortDefinedArgumentValue
138
138
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import AsynchronousServerCallReturnsEvent, BackgroundEvent
@@ -409,7 +409,7 @@ class ARXMLWriter(AbstractARXMLWriter):
409
409
  child_element = ET.SubElement(element, "NONQUEUED-SENDER-COM-SPEC")
410
410
  self.writeARObjectAttributes(child_element, com_spec)
411
411
  self.writeSenderComSpec(child_element, com_spec)
412
- self.setValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
412
+ self.setChildValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
413
413
 
414
414
  def writeTransformationComSpecProps(self, element: ET.Element, prop: TransformationComSpecProps):
415
415
  if prop is not None:
@@ -454,7 +454,15 @@ class ARXMLWriter(AbstractARXMLWriter):
454
454
  self.setChildElementOptionalRefType(child_element, "MODE-GROUP-REF", com_spec.getModeGroupRef())
455
455
  self.setModeSwitchedAckRequest(child_element, "MODE-SWITCHED-ACK", com_spec.getModeSwitchedAck())
456
456
  self.setChildElementOptionalNumericalValue(child_element, "QUEUE-LENGTH", com_spec.getQueueLength())
457
-
457
+
458
+ def writeNvProvideComSpec(self, com_specs_tag: ET.Element, com_spec: NvProvideComSpec):
459
+ if com_spec is not None:
460
+ child_element = ET.SubElement(com_specs_tag, "NV-PROVIDE-COM-SPEC")
461
+ self.writeARObjectAttributes(child_element, com_spec)
462
+ self.setChildValueSpecification(child_element, "RAM-BLOCK-INIT-VALUE", com_spec.getRamBlockInitValue())
463
+ self.setChildValueSpecification(child_element, "ROM-BLOCK-INIT-VALUE", com_spec.getRomBlockInitValue())
464
+ self.setChildElementOptionalRefType(child_element, "VARIABLE-REF", com_spec.getVariableRef())
465
+
458
466
  def writePPortComSpec(self, com_specs_tag: ET.Element, com_spec: PPortComSpec):
459
467
  if isinstance(com_spec, NonqueuedSenderComSpec):
460
468
  self.writeNonqueuedSenderComSpec(com_specs_tag, com_spec)
@@ -464,6 +472,8 @@ class ARXMLWriter(AbstractARXMLWriter):
464
472
  self.writeQueuedSenderComSpec(com_specs_tag, com_spec)
465
473
  elif isinstance(com_spec, ModeSwitchSenderComSpec):
466
474
  self.writeModeSwitchSenderComSpec(com_specs_tag, com_spec)
475
+ elif isinstance(com_spec, NvProvideComSpec):
476
+ self.writeNvProvideComSpec(com_specs_tag, com_spec)
467
477
  else:
468
478
  self.notImplemented("Unsupported PPortComSpec %s" % type(com_spec))
469
479
 
@@ -559,7 +569,7 @@ class ARXMLWriter(AbstractARXMLWriter):
559
569
  self.writeValueSpecification(value_spec_tag, value_spec)
560
570
  self.setChildElementOptionalRefType(value_spec_tag, "CONSTANT-REF", value_spec.getConstantRef())
561
571
 
562
- def setValueSpecification(self, element: ET.Element, key: str, value_spec: ValueSpecification):
572
+ def setChildValueSpecification(self, element: ET.Element, key: str, value_spec: ValueSpecification):
563
573
  if value_spec is not None:
564
574
  child_element = ET.SubElement(element, key)
565
575
  if isinstance(value_spec, ApplicationValueSpecification):
@@ -587,7 +597,7 @@ class ARXMLWriter(AbstractARXMLWriter):
587
597
  self.setChildElementOptionalBooleanValue(child_element, "HANDLE-NEVER-RECEIVED", com_spec.getHandleNeverReceived())
588
598
  self.setChildElementOptionalLiteral(child_element, "HANDLE-TIMEOUT-TYPE", com_spec.getHandleTimeoutType())
589
599
 
590
- self.setValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
600
+ self.setChildValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
591
601
 
592
602
  def writeQueuedReceiverComSpec(self, element: ET.Element, com_spec: QueuedReceiverComSpec):
593
603
  child_element = ET.SubElement(element, "QUEUED-RECEIVER-COM-SPEC")
@@ -605,8 +615,15 @@ class ARXMLWriter(AbstractARXMLWriter):
605
615
  self.logger.debug("writeParameterRequireComSpec")
606
616
  child_element = ET.SubElement(element, "PARAMETER-REQUIRE-COM-SPEC")
607
617
  self.writeARObjectAttributes(child_element, com_spec)
618
+ self.setChildValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
608
619
  self.setChildElementOptionalRefType(child_element, "PARAMETER-REF", com_spec.getParameterRef())
609
- self.setValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
620
+
621
+ def writeNvRequireComSpec(self, element: ET.Element, com_spec: NvRequireComSpec):
622
+ self.logger.debug("writeNvRequireComSpec")
623
+ child_element = ET.SubElement(element, "NV-REQUIRE-COM-SPEC")
624
+ self.writeARObjectAttributes(child_element, com_spec)
625
+ self.setChildValueSpecification(child_element, "INIT-VALUE", com_spec.getInitValue())
626
+ self.setChildElementOptionalRefType(child_element, "VARIABLE-REF", com_spec.getVariableRef())
610
627
 
611
628
  def setModeSwitchReceiverComSpec(self, element: ET.Element, com_spec: ModeSwitchReceiverComSpec):
612
629
  self.logger.debug("writeModeSwitchReceiverComSpec")
@@ -627,6 +644,8 @@ class ARXMLWriter(AbstractARXMLWriter):
627
644
  self.setModeSwitchReceiverComSpec(element, com_spec)
628
645
  elif isinstance(com_spec, ParameterRequireComSpec):
629
646
  self.writeParameterRequireComSpec(element, com_spec)
647
+ elif isinstance(com_spec, NvRequireComSpec):
648
+ self.writeNvRequireComSpec(element, com_spec)
630
649
  else:
631
650
  raise ValueError("Unsupported RPortComSpec %s" % type(com_spec))
632
651
 
@@ -937,7 +956,7 @@ class ARXMLWriter(AbstractARXMLWriter):
937
956
  self.setChildElementOptionalRefType(conditional_tag, "SW-ADDR-METHOD-REF", props.getSwAddrMethodRef())
938
957
  self.setChildElementOptionalLiteral(conditional_tag, "SW-CALIBRATION-ACCESS", props.getSwCalibrationAccess())
939
958
  self.setChildElementOptionalRefType(conditional_tag, "COMPU-METHOD-REF", props.getCompuMethodRef())
940
- self.setValueSpecification(conditional_tag, "INVALID-VALUE", props.getInvalidValue())
959
+ self.setChildValueSpecification(conditional_tag, "INVALID-VALUE", props.getInvalidValue())
941
960
  self.setChildElementOptionalFloatValue(conditional_tag, "STEP-SIZE", props.getStepSize())
942
961
  self.setChildElementOptionalRefType(conditional_tag, "DATA-CONSTR-REF", props.getDataConstrRef())
943
962
  self.setChildElementOptionalRefType(conditional_tag, "IMPLEMENTATION-DATA-TYPE-REF", props.getImplementationDataTypeRef())
@@ -1122,7 +1141,7 @@ class ARXMLWriter(AbstractARXMLWriter):
1122
1141
  self.writeIdentifiable(spec_tag, spec)
1123
1142
 
1124
1143
  if spec.getValueSpec() is not None:
1125
- self.setValueSpecification(spec_tag, "VALUE-SPEC", spec.getValueSpec())
1144
+ self.setChildValueSpecification(spec_tag, "VALUE-SPEC", spec.getValueSpec())
1126
1145
 
1127
1146
  def setInternalConstrs(self, element: ET.Element, constrs: InternalConstrs):
1128
1147
  if constrs is not None:
@@ -1345,9 +1364,19 @@ class ARXMLWriter(AbstractARXMLWriter):
1345
1364
  self.writeIdentifiable(child_element, access)
1346
1365
  self.setAutosarVariableRef(child_element, "ACCESSED-VARIABLE", access.getAccessedVariableRef())
1347
1366
 
1367
+ def setParameterInAtomicSWCTypeInstanceRef(self, element: ET.Element, key: str, parameter_iref: ParameterInAtomicSWCTypeInstanceRef):
1368
+ if parameter_iref is not None:
1369
+ child_element = ET.SubElement(element, key)
1370
+ self.setChildElementOptionalRefType(child_element, "BASE-REF", parameter_iref.getBaseRef())
1371
+ self.setChildElementOptionalRefType(child_element, "CONTEXT-DATA-PROTOTYPE-REF", parameter_iref.getContextDataPrototypeRef())
1372
+ self.setChildElementOptionalRefType(child_element, "PORT-PROTOTYPE-REF", parameter_iref.getPortPrototypeRef())
1373
+ self.setChildElementOptionalRefType(child_element, "ROOT-PARAMETER-DATA-PROTOTYPE-REF", parameter_iref.getRootParameterDataPrototypeRef())
1374
+ self.setChildElementOptionalRefType(child_element, "TARGET-DATA-PROTOTYPE-REF", parameter_iref.getTargetDataPrototypeRef())
1375
+
1348
1376
  def setAutosarParameterRef(self, element: ET.Element, key: str, parameter_ref: AutosarParameterRef):
1349
1377
  if parameter_ref is not None:
1350
1378
  child_element = ET.SubElement(element, key)
1379
+ self.setParameterInAtomicSWCTypeInstanceRef(child_element, "AUTOSAR-PARAMETER-IREF", parameter_ref.getAutosarParameterIRef())
1351
1380
  self.setChildElementOptionalRefType(child_element, "LOCAL-PARAMETER-REF", parameter_ref.getLocalParameterRef())
1352
1381
 
1353
1382
  def writeParameterAccess(self, element: ET.Element, parameter_access: ParameterAccess):
@@ -1592,7 +1621,7 @@ class ARXMLWriter(AbstractARXMLWriter):
1592
1621
  def writeParameterDataPrototype(self, element: ET.Element, prototype: ParameterDataPrototype):
1593
1622
  child_element = ET.SubElement(element, "PARAMETER-DATA-PROTOTYPE")
1594
1623
  self.writeAutosarDataPrototype(child_element, prototype)
1595
- self.setValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
1624
+ self.setChildValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
1596
1625
 
1597
1626
  def writeSwcInternalBehaviorParameterDataPrototypes(self, element: ET.Element, key: str, parameters: List[ParameterDataPrototype]):
1598
1627
  if len(parameters) > 0:
@@ -1606,7 +1635,7 @@ class ARXMLWriter(AbstractARXMLWriter):
1606
1635
  for argument_value in argument_values:
1607
1636
  child_element = ET.SubElement(child_element, "PORT-DEFINED-ARGUMENT-VALUE")
1608
1637
  if argument_value.getValue() is not None:
1609
- self.setValueSpecification(child_element, "VALUE", argument_value.getValue())
1638
+ self.setChildValueSpecification(child_element, "VALUE", argument_value.getValue())
1610
1639
  self.setChildElementOptionalRefType(child_element, "VALUE-TYPE-TREF", argument_value.getValueTypeTRef())
1611
1640
 
1612
1641
  def writeSwcInternalBehaviorPortAPIOptions(self, element: ET.Element, behavior: SwcInternalBehavior):
@@ -2075,7 +2104,7 @@ class ARXMLWriter(AbstractARXMLWriter):
2075
2104
  self.logger.debug("writeVariableDataPrototype %s" % prototype.getShortName())
2076
2105
  child_element = ET.SubElement(element, "VARIABLE-DATA-PROTOTYPE")
2077
2106
  self.writeAutosarDataPrototype(child_element, prototype)
2078
- self.setValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
2107
+ self.setChildValueSpecification(child_element, "INIT-VALUE", prototype.getInitValue())
2079
2108
 
2080
2109
  def writeSenderReceiverInterfaceDataElements(self, element: ET.Element, sr_interface: SenderReceiverInterface):
2081
2110
  data_elements = sr_interface.getDataElements()
@@ -4965,7 +4994,7 @@ class ARXMLWriter(AbstractARXMLWriter):
4965
4994
  self.writeIdentifiable(child_element, signal)
4966
4995
  self.setChildElementOptionalLiteral(child_element, "DATA-TYPE-POLICY", signal.getDataTypePolicy())
4967
4996
  self.setChildElementOptionalLiteral(child_element, "I-SIGNAL-TYPE", signal.getISignalType())
4968
- self.setValueSpecification(child_element, "INIT-VALUE", signal.getInitValue())
4997
+ self.setChildValueSpecification(child_element, "INIT-VALUE", signal.getInitValue())
4969
4998
  self.setChildElementOptionalNumericalValue(child_element, "LENGTH", signal.getLength())
4970
4999
  self.setSwDataDefProps(child_element, "NETWORK-REPRESENTATION-PROPS", signal.getNetworkRepresentationProps())
4971
5000
  self.setChildElementOptionalRefType(child_element, "SYSTEM-SIGNAL-REF", signal.getSystemSignalRef())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: armodel
3
- Version: 1.8.4
3
+ Version: 1.8.6
4
4
  Summary: the python arxml parser
5
5
  Home-page: http://github.com/melodypapa/py-armodel
6
6
  Author: melodypapa
@@ -638,4 +638,19 @@ Fix the attribute intervalType of **Limit** is empty issue.
638
638
  2. Add the armodel-uuid-checker cli.
639
639
  3. Remove the space in the boolean type.
640
640
 
641
+ **Version 1.8.5**
642
+
643
+ 1. Reorganize the SwConnector class.
644
+ 2. Raise the error if the short name of rootSwCompositionPrototype.
645
+ 3. To support the following AR Element:
646
+ * NvProvideComSpec
647
+ 4. Fix the duplicate short name of ARPackage and Other ARElements.
648
+
649
+ **Version 1.8.6**
650
+
651
+ 1. To support the following AR Element:
652
+ * NvProvideComSpec
653
+ * NvRequireComSpec
654
+ 2. To improve the following AR Element:
655
+ * ParameterAccess
641
656