armodel 1.8.7__py3-none-any.whl → 1.9.2__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 (444) hide show
  1. armodel/__init__.py +18 -3
  2. armodel/cli/arxml_dump_cli.py +196 -197
  3. armodel/cli/arxml_format_cli.py +84 -84
  4. armodel/cli/connector2xlsx_cli.py +71 -73
  5. armodel/cli/connector_update_cli.py +71 -73
  6. armodel/cli/file_list_cli.py +69 -69
  7. armodel/cli/format_xml_cli.py +62 -62
  8. armodel/cli/memory_section_cli.py +72 -75
  9. armodel/cli/swc_list_cli.py +77 -79
  10. armodel/cli/system_signal_cli.py +71 -73
  11. armodel/cli/uuid_checker_cli.py +95 -95
  12. armodel/data_models/sw_connector.py +21 -21
  13. armodel/lib/__init__.py +3 -4
  14. armodel/lib/cli_args_parser.py +36 -35
  15. armodel/lib/sw_component.py +34 -35
  16. armodel/lib/system_signal.py +36 -36
  17. armodel/models/M2/AUTOSARTemplates/AbstractPlatform/ApplicationDeferredDataType.py +21 -0
  18. armodel/models/M2/AUTOSARTemplates/AbstractPlatform/ApplicationInterface.py +79 -0
  19. armodel/models/M2/AUTOSARTemplates/AbstractPlatform/__init__.py +2 -0
  20. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/ApplicationDesign/PortInterface/Field.py +52 -0
  21. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/ApplicationDesign/PortInterface/__init__.py +1 -0
  22. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/AdaptiveModule/PlatformModuleEthernetEndpointConfiguration.py +63 -0
  23. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/AdaptiveModule/__init__.py +3 -0
  24. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/CryptoDeployment/CryptoKeySlot.py +128 -0
  25. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/CryptoDeployment/CryptoKeySlotContent.py +19 -0
  26. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/CryptoDeployment/__init__.py +4 -0
  27. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRule.py +62 -0
  28. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRuleProps.py +83 -0
  29. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/StateDependentFirewall.py +62 -0
  30. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/__init__.py +5 -0
  31. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/IntrusionDetectionSystem/IdsPlatformInstantiation.py +52 -0
  32. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/IntrusionDetectionSystem/IdsmModuleInstantiation.py +19 -0
  33. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/IntrusionDetectionSystem/__init__.py +4 -0
  34. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/__init__.py +25 -0
  35. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/__init__.py +3 -0
  36. armodel/models/M2/AUTOSARTemplates/{AutosarTopLevelStructure.py → AutosarTopLevelStructure/__init__.py} +320 -318
  37. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswAsynchronousServerCallReturnsEvent.py +27 -0
  38. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswExclusiveAreaPolicy.py +22 -0
  39. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswInterruptEvent.py +18 -0
  40. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeManagerErrorEvent.py +18 -0
  41. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeReceiverPolicy.py +22 -0
  42. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswSchedulerNamePrefix.py +26 -0
  43. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswServiceDependency.py +27 -0
  44. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswTriggerDirectImplementation.py +21 -0
  45. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/RoleBasedBswModuleEntryAssignment.py +35 -0
  46. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2223 -791
  47. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +180 -60
  48. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationship.py +26 -0
  49. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipEnum.py +24 -0
  50. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipSet.py +24 -0
  51. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +586 -200
  52. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/InstanceRefs/ModeInBswModuleDescriptionInstanceRef.py +61 -0
  53. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/InstanceRefs/__init__.py +3 -0
  54. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/__init__.py +445 -0
  55. armodel/models/M2/AUTOSARTemplates/CommonStructure/Constants/__init__.py +670 -0
  56. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +243 -96
  57. armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +273 -69
  58. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +756 -243
  59. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +336 -170
  60. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +430 -136
  61. armodel/models/M2/AUTOSARTemplates/CommonStructure/McGroups.py +53 -0
  62. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/ImplementationElementInParameterInstanceRef.py +15 -0
  63. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataAccessDetails.py +60 -0
  64. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataInstance.py +62 -0
  65. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McFunction.py +62 -0
  66. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McParameterElementGroup.py +39 -0
  67. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSupportData.py +62 -0
  68. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSwEmulationMethodSupport.py +37 -0
  69. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RoleBasedMcDataAssignment.py +61 -0
  70. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/McFunctionDataRefSet.py +39 -0
  71. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptAccessEnum.py +12 -0
  72. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptComponent.py +60 -0
  73. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptEnablerImplTypeEnum.py +11 -0
  74. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntity.py +62 -0
  75. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntityEvent.py +62 -0
  76. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionContext.py +38 -0
  77. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionControlEnum.py +11 -0
  78. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptPreparationEnum.py +11 -0
  79. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptServicePoint.py +62 -0
  80. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSupportData.py +111 -0
  81. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSwPrototypingAccess.py +62 -0
  82. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/__init__.py +27 -0
  83. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/__init__.py +19 -0
  84. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +424 -148
  85. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclarationExtra.py +73 -0
  86. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/ExecutionTime/__init__.py +132 -0
  87. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +93 -32
  88. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +78 -10
  89. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +239 -81
  90. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +68 -23
  91. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +274 -92
  92. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +135 -53
  93. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +2955 -839
  94. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationControlEnum.py +11 -0
  95. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationElementProps.py +37 -0
  96. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationEventProps.py +37 -0
  97. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationProps.py +38 -0
  98. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationPropsSet.py +38 -0
  99. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/__init__.py +13 -0
  100. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/AtpBlueprint.py +32 -0
  101. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/__init__.py +7 -0
  102. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +186 -73
  103. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +10 -0
  104. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/BlueprintGenerator.py +37 -0
  105. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/__init__.py +3 -0
  106. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/BlueprintMappingSet.py +38 -0
  107. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/__init__.py +3 -0
  108. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +126 -45
  109. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +5 -0
  110. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +290 -77
  111. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TDLETZoneClock.py +61 -0
  112. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClock.py +60 -0
  113. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClockSyncAccuracy.py +60 -0
  114. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/__init__.py +5 -0
  115. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInBswInstanceRef.py +14 -0
  116. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInSwcInstanceRef.py +14 -0
  117. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingCondition.py +61 -0
  118. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingConditionFormula.py +37 -0
  119. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingExtensionResource.py +60 -0
  120. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingModeInstance.py +61 -0
  121. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/__init__.py +15 -0
  122. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/AgeConstraint.py +57 -0
  123. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/EventTriggeringConstraint.py +203 -0
  124. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +193 -45
  125. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionTimeConstraint.py +101 -0
  126. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/LatencyTimingConstraint.py +100 -0
  127. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/OffsetConstraint.py +56 -0
  128. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationPointConstraint.py +57 -0
  129. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationTiming.py +117 -0
  130. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +59 -24
  131. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +69 -32
  132. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__init__.py +48 -0
  133. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/Traceable.py +11 -0
  134. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__init__.py +16 -0
  135. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +147 -52
  136. armodel/models/M2/AUTOSARTemplates/CommonStructure/__init__.py +17 -205
  137. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticCommonElement.py +11 -0
  138. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +137 -47
  139. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +10 -0
  140. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +285 -346
  141. armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1561 -1249
  142. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwAttributeValue.py +117 -0
  143. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +176 -59
  144. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementConnector.py +73 -0
  145. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +401 -145
  146. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +293 -92
  147. armodel/models/M2/AUTOSARTemplates/GenericStructure/DocumentationOnM1/__init__.py +39 -0
  148. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +1314 -816
  149. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/AnyInstanceRef.py +88 -0
  150. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +37 -17
  151. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +197 -74
  152. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +129 -51
  153. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Enumerations.py +16 -0
  154. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +599 -236
  155. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +902 -594
  156. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +395 -155
  157. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/AtpDefinition.py +36 -0
  158. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/__init__.py +7 -0
  159. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/AttributeValueVariationPoints/__init__.py +36 -0
  160. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/__init__.py +182 -0
  161. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/ApplicationAttributes/__init__.py +97 -0
  162. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +782 -712
  163. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py +186 -179
  164. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +363 -463
  165. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py +160 -154
  166. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +160 -100
  167. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +145 -145
  168. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +137 -131
  169. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +191 -184
  170. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/InstanceRefs.py +45 -39
  171. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +647 -641
  172. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py +21 -17
  173. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +84 -80
  174. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwComponentType.py +76 -0
  175. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +37 -34
  176. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +26 -21
  177. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +39 -34
  178. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +57 -52
  179. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +32 -24
  180. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +160 -155
  181. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +68 -63
  182. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py +46 -40
  183. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +91 -86
  184. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +219 -206
  185. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py +33 -26
  186. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +148 -137
  187. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +54 -49
  188. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +473 -489
  189. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +334 -259
  190. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +62 -58
  191. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +48 -29
  192. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{EcuResourceMapping.py → ECUResourceMapping.py} +48 -45
  193. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py +139 -122
  194. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +628 -344
  195. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__init__.py +2 -0
  196. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +267 -244
  197. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +30 -16
  198. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +750 -685
  199. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +375 -327
  200. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +924 -975
  201. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +92 -76
  202. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +669 -654
  203. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +193 -149
  204. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +110 -92
  205. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +205 -205
  206. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +1376 -1232
  207. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +800 -662
  208. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +269 -270
  209. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +172 -172
  210. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +90 -87
  211. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +899 -789
  212. armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +43 -35
  213. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +65 -52
  214. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +105 -83
  215. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +574 -524
  216. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +739 -658
  217. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +493 -458
  218. armodel/models/M2/MSR/AsamHdo/AdminData.py +150 -136
  219. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +95 -76
  220. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +367 -329
  221. armodel/models/M2/MSR/AsamHdo/Constraints/GlobalConstraints.py +58 -41
  222. armodel/models/M2/MSR/AsamHdo/SpecialData.py +99 -87
  223. armodel/models/M2/MSR/AsamHdo/Units.py +159 -105
  224. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +55 -57
  225. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +40 -41
  226. armodel/models/M2/MSR/DataDictionary/Axis.py +142 -144
  227. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +35 -36
  228. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +383 -351
  229. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +207 -209
  230. armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +31 -33
  231. armodel/models/M2/MSR/DataDictionary/SystemConstant.py +32 -0
  232. armodel/models/M2/MSR/Documentation/Annotation.py +40 -41
  233. armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +162 -163
  234. armodel/models/M2/MSR/Documentation/BlockElements/Formula/__init__.py +26 -0
  235. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +55 -56
  236. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +35 -30
  237. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +110 -110
  238. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +57 -44
  239. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +59 -58
  240. armodel/models/M2/MSR/Documentation/__init__.py +3 -3
  241. armodel/models/M2/MSR/documentation/__init__.py +3 -0
  242. armodel/models/__init__.py +155 -86
  243. armodel/models/utils/uuid_mgr.py +28 -29
  244. armodel/parser/__init__.py +2 -2
  245. armodel/parser/abstract_arxml_parser.py +323 -325
  246. armodel/parser/arxml_parser.py +5832 -5830
  247. armodel/parser/connector_xlsx_parser.py +192 -193
  248. armodel/parser/excel_parser.py +17 -17
  249. armodel/parser/file_parser.py +46 -46
  250. armodel/report/__init__.py +1 -1
  251. armodel/report/connector_xls_report.py +76 -77
  252. armodel/report/excel_report.py +41 -41
  253. armodel/transformer/abstract.py +6 -6
  254. armodel/transformer/admin_data.py +31 -31
  255. armodel/writer/__init__.py +1 -1
  256. armodel/writer/abstract_arxml_writer.py +146 -147
  257. armodel/writer/arxml_writer.py +5969 -5965
  258. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/METADATA +850 -662
  259. armodel-1.9.2.dist-info/RECORD +286 -0
  260. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/WHEEL +1 -1
  261. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/entry_points.txt +0 -1
  262. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info/licenses}/LICENSE +21 -21
  263. armodel/__pycache__/__init__.cpython-312.pyc +0 -0
  264. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +0 -179
  265. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswBehavior.cpython-312.pyc +0 -0
  266. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswImplementation.cpython-312.pyc +0 -0
  267. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswInterfaces.cpython-312.pyc +0 -0
  268. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswOverview.cpython-312.pyc +0 -0
  269. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  270. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HardwareConfiguration.cpython-312.pyc +0 -0
  271. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HeapUsage.cpython-312.pyc +0 -0
  272. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/MemorySectionUsage.cpython-312.pyc +0 -0
  273. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/SoftwareContext.cpython-312.pyc +0 -0
  274. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/StackUsage.cpython-312.pyc +0 -0
  275. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/__init__.cpython-312.pyc +0 -0
  276. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/PortPrototypeBlueprint.cpython-312.pyc +0 -0
  277. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/__init__.cpython-312.pyc +0 -0
  278. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/Keyword.cpython-312.pyc +0 -0
  279. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  280. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +0 -24
  281. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +0 -0
  282. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/ExecutionOrderConstraint.cpython-312.pyc +0 -0
  283. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingConstraint.cpython-312.pyc +0 -0
  284. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingExtensions.cpython-312.pyc +0 -0
  285. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/__init__.cpython-312.pyc +0 -0
  286. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__pycache__/__init__.cpython-312.pyc +0 -0
  287. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Filter.cpython-312.pyc +0 -0
  288. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/FlatMap.cpython-312.pyc +0 -0
  289. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Implementation.cpython-312.pyc +0 -0
  290. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ImplementationDataTypes.cpython-312.pyc +0 -0
  291. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/InternalBehavior.cpython-312.pyc +0 -0
  292. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ModeDeclaration.cpython-312.pyc +0 -0
  293. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ServiceNeeds.cpython-312.pyc +0 -0
  294. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/SwcBswMapping.cpython-312.pyc +0 -0
  295. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/TriggerDeclaration.cpython-312.pyc +0 -0
  296. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  297. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/DiagnosticContribution.cpython-312.pyc +0 -0
  298. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/__init__.cpython-312.pyc +0 -0
  299. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/HwElementCategory.cpython-312.pyc +0 -0
  300. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  301. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ARPackage.cpython-312.pyc +0 -0
  302. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ArObject.cpython-312.pyc +0 -0
  303. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ElementCollection.cpython-312.pyc +0 -0
  304. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/EngineeringObject.cpython-312.pyc +0 -0
  305. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/Identifiable.cpython-312.pyc +0 -0
  306. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/PrimitiveTypes.cpython-312.pyc +0 -0
  307. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/__init__.cpython-312.pyc +0 -0
  308. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/AbstractStructure.cpython-312.pyc +0 -0
  309. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/LifeCycles.cpython-312.pyc +0 -0
  310. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  311. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  312. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/__init__.cpython-312.pyc +0 -0
  313. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  314. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/__init__.cpython-312.pyc +0 -0
  315. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/DataPrototypes.cpython-312.pyc +0 -0
  316. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/Datatypes.cpython-312.pyc +0 -0
  317. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/__init__.cpython-312.pyc +0 -0
  318. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  319. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/__init__.cpython-312.pyc +0 -0
  320. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AccessCount.cpython-312.pyc +0 -0
  321. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AutosarVariableRef.cpython-312.pyc +0 -0
  322. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/DataElements.cpython-312.pyc +0 -0
  323. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/IncludedDataTypes.cpython-312.pyc +0 -0
  324. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/InstanceRefsUsage.cpython-312.pyc +0 -0
  325. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ModeDeclarationGroup.cpython-312.pyc +0 -0
  326. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PerInstanceMemory.cpython-312.pyc +0 -0
  327. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PortAPIOptions.cpython-312.pyc +0 -0
  328. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/RTEEvents.cpython-312.pyc +0 -0
  329. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServerCall.cpython-312.pyc +0 -0
  330. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServiceMapping.cpython-312.pyc +0 -0
  331. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/Trigger.cpython-312.pyc +0 -0
  332. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/__init__.cpython-312.pyc +0 -0
  333. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/Communication.cpython-312.pyc +0 -0
  334. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/EndToEndProtection.cpython-312.pyc +0 -0
  335. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/RPTScenario.cpython-312.pyc +0 -0
  336. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/SwcImplementation.cpython-312.pyc +0 -0
  337. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  338. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanCommunication.cpython-312.pyc +0 -0
  339. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanTopology.cpython-312.pyc +0 -0
  340. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/__init__.cpython-312.pyc +0 -0
  341. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetCommunication.cpython-312.pyc +0 -0
  342. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetFrame.cpython-312.pyc +0 -0
  343. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetTopology.cpython-312.pyc +0 -0
  344. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/NetworkEndpoint.cpython-312.pyc +0 -0
  345. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/ServiceInstances.cpython-312.pyc +0 -0
  346. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/__init__.cpython-312.pyc +0 -0
  347. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayCommunication.cpython-312.pyc +0 -0
  348. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayTopology.cpython-312.pyc +0 -0
  349. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/__init__.cpython-312.pyc +0 -0
  350. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinCommunication.cpython-312.pyc +0 -0
  351. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinTopology.cpython-312.pyc +0 -0
  352. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/__init__.cpython-312.pyc +0 -0
  353. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreCommunication.cpython-312.pyc +0 -0
  354. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreTopology.cpython-312.pyc +0 -0
  355. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/EcuInstance.cpython-312.pyc +0 -0
  356. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/Timing.cpython-312.pyc +0 -0
  357. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/__init__.cpython-312.pyc +0 -0
  358. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/Fibex4Multiplatform.cpython-312.pyc +0 -0
  359. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/__init__.cpython-312.pyc +0 -0
  360. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__pycache__/__init__.cpython-312.pyc +0 -0
  361. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DataMapping.cpython-312.pyc +0 -0
  362. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DiagnosticConnection.cpython-312.pyc +0 -0
  363. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DoIp.cpython-312.pyc +0 -0
  364. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/EcuResourceMapping.cpython-312.pyc +0 -0
  365. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  366. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/NetworkManagement.cpython-312.pyc +0 -0
  367. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/RteEventToOsTaskMapping.cpython-312.pyc +0 -0
  368. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SWmapping.cpython-312.pyc +0 -0
  369. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SecureCommunication.cpython-312.pyc +0 -0
  370. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/TransportProtocols.cpython-312.pyc +0 -0
  371. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  372. armodel/models/M2/AUTOSARTemplates/__pycache__/AutosarTopLevelStructure.cpython-312.pyc +0 -0
  373. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCDescriptionTemplate.cpython-312.pyc +0 -0
  374. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCParameterDefTemplate.cpython-312.pyc +0 -0
  375. armodel/models/M2/AUTOSARTemplates/__pycache__/__init__.cpython-312.pyc +0 -0
  376. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/GlobalConstraints.cpython-312.pyc +0 -0
  377. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/__init__.cpython-312.pyc +0 -0
  378. armodel/models/M2/MSR/AsamHdo/__pycache__/AdminData.cpython-312.pyc +0 -0
  379. armodel/models/M2/MSR/AsamHdo/__pycache__/BaseTypes.cpython-312.pyc +0 -0
  380. armodel/models/M2/MSR/AsamHdo/__pycache__/ComputationMethod.cpython-312.pyc +0 -0
  381. armodel/models/M2/MSR/AsamHdo/__pycache__/SpecialData.cpython-312.pyc +0 -0
  382. armodel/models/M2/MSR/AsamHdo/__pycache__/Units.cpython-312.pyc +0 -0
  383. armodel/models/M2/MSR/AsamHdo/__pycache__/__init__.cpython-312.pyc +0 -0
  384. armodel/models/M2/MSR/CalibrationData/__pycache__/CalibrationValue.cpython-312.pyc +0 -0
  385. armodel/models/M2/MSR/CalibrationData/__pycache__/__init__.cpython-312.pyc +0 -0
  386. armodel/models/M2/MSR/DataDictionary/__pycache__/AuxillaryObjects.cpython-312.pyc +0 -0
  387. armodel/models/M2/MSR/DataDictionary/__pycache__/Axis.cpython-312.pyc +0 -0
  388. armodel/models/M2/MSR/DataDictionary/__pycache__/CalibrationParameter.cpython-312.pyc +0 -0
  389. armodel/models/M2/MSR/DataDictionary/__pycache__/DataDefProperties.cpython-312.pyc +0 -0
  390. armodel/models/M2/MSR/DataDictionary/__pycache__/RecordLayout.cpython-312.pyc +0 -0
  391. armodel/models/M2/MSR/DataDictionary/__pycache__/ServiceProcessTask.cpython-312.pyc +0 -0
  392. armodel/models/M2/MSR/DataDictionary/__pycache__/__init__.cpython-312.pyc +0 -0
  393. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/Figure.cpython-312.pyc +0 -0
  394. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  395. armodel/models/M2/MSR/Documentation/BlockElements.py +0 -18
  396. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/ListElements.cpython-312.pyc +0 -0
  397. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/PaginationAndView.cpython-312.pyc +0 -0
  398. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  399. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/LanguageDataModel.cpython-312.pyc +0 -0
  400. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/MultilanguageData.cpython-312.pyc +0 -0
  401. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/__init__.cpython-312.pyc +0 -0
  402. armodel/models/M2/MSR/Documentation/__pycache__/Annotation.cpython-312.pyc +0 -0
  403. armodel/models/M2/MSR/Documentation/__pycache__/__init__.cpython-312.pyc +0 -0
  404. armodel/models/M2/MSR/__pycache__/__init__.cpython-312.pyc +0 -0
  405. armodel/models/M2/__pycache__/__init__.cpython-312.pyc +0 -0
  406. armodel/models/__pycache__/__init__.cpython-312.pyc +0 -0
  407. armodel/models/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  408. armodel/models/utils/__pycache__/uuid_mgr.cpython-312.pyc +0 -0
  409. armodel/parser/__pycache__/__init__.cpython-312.pyc +0 -0
  410. armodel/parser/__pycache__/abstract_arxml_parser.cpython-312.pyc +0 -0
  411. armodel/parser/__pycache__/arxml_parser.cpython-312.pyc +0 -0
  412. armodel/parser/__pycache__/file_parser.cpython-312.pyc +0 -0
  413. armodel/tests/__init__.py +0 -0
  414. armodel/tests/test_armodel/__init__.py +0 -0
  415. armodel/tests/test_armodel/models/__init__.py +0 -0
  416. armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +0 -116
  417. armodel/tests/test_armodel/models/test_Identifiable.py +0 -85
  418. armodel/tests/test_armodel/models/test_ar_object.py +0 -154
  419. armodel/tests/test_armodel/models/test_ar_package.py +0 -304
  420. armodel/tests/test_armodel/models/test_ar_ref.py +0 -81
  421. armodel/tests/test_armodel/models/test_bsw_module_template.py +0 -52
  422. armodel/tests/test_armodel/models/test_common_structure.py +0 -82
  423. armodel/tests/test_armodel/models/test_data_dictionary.py +0 -30
  424. armodel/tests/test_armodel/models/test_data_prototype.py +0 -93
  425. armodel/tests/test_armodel/models/test_datatype.py +0 -251
  426. armodel/tests/test_armodel/models/test_general_structure.py +0 -56
  427. armodel/tests/test_armodel/models/test_implementation.py +0 -27
  428. armodel/tests/test_armodel/models/test_m2_msr.py +0 -79
  429. armodel/tests/test_armodel/models/test_port_interface.py +0 -202
  430. armodel/tests/test_armodel/models/test_port_prototype.py +0 -15
  431. armodel/tests/test_armodel/parser/__init__.py +0 -0
  432. armodel/tests/test_armodel/parser/test_arxml_parser.py +0 -53
  433. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +0 -218
  434. armodel/tests/test_armodel/parser/test_implementation_data_type.py +0 -247
  435. armodel/tests/test_armodel/parser/test_parse_bswmd.py +0 -202
  436. armodel/tests/test_armodel/parser/test_rte_event.py +0 -142
  437. armodel/tests/test_armodel/parser/test_runnable_entity.py +0 -135
  438. armodel/tests/test_armodel/parser/test_sw_components.py +0 -484
  439. armodel/tests/test_armodel/parser/test_system.py +0 -23
  440. armodel/writer/__pycache__/__init__.cpython-312.pyc +0 -0
  441. armodel/writer/__pycache__/abstract_arxml_writer.cpython-312.pyc +0 -0
  442. armodel/writer/__pycache__/arxml_writer.cpython-312.pyc +0 -0
  443. armodel-1.8.7.dist-info/RECORD +0 -360
  444. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/top_level.txt +0 -0
@@ -1,816 +1,1314 @@
1
- from typing import Dict, List
2
-
3
- from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import SensorActuatorSwComponentType
4
- from .....M2.MSR.AsamHdo.BaseTypes import SwBaseType
5
- from .....M2.MSR.AsamHdo.Units import PhysicalDimension, Unit
6
- from .....M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr
7
- from .....M2.MSR.AsamHdo.ComputationMethod import CompuMethod
8
- from .....M2.MSR.DataDictionary.AuxillaryObjects import SwAddrMethod
9
- from .....M2.MSR.DataDictionary.RecordLayout import SwRecordLayout
10
-
11
- from .....M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
12
- from .....M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
13
- from .....M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
14
- from .....M2.AUTOSARTemplates.CommonStructure import ConstantSpecification
15
- from .....M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
16
- from .....M2.AUTOSARTemplates.CommonStructure.Implementation import Implementation
17
- from .....M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatMap
18
- from .....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup
19
- from .....M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping
20
- from .....M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.BlueprintDedicated.PortPrototypeBlueprint import PortPrototypeBlueprint
21
- from .....M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.Keyword import KeywordSet
22
- from .....M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming
23
- from .....M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import DiagnosticServiceTable
24
- from .....M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleConfigurationValues, EcucModuleDef, EcucValueCollection
25
- from .....M2.AUTOSARTemplates.EcuResourceTemplate import HwElement
26
- from .....M2.AUTOSARTemplates.EcuResourceTemplate.HwElementCategory import HwCategory, HwType
27
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
28
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ElementCollection import Collection
29
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement, Identifiable, Referrable
30
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Identifier, RefType, ReferrableSubtypesEnum
31
- from .....M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
32
- from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType, ServiceSwComponentType, SwComponentType
33
- from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, AtomicSwComponentType
34
- from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import ComplexDeviceDriverSwComponentType, EcuAbstractionSwComponentType
35
- from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationDataType
36
- from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationPrimitiveDataType, ApplicationRecordDataType
37
- from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
38
- from .....M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
39
- from .....M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerInterface, ModeDeclarationMappingSet, ModeSwitchInterface
40
- from .....M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import PortInterfaceMappingSet, SenderReceiverInterface, TriggerInterface
41
- from .....M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ParameterInterface
42
- from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
43
-
44
- from .....M2.AUTOSARTemplates.SystemTemplate import System
45
- from .....M2.AUTOSARTemplates.SystemTemplate.DiagnosticConnection import DiagnosticConnection
46
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame
47
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway
48
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DcmIPdu, GeneralPurposeIPdu, GeneralPurposePdu, ISignal
49
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import ISignalGroup, ISignalIPdu, ISignalIPduGroup, MultiplexedIPdu
50
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import NPdu, NmPdu, SecureCommunicationPropsSet, SecuredIPdu
51
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import SystemSignal, SystemSignalGroup, UserDefinedIPdu, UserDefinedPdu
52
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CanCluster, LinCluster
53
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
54
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinUnconditionalFrame
55
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
56
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCluster
57
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SoAdRoutingGroup
58
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayCommunication import FlexrayFrame
59
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayTopology import FlexrayCluster
60
- from .....M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import NmConfig
61
- from .....M2.AUTOSARTemplates.SystemTemplate.Transformer import DataTransformationSet
62
- from .....M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig, DoIpTpConfig, LinTpConfig
63
-
64
-
65
- class ReferenceBase(ARObject):
66
- def __init__(self):
67
- super().__init__()
68
-
69
- self.globalElements = [] # type: List[ReferrableSubtypesEnum]
70
- self.globalInPackageRefs = [] # type: List[RefType]
71
- self.isDefault = None # type: Boolean
72
- self.isGlobal = None # type: Boolean
73
- self.BaseIsThisPackage = None # type: Boolean
74
- self.packageRef = None # type: List[RefType]
75
- self.shortLabel = None # type: Identifier
76
-
77
- def getGlobalElements(self):
78
- return self.globalElements
79
-
80
- def addGlobalElement(self, value):
81
- self.globalElements.append(value)
82
- return self
83
-
84
- def getGlobalInPackageRefs(self):
85
- return self.globalInPackageRefs
86
-
87
- def addGlobalInPackageRef(self, value):
88
- self.globalInPackageRefs.append(value)
89
- return self
90
-
91
- def getIsDefault(self):
92
- return self.isDefault
93
-
94
- def setIsDefault(self, value):
95
- self.isDefault = value
96
- return self
97
-
98
- def getIsGlobal(self):
99
- return self.isGlobal
100
-
101
- def setIsGlobal(self, value):
102
- self.isGlobal = value
103
- return self
104
-
105
- def getBaseIsThisPackage(self):
106
- return self.BaseIsThisPackage
107
-
108
- def setBaseIsThisPackage(self, value):
109
- self.BaseIsThisPackage = value
110
- return self
111
-
112
- def getPackageRef(self):
113
- return self.packageRef
114
-
115
- def setPackageRef(self, value):
116
- self.packageRef = value
117
- return self
118
-
119
- def getShortLabel(self):
120
- return self.shortLabel
121
-
122
- def setShortLabel(self, value):
123
- self.shortLabel = value
124
- return self
125
-
126
-
127
- class ARPackage(Identifiable, CollectableElement):
128
- def __init__(self, parent: ARObject, short_name: str):
129
- Identifiable.__init__(self, parent, short_name)
130
- CollectableElement.__init__(self)
131
-
132
- self.arPackages = {} # type: Dict[str, ARPackage]
133
- self.referenceBases = [] # type: List[ReferenceBase]
134
-
135
- def getARPackages(self): # type: (...) -> List[ARPackage]
136
- return list(sorted(self.arPackages.values(), key=lambda a: a.short_name))
137
- # return list(filter(lambda e: isinstance(e, ARPackage), self.elements))
138
-
139
- def createARPackage(self, short_name: str):
140
- if short_name not in self.arPackages:
141
- ar_package = ARPackage(self, short_name)
142
- self.arPackages[short_name] = ar_package
143
- return self.arPackages[short_name]
144
-
145
- def getElement(self, short_name: str, type=None) -> Referrable:
146
- if type is ARPackage or type is None:
147
- if short_name in self.arPackages:
148
- return self.arPackages[short_name]
149
- return CollectableElement.getElement(self, short_name, type)
150
-
151
- def createEcuAbstractionSwComponentType(self, short_name: str) -> EcuAbstractionSwComponentType:
152
- if not self.IsElementExists(short_name, EcuAbstractionSwComponentType):
153
- sw_component = EcuAbstractionSwComponentType(self, short_name)
154
- self.addElement(sw_component)
155
- return self.getElement(short_name, EcuAbstractionSwComponentType)
156
-
157
- def createApplicationSwComponentType(self, short_name: str) -> ApplicationSwComponentType:
158
- if not self.IsElementExists(short_name, ApplicationSwComponentType):
159
- sw_component = ApplicationSwComponentType(self, short_name)
160
- self.addElement(sw_component)
161
- return self.getElement(short_name, ApplicationSwComponentType)
162
-
163
- def createComplexDeviceDriverSwComponentType(self, short_name: str) -> ComplexDeviceDriverSwComponentType:
164
- if not self.IsElementExists(short_name, ComplexDeviceDriverSwComponentType):
165
- sw_component = ComplexDeviceDriverSwComponentType(self, short_name)
166
- self.addElement(sw_component)
167
- return self.getElement(short_name, ComplexDeviceDriverSwComponentType)
168
-
169
- def createServiceSwComponentType(self, short_name: str) -> ServiceSwComponentType:
170
- if not self.IsElementExists(short_name, ServiceSwComponentType):
171
- sw_component = ServiceSwComponentType(self, short_name)
172
- self.addElement(sw_component)
173
- return self.getElement(short_name, ServiceSwComponentType)
174
-
175
- def createSensorActuatorSwComponentType(self, short_name: str) -> SensorActuatorSwComponentType:
176
- if not self.IsElementExists(short_name, SensorActuatorSwComponentType):
177
- sw_component = SensorActuatorSwComponentType(self, short_name)
178
- self.addElement(sw_component)
179
- return self.getElement(short_name, SensorActuatorSwComponentType)
180
-
181
- def createCompositionSwComponentType(self, short_name: str) -> CompositionSwComponentType:
182
- if not self.IsElementExists(short_name, CompositionSwComponentType):
183
- sw_component = CompositionSwComponentType(self, short_name)
184
- self.addElement(sw_component)
185
- return self.getElement(short_name, CompositionSwComponentType)
186
-
187
- def createSenderReceiverInterface(self, short_name: str) -> SenderReceiverInterface:
188
- if not self.IsElementExists(short_name, SenderReceiverInterface):
189
- sr_interface = SenderReceiverInterface(self, short_name)
190
- self.addElement(sr_interface)
191
- return self.getElement(short_name, SenderReceiverInterface)
192
-
193
- def createParameterInterface(self, short_name: str) -> ParameterInterface:
194
- if not self.IsElementExists(short_name, ParameterInterface):
195
- sr_interface = ParameterInterface(self, short_name)
196
- self.addElement(sr_interface)
197
- return self.getElement(short_name, ParameterInterface)
198
-
199
- def createGenericEthernetFrame(self, short_name: str) -> GenericEthernetFrame:
200
- if not self.IsElementExists(short_name, GenericEthernetFrame):
201
- frame = GenericEthernetFrame(self, short_name)
202
- self.addElement(frame)
203
- return self.getElement(short_name, GenericEthernetFrame)
204
-
205
- def createLifeCycleInfoSet(self, short_name: str) -> LifeCycleInfoSet:
206
- if not self.IsElementExists(short_name, LifeCycleInfoSet):
207
- set = LifeCycleInfoSet(self, short_name)
208
- self.addElement(set)
209
- return self.getElement(short_name, LifeCycleInfoSet)
210
-
211
- def createClientServerInterface(self, short_name: str) -> ClientServerInterface:
212
- if not self.IsElementExists(short_name, ClientServerInterface):
213
- cs_interface = ClientServerInterface(self, short_name)
214
- self.addElement(cs_interface)
215
- return self.getElement(short_name, ClientServerInterface)
216
-
217
- def createApplicationPrimitiveDataType(self, short_name: str) -> ApplicationPrimitiveDataType:
218
- if not self.IsElementExists(short_name, ApplicationPrimitiveDataType):
219
- data_type = ApplicationPrimitiveDataType(self, short_name)
220
- self.addElement(data_type)
221
- return self.getElement(short_name, ApplicationPrimitiveDataType)
222
-
223
- def createApplicationRecordDataType(self, short_name: str) -> ApplicationPrimitiveDataType:
224
- if not self.IsElementExists(short_name, ApplicationRecordDataType):
225
- data_type = ApplicationRecordDataType(self, short_name)
226
- self.addElement(data_type)
227
- return self.getElement(short_name, ApplicationRecordDataType)
228
-
229
- def createImplementationDataType(self, short_name: str) -> ImplementationDataType:
230
- if not self.IsElementExists(short_name, ImplementationDataType):
231
- data_type = ImplementationDataType(self, short_name)
232
- self.addElement(data_type)
233
- return self.getElement(short_name, ImplementationDataType)
234
-
235
- def createSwBaseType(self, short_name: str) -> SwBaseType:
236
- if not self.IsElementExists(short_name, SwBaseType):
237
- base_type = SwBaseType(self, short_name)
238
- self.addElement(base_type)
239
- return self.getElement(short_name, SwBaseType)
240
-
241
- def createDataTypeMappingSet(self, short_name: str) -> DataTypeMappingSet:
242
- if not self.IsElementExists(short_name, DataTypeMappingSet):
243
- mapping_set = DataTypeMappingSet(self, short_name)
244
- self.addElement(mapping_set)
245
- return self.getElement(short_name, DataTypeMappingSet)
246
-
247
- def createCompuMethod(self, short_name: str) -> CompuMethod:
248
- if (not self.IsElementExists(short_name, CompuMethod)):
249
- compu_method = CompuMethod(self, short_name)
250
- self.addElement(compu_method)
251
- return self.getElement(short_name, CompuMethod)
252
-
253
- def createBswModuleDescription(self, short_name: str) -> BswModuleDescription:
254
- if not self.IsElementExists(short_name, BswModuleDescription):
255
- desc = BswModuleDescription(self, short_name)
256
- self.addElement(desc)
257
- return self.getElement(short_name, BswModuleDescription)
258
-
259
- def createBswModuleEntry(self, short_name: str) -> BswModuleEntry:
260
- if not self.IsElementExists(short_name, BswModuleEntry):
261
- entry = BswModuleEntry(self, short_name)
262
- self.addElement(entry)
263
- return self.getElement(short_name, BswModuleEntry)
264
-
265
- def createBswImplementation(self, short_name: str) -> BswImplementation:
266
- if not self.IsElementExists(short_name, BswImplementation):
267
- impl = BswImplementation(self, short_name)
268
- self.addElement(impl)
269
- return self.getElement(short_name, BswImplementation)
270
-
271
- def createSwcImplementation(self, short_name: str) -> SwcImplementation:
272
- if not self.IsElementExists(short_name, SwcImplementation):
273
- impl = SwcImplementation(self, short_name)
274
- self.addElement(impl)
275
- return self.getElement(short_name, SwcImplementation)
276
-
277
- def createSwcBswMapping(self, short_name: str) -> SwcBswMapping:
278
- if not self.IsElementExists(short_name, SwcBswMapping):
279
- mapping = SwcBswMapping(self, short_name)
280
- self.addElement(mapping)
281
- return self.getElement(short_name, SwcBswMapping)
282
-
283
- def createConstantSpecification(self, short_name: str) -> ConstantSpecification:
284
- if not self.IsElementExists(short_name, ConstantSpecification):
285
- spec = ConstantSpecification(self, short_name)
286
- self.addElement(spec)
287
- return self.getElement(short_name, ConstantSpecification)
288
-
289
- def createDataConstr(self, short_name: str) -> DataConstr:
290
- if not self.IsElementExists(short_name, DataConstr):
291
- constr = DataConstr(self, short_name)
292
- self.addElement(constr)
293
- return self.getElement(short_name, DataConstr)
294
-
295
- def createUnit(self, short_name: str) -> Unit:
296
- if not self.IsElementExists(short_name, Unit):
297
- unit = Unit(self, short_name)
298
- self.addElement(unit)
299
- return self.getElement(short_name, Unit)
300
-
301
- def createEndToEndProtectionSet(self, short_name: str) -> EndToEndProtectionSet:
302
- if not self.IsElementExists(short_name, EndToEndProtectionSet):
303
- e2d_set = EndToEndProtectionSet(self, short_name)
304
- self.addElement(e2d_set)
305
- return self.getElement(short_name, EndToEndProtectionSet)
306
-
307
- def createApplicationArrayDataType(self, short_name: str) -> ApplicationArrayDataType:
308
- if not self.IsElementExists(short_name, ApplicationArrayDataType):
309
- data_type = ApplicationArrayDataType(self, short_name)
310
- self.addElement(data_type)
311
- return self.getElement(short_name, ApplicationArrayDataType)
312
-
313
- def createSwRecordLayout(self, short_name: str) -> SwRecordLayout:
314
- if not self.IsElementExists(short_name, SwRecordLayout):
315
- layout = SwRecordLayout(self, short_name)
316
- self.addElement(layout)
317
- return self.getElement(short_name, SwRecordLayout)
318
-
319
- def createSwAddrMethod(self, short_name: str) -> SwAddrMethod:
320
- if not self.IsElementExists(short_name, SwAddrMethod):
321
- method = SwAddrMethod(self, short_name)
322
- self.addElement(method)
323
- return self.getElement(short_name, SwAddrMethod)
324
-
325
- def createTriggerInterface(self, short_name: str) -> TriggerInterface:
326
- if not self.IsElementExists(short_name, TriggerInterface):
327
- trigger_interface = TriggerInterface(self, short_name)
328
- self.addElement(trigger_interface)
329
- return self.getElement(short_name, TriggerInterface)
330
-
331
- def createModeDeclarationGroup(self, short_name: str) -> ModeDeclarationGroup:
332
- if not self.IsElementExists(short_name, ModeDeclarationGroup):
333
- group = ModeDeclarationGroup(self, short_name)
334
- self.addElement(group)
335
- return self.getElement(short_name, ModeDeclarationGroup)
336
-
337
- def createModeSwitchInterface(self, short_name: str) -> ModeSwitchInterface:
338
- if not self.IsElementExists(short_name, ModeSwitchInterface):
339
- switch_interface = ModeSwitchInterface(self, short_name)
340
- self.addElement(switch_interface)
341
- return self.getElement(short_name, ModeSwitchInterface)
342
-
343
- def createSwcTiming(self, short_name: str) -> SwcTiming:
344
- if not self.IsElementExists(short_name, SwcTiming):
345
- timing = SwcTiming(self, short_name)
346
- self.addElement(timing)
347
- return self.getElement(short_name, SwcTiming)
348
-
349
- def createLinCluster(self, short_name: str) -> LinCluster:
350
- if not self.IsElementExists(short_name, LinCluster):
351
- cluster = LinCluster(self, short_name)
352
- self.addElement(cluster)
353
- return self.getElement(short_name, LinCluster)
354
-
355
- def createCanCluster(self, short_name: str) -> CanCluster:
356
- if not self.IsElementExists(short_name, CanCluster):
357
- cluster = CanCluster(self, short_name)
358
- self.addElement(cluster)
359
- return self.getElement(short_name, CanCluster)
360
-
361
- def createLinUnconditionalFrame(self, short_name: str) -> LinUnconditionalFrame:
362
- if not self.IsElementExists(short_name, LinUnconditionalFrame):
363
- frame = LinUnconditionalFrame(self, short_name)
364
- self.addElement(frame)
365
- return self.getElement(short_name, LinUnconditionalFrame)
366
-
367
- def createNmPdu(self, short_name: str) -> NmPdu:
368
- if not self.IsElementExists(short_name, NmPdu):
369
- element = NmPdu(self, short_name)
370
- self.addElement(element)
371
- return self.getElement(short_name, NmPdu)
372
-
373
- def createNPdu(self, short_name: str) -> NPdu:
374
- if not self.IsElementExists(short_name, NPdu):
375
- element = NPdu(self, short_name)
376
- self.addElement(element)
377
- return self.getElement(short_name, NPdu)
378
-
379
- def createDcmIPdu(self, short_name: str) -> DcmIPdu:
380
- if not self.IsElementExists(short_name, DcmIPdu):
381
- element = DcmIPdu(self, short_name)
382
- self.addElement(element)
383
- return self.getElement(short_name, DcmIPdu)
384
-
385
- def createSecuredIPdu(self, short_name: str) -> SecuredIPdu:
386
- if not self.IsElementExists(short_name, SecuredIPdu):
387
- element = SecuredIPdu(self, short_name)
388
- self.addElement(element)
389
- return self.getElement(short_name, SecuredIPdu)
390
-
391
- def createNmConfig(self, short_name: str) -> NmConfig:
392
- if not self.IsElementExists(short_name, NmConfig):
393
- element = NmConfig(self, short_name)
394
- self.addElement(element)
395
- return self.getElement(short_name, NmConfig)
396
-
397
- def createCanTpConfig(self, short_name: str) -> CanTpConfig:
398
- if not self.IsElementExists(short_name, CanTpConfig):
399
- element = CanTpConfig(self, short_name)
400
- self.addElement(element)
401
- return self.getElement(short_name, CanTpConfig)
402
-
403
- def createLinTpConfig(self, short_name: str) -> LinTpConfig:
404
- if not self.IsElementExists(short_name, LinTpConfig):
405
- element = LinTpConfig(self, short_name)
406
- self.addElement(element)
407
- return self.getElement(short_name, LinTpConfig)
408
-
409
- def createCanFrame(self, short_name: str) -> CanFrame:
410
- if not self.IsElementExists(short_name, CanFrame):
411
- element = CanFrame(self, short_name)
412
- self.addElement(element)
413
- return self.getElement(short_name, CanFrame)
414
-
415
- def createEcuInstance(self, short_name: str) -> EcuInstance:
416
- if not self.IsElementExists(short_name, EcuInstance):
417
- element = EcuInstance(self, short_name)
418
- self.addElement(element)
419
- return self.getElement(short_name, EcuInstance)
420
-
421
- def createGateway(self, short_name: str) -> Gateway:
422
- if not self.IsElementExists(short_name, Gateway):
423
- element = Gateway(self, short_name)
424
- self.addElement(element)
425
- return self.getElement(short_name, Gateway)
426
-
427
- def createISignal(self, short_name: str) -> ISignal:
428
- if not self.IsElementExists(short_name, ISignal):
429
- element = ISignal(self, short_name)
430
- self.addElement(element)
431
- return self.getElement(short_name, ISignal)
432
-
433
- def createSystemSignal(self, short_name: str) -> SystemSignal:
434
- if not self.IsElementExists(short_name, SystemSignal):
435
- element = SystemSignal(self, short_name)
436
- self.addElement(element)
437
- return self.getElement(short_name, SystemSignal)
438
-
439
- def createSystemSignalGroup(self, short_name: str) -> SystemSignalGroup:
440
- if not self.IsElementExists(short_name, SystemSignalGroup):
441
- element = SystemSignalGroup(self, short_name)
442
- self.addElement(element)
443
- return self.getElement(short_name, SystemSignalGroup)
444
-
445
- def createISignalIPdu(self, short_name: str) -> ISignalIPdu:
446
- if not self.IsElementExists(short_name, ISignalIPdu):
447
- element = ISignalIPdu(self, short_name)
448
- self.addElement(element)
449
- return self.getElement(short_name, ISignalIPdu)
450
-
451
- def createEcucValueCollection(self, short_name: str) -> EcucValueCollection:
452
- if not self.IsElementExists(short_name, EcucValueCollection):
453
- element = EcucValueCollection(self, short_name)
454
- self.addElement(element)
455
- return self.getElement(short_name, EcucValueCollection)
456
-
457
- def createEcucModuleConfigurationValues(self, short_name: str) -> EcucModuleConfigurationValues:
458
- if not self.IsElementExists(short_name, EcucModuleConfigurationValues):
459
- element = EcucModuleConfigurationValues(self, short_name)
460
- self.addElement(element)
461
- return self.getElement(short_name, EcucModuleConfigurationValues)
462
-
463
- def createEcucModuleDef(self, short_name: str) -> EcucModuleDef:
464
- if not self.IsElementExists(short_name, EcucModuleDef):
465
- element = EcucModuleDef(self, short_name)
466
- self.addElement(element)
467
- return self.getElement(short_name, EcucModuleDef)
468
-
469
- def createPhysicalDimension(self, short_name: str) -> PhysicalDimension:
470
- if not self.IsElementExists(short_name, PhysicalDimension):
471
- element = PhysicalDimension(self, short_name)
472
- self.addElement(element)
473
- return self.getElement(short_name, PhysicalDimension)
474
-
475
- def createISignalGroup(self, short_name: str) -> ISignalGroup:
476
- if not self.IsElementExists(short_name, ISignalGroup):
477
- element = ISignalGroup(self, short_name)
478
- self.addElement(element)
479
- return self.getElement(short_name, ISignalGroup)
480
-
481
- def createISignalIPduGroup(self, short_name: str) -> ISignalIPduGroup:
482
- if not self.IsElementExists(short_name, ISignalIPduGroup):
483
- element = ISignalIPduGroup(self, short_name)
484
- self.addElement(element)
485
- return self.getElement(short_name, ISignalIPduGroup)
486
-
487
- def createSystem(self, short_name: str) -> System:
488
- if not self.IsElementExists(short_name, System):
489
- element = System(self, short_name)
490
- self.addElement(element)
491
- return self.getElement(short_name, System)
492
-
493
- def createFlatMap(self, short_name: str) -> FlatMap:
494
- if not self.IsElementExists(short_name, FlatMap):
495
- map = FlatMap(self, short_name)
496
- self.addElement(map)
497
- return self.getElement(short_name, FlatMap)
498
-
499
- def createPortInterfaceMappingSet(self, short_name: str) -> PortInterfaceMappingSet:
500
- if not self.IsElementExists(short_name, PortInterfaceMappingSet):
501
- map_set = PortInterfaceMappingSet(self, short_name)
502
- self.addElement(map_set)
503
- return self.getElement(short_name, PortInterfaceMappingSet)
504
-
505
- def createEthernetCluster(self, short_name: str) -> EthernetCluster:
506
- if not self.IsElementExists(short_name, EthernetCluster):
507
- cluster = EthernetCluster(self, short_name)
508
- self.addElement(cluster)
509
- return self.getElement(short_name, EthernetCluster)
510
-
511
- def createDiagnosticConnection(self, short_name: str) -> DiagnosticConnection:
512
- if not self.IsElementExists(short_name, DiagnosticConnection):
513
- connection = DiagnosticConnection(self, short_name)
514
- self.addElement(connection)
515
- return self.getElement(short_name, DiagnosticConnection)
516
-
517
- def createDiagnosticServiceTable(self, short_name: str) -> DiagnosticServiceTable:
518
- if not self.IsElementExists(short_name, DiagnosticServiceTable):
519
- table = DiagnosticServiceTable(self, short_name)
520
- self.addElement(table)
521
- return self.getElement(short_name, DiagnosticServiceTable)
522
-
523
- def createMultiplexedIPdu(self, short_name: str) -> MultiplexedIPdu:
524
- if not self.IsElementExists(short_name, MultiplexedIPdu):
525
- ipdu = MultiplexedIPdu(self, short_name)
526
- self.addElement(ipdu)
527
- return self.getElement(short_name, MultiplexedIPdu)
528
-
529
- def createUserDefinedIPdu(self, short_name: str) -> UserDefinedIPdu:
530
- if not self.IsElementExists(short_name, UserDefinedIPdu):
531
- ipdu = UserDefinedIPdu(self, short_name)
532
- self.addElement(ipdu)
533
- return self.getElement(short_name, UserDefinedIPdu)
534
-
535
- def createUserDefinedPdu(self, short_name: str) -> UserDefinedPdu:
536
- if not self.IsElementExists(short_name, UserDefinedPdu):
537
- pdu = UserDefinedPdu(self, short_name)
538
- self.addElement(pdu)
539
- return self.getElement(short_name, UserDefinedPdu)
540
-
541
- def createGeneralPurposeIPdu(self, short_name: str) -> GeneralPurposeIPdu:
542
- if not self.IsElementExists(short_name, GeneralPurposeIPdu):
543
- i_pdu = GeneralPurposeIPdu(self, short_name)
544
- self.addElement(i_pdu)
545
- return self.getElement(short_name, GeneralPurposeIPdu)
546
-
547
- def createGeneralPurposePdu(self, short_name: str) -> GeneralPurposePdu:
548
- if not self.IsElementExists(short_name, GeneralPurposePdu):
549
- pdu = GeneralPurposePdu(self, short_name)
550
- self.addElement(pdu)
551
- return self.getElement(short_name, GeneralPurposePdu)
552
-
553
- def createSecureCommunicationPropsSet(self, short_name: str) -> SecureCommunicationPropsSet:
554
- if not self.IsElementExists(short_name, SecureCommunicationPropsSet):
555
- props_set = SecureCommunicationPropsSet(self, short_name)
556
- self.addElement(props_set)
557
- return self.getElement(short_name, SecureCommunicationPropsSet)
558
-
559
- def createSoAdRoutingGroup(self, short_name: str) -> SoAdRoutingGroup:
560
- if not self.IsElementExists(short_name, SoAdRoutingGroup):
561
- group = SoAdRoutingGroup(self, short_name)
562
- self.addElement(group)
563
- return self.getElement(short_name, SoAdRoutingGroup)
564
-
565
- def createDoIpTpConfig(self, short_name: str) -> DoIpTpConfig:
566
- if not self.IsElementExists(short_name, DoIpTpConfig):
567
- tp_config = DoIpTpConfig(self, short_name)
568
- self.addElement(tp_config)
569
- return self.getElement(short_name, DoIpTpConfig)
570
-
571
- def createHwElement(self, short_name: str) -> HwElement:
572
- if not self.IsElementExists(short_name, HwElement):
573
- hw_element = HwElement(self, short_name)
574
- self.addElement(hw_element)
575
- return self.getElement(short_name, HwElement)
576
-
577
- def createHwCategory(self, short_name: str) -> HwCategory:
578
- if not self.IsElementExists(short_name, HwCategory):
579
- hw_category = HwCategory(self, short_name)
580
- self.addElement(hw_category)
581
- return self.getElement(short_name, HwCategory)
582
-
583
- def createHwType(self, short_name: str) -> HwType:
584
- if not self.IsElementExists(short_name, HwType):
585
- hw_category = HwType(self, short_name)
586
- self.addElement(hw_category)
587
- return self.getElement(short_name, HwType)
588
-
589
- def createFlexrayFrame(self, short_name: str) -> FlexrayFrame:
590
- if not self.IsElementExists(short_name, FlexrayFrame):
591
- frame = FlexrayFrame(self, short_name)
592
- self.addElement(frame)
593
- return self.getElement(short_name, FlexrayFrame)
594
-
595
- def createFlexrayCluster(self, short_name: str) -> FlexrayCluster:
596
- if not self.IsElementExists(short_name, FlexrayCluster):
597
- frame = FlexrayCluster(self, short_name)
598
- self.addElement(frame)
599
- return self.getElement(short_name, FlexrayCluster)
600
-
601
- def createDataTransformationSet(self, short_name: str) -> DataTransformationSet:
602
- if not self.IsElementExists(short_name, DataTransformationSet):
603
- transform_set = DataTransformationSet(self, short_name)
604
- self.addElement(transform_set)
605
- return self.getElement(short_name, DataTransformationSet)
606
-
607
- def createCollection(self, short_name: str) -> Collection:
608
- if not self.IsElementExists(short_name, Collection):
609
- collection = Collection(self, short_name)
610
- self.addElement(collection)
611
- return self.getElement(short_name, Collection)
612
-
613
- def createKeywordSet(self, short_name: str) -> KeywordSet:
614
- if not self.IsElementExists(short_name, KeywordSet):
615
- keyword_set = KeywordSet(self, short_name)
616
- self.addElement(keyword_set)
617
- return self.getElement(short_name, KeywordSet)
618
-
619
- def createPortPrototypeBlueprint(self, short_name: str) -> PortPrototypeBlueprint:
620
- if not self.IsElementExists(short_name, PortPrototypeBlueprint):
621
- keyword_set = PortPrototypeBlueprint(self, short_name)
622
- self.addElement(keyword_set)
623
- return self.getElement(short_name, PortPrototypeBlueprint)
624
-
625
- def createModeDeclarationMappingSet(self, short_name: str) -> ModeDeclarationMappingSet:
626
- if not self.IsElementExists(short_name, ModeDeclarationMappingSet):
627
- mapping_set = ModeDeclarationMappingSet(self, short_name)
628
- self.addElement(mapping_set)
629
- return self.getElement(short_name, ModeDeclarationMappingSet)
630
-
631
- def getApplicationPrimitiveDataTypes(self) -> List[ApplicationPrimitiveDataType]:
632
- return list(sorted(filter(lambda a: isinstance(a, ApplicationPrimitiveDataType), self.elements), key=lambda o: o.short_name))
633
-
634
- def getApplicationDataType(self) -> List[ApplicationDataType]:
635
- return list(sorted(filter(lambda a: isinstance(a, ApplicationDataType), self.elements), key=lambda o: o.short_name))
636
-
637
- def getImplementationDataTypes(self) -> List[ImplementationDataType]:
638
- return list(sorted(filter(lambda a: isinstance(a, ImplementationDataType), self.elements), key=lambda o: o.short_name))
639
-
640
- def getSwBaseTypes(self) -> List[SwBaseType]:
641
- return list(filter(lambda a: isinstance(a, SwBaseType), self.elements))
642
-
643
- def getSwComponentTypes(self) -> List[SwComponentType]:
644
- return list(filter(lambda a: isinstance(a, SwComponentType), self.elements))
645
-
646
- def getSensorActuatorSwComponentType(self) -> List[SensorActuatorSwComponentType]:
647
- return list(filter(lambda a: isinstance(a, SensorActuatorSwComponentType), self.elements))
648
-
649
- def getAtomicSwComponentTypes(self) -> List[AtomicSwComponentType]:
650
- return list(filter(lambda a: isinstance(a, AtomicSwComponentType), self.elements))
651
-
652
- def getCompositionSwComponentTypes(self) -> List[CompositionSwComponentType]:
653
- return list(filter(lambda a: isinstance(a, CompositionSwComponentType), self.elements))
654
-
655
- def getComplexDeviceDriverSwComponentTypes(self) -> List[ComplexDeviceDriverSwComponentType]:
656
- return list(sorted(filter(lambda a: isinstance(a, ComplexDeviceDriverSwComponentType), self.elements), key=lambda a: a.short_name))
657
-
658
- def getSenderReceiverInterfaces(self) -> List[SenderReceiverInterface]:
659
- return list(sorted(filter(lambda a: isinstance(a, SenderReceiverInterface), self.elements), key=lambda a: a.short_name))
660
-
661
- def getParameterInterfaces(self) -> List[ParameterInterface]:
662
- return list(sorted(filter(lambda a: isinstance(a, ParameterInterface), self.elements), key=lambda a: a.short_name))
663
-
664
- def getClientServerInterfaces(self) -> List[ClientServerInterface]:
665
- return list(sorted(filter(lambda a: isinstance(a, ClientServerInterface), self.elements), key=lambda a: a.short_name))
666
-
667
- def getDataTypeMappingSets(self) -> List[DataTypeMappingSet]:
668
- return list(sorted(filter(lambda a: isinstance(a, DataTypeMappingSet), self.elements), key=lambda a: a.short_name))
669
-
670
- def getCompuMethods(self) -> List[CompuMethod]:
671
- return list(filter(lambda a: isinstance(a, CompuMethod), self.elements))
672
-
673
- def getBswModuleDescriptions(self) -> List[BswModuleDescription]:
674
- return list(filter(lambda a: isinstance(a, BswModuleDescription), self.elements))
675
-
676
- def getBswModuleEntries(self) -> List[BswModuleEntry]:
677
- return list(filter(lambda a: isinstance(a, BswModuleEntry), self.elements))
678
-
679
- def getBswImplementations(self) -> List[BswImplementation]:
680
- return list(filter(lambda a: isinstance(a, BswImplementation), self.elements))
681
-
682
- def getSwcImplementations(self) -> List[SwcImplementation]:
683
- return list(filter(lambda a: isinstance(a, SwcImplementation), self.elements))
684
-
685
- def getImplementations(self) -> List[Implementation]:
686
- return list(filter(lambda a: isinstance(a, Implementation), self.elements))
687
-
688
- def getSwcBswMappings(self) -> List[SwcBswMapping]:
689
- return list(filter(lambda a: isinstance(a, SwcBswMapping), self.elements))
690
-
691
- def getConstantSpecifications(self) -> List[ConstantSpecification]:
692
- return list(filter(lambda a: isinstance(a, ConstantSpecification), self.elements))
693
-
694
- def getDataConstrs(self) -> List[DataConstr]:
695
- return list(filter(lambda a: isinstance(a, DataConstr), self.elements))
696
-
697
- def getUnits(self) -> List[Unit]:
698
- return list(filter(lambda a: isinstance(a, Unit), self.elements))
699
-
700
- def getApplicationArrayDataTypes(self) -> List[ApplicationArrayDataType]:
701
- return list(sorted(filter(lambda a: isinstance(a, ApplicationArrayDataType), self.elements), key=lambda a: a.short_name))
702
-
703
- def getSwRecordLayouts(self) -> List[SwRecordLayout]:
704
- return list(sorted(filter(lambda a: isinstance(a, SwRecordLayout), self.elements), key=lambda a: a.short_name))
705
-
706
- def getSwAddrMethods(self) -> List[SwAddrMethod]:
707
- return list(sorted(filter(lambda a: isinstance(a, SwAddrMethod), self.elements), key=lambda a: a.short_name))
708
-
709
- def getTriggerInterfaces(self) -> List[TriggerInterface]:
710
- return list(sorted(filter(lambda a: isinstance(a, TriggerInterface), self.elements), key=lambda a: a.short_name))
711
-
712
- def getModeDeclarationGroups(self) -> List[ModeDeclarationGroup]:
713
- return list(sorted(filter(lambda a: isinstance(a, ModeDeclarationGroup), self.elements), key=lambda a: a.short_name))
714
-
715
- def getModeSwitchInterfaces(self) -> List[ModeSwitchInterface]:
716
- return list(sorted(filter(lambda a: isinstance(a, ModeSwitchInterface), self.elements), key=lambda a: a.short_name))
717
-
718
- def getSwcTimings(self) -> List[SwcTiming]:
719
- return list(sorted(filter(lambda a: isinstance(a, SwcTiming), self.elements), key=lambda a: a.short_name))
720
-
721
- def getLinClusters(self) -> List[LinCluster]:
722
- return list(sorted(filter(lambda a: isinstance(a, LinCluster), self.elements), key=lambda a: a.short_name))
723
-
724
- def getCanClusters(self) -> List[CanCluster]:
725
- return list(sorted(filter(lambda a: isinstance(a, CanCluster), self.elements), key=lambda a: a.short_name))
726
-
727
- def getLinUnconditionalFrames(self) -> List[LinUnconditionalFrame]:
728
- return list(sorted(filter(lambda a: isinstance(a, LinUnconditionalFrame), self.elements), key=lambda a: a.short_name))
729
-
730
- def getNmPdus(self) -> List[NmPdu]:
731
- return list(sorted(filter(lambda a: isinstance(a, NmPdu), self.elements), key=lambda a: a.short_name))
732
-
733
- def getNPdus(self) -> List[NPdu]:
734
- return list(sorted(filter(lambda a: isinstance(a, NPdu), self.elements), key=lambda a: a.short_name))
735
-
736
- def getDcmIPdus(self) -> List[DcmIPdu]:
737
- return list(sorted(filter(lambda a: isinstance(a, DcmIPdu), self.elements), key=lambda a: a.short_name))
738
-
739
- def getSecuredIPdus(self) -> List[SecuredIPdu]:
740
- return list(sorted(filter(lambda a: isinstance(a, SecuredIPdu), self.elements), key=lambda a: a.short_name))
741
-
742
- def getNmConfigs(self) -> List[NmConfig]:
743
- return list(sorted(filter(lambda a: isinstance(a, NmConfig), self.elements), key=lambda a: a.short_name))
744
-
745
- def getCanTpConfigs(self) -> List[CanTpConfig]:
746
- return list(sorted(filter(lambda a: isinstance(a, CanTpConfig), self.elements), key=lambda a: a.short_name))
747
-
748
- def getCanFrames(self) -> List[CanFrame]:
749
- return list(sorted(filter(lambda a: isinstance(a, CanFrame), self.elements), key=lambda a: a.short_name))
750
-
751
- def getEcuInstances(self) -> List[EcuInstance]:
752
- return list(sorted(filter(lambda a: isinstance(a, EcuInstance), self.elements), key=lambda a: a.short_name))
753
-
754
- def getGateways(self) -> List[Gateway]:
755
- return list(sorted(filter(lambda a: isinstance(a, Gateway), self.elements), key=lambda a: a.short_name))
756
-
757
- def getISignals(self) -> List[ISignal]:
758
- return list(sorted(filter(lambda a: isinstance(a, ISignal), self.elements), key=lambda a: a.short_name))
759
-
760
- def getEcucValueCollections(self) -> List[EcucValueCollection]:
761
- return list(sorted(filter(lambda a: isinstance(a, EcucValueCollection), self.elements), key=lambda a: a.short_name))
762
-
763
- def getEcucModuleConfigurationValues(self) -> List[EcucModuleConfigurationValues]:
764
- return list(sorted(filter(lambda a: isinstance(a, EcucModuleConfigurationValues), self.elements), key=lambda a: a.short_name))
765
-
766
- def getEcucModuleDefs(self) -> List[EcucModuleDef]:
767
- return list(sorted(filter(lambda a: isinstance(a, EcucModuleDef), self.elements), key=lambda a: a.short_name))
768
-
769
- def getEcucPhysicalDimensions(self) -> List[PhysicalDimension]:
770
- return list(sorted(filter(lambda a: isinstance(a, PhysicalDimension), self.elements), key=lambda a: a.short_name))
771
-
772
- def getISignalGroups(self) -> List[ISignalGroup]:
773
- return list(sorted(filter(lambda a: isinstance(a, ISignalGroup), self.elements), key=lambda a: a.short_name))
774
-
775
- def getSystemSignals(self) -> List[SystemSignal]:
776
- return list(sorted(filter(lambda a: isinstance(a, SystemSignal), self.elements), key=lambda a: a.short_name))
777
-
778
- def getSystemSignalGroups(self) -> List[SystemSignalGroup]:
779
- return list(sorted(filter(lambda a: isinstance(a, SystemSignalGroup), self.elements), key=lambda a: a.short_name))
780
-
781
- def getISignalIPdus(self) -> List[ISignalIPdu]:
782
- return list(sorted(filter(lambda a: isinstance(a, ISignalIPdu), self.elements), key=lambda a: a.short_name))
783
-
784
- def getSystems(self) -> List[System]:
785
- return list(sorted(filter(lambda a: isinstance(a, System), self.elements), key=lambda a: a.short_name))
786
-
787
- def getHwElements(self) -> List[HwElement]:
788
- return list(sorted(filter(lambda a: isinstance(a, HwElement), self.elements), key=lambda a: a.short_name))
789
-
790
- def getHwCategories(self) -> List[HwCategory]:
791
- return list(sorted(filter(lambda a: isinstance(a, HwCategory), self.elements), key=lambda a: a.short_name))
792
-
793
- def getFlexrayFrames(self) -> List[FlexrayFrame]:
794
- return list(sorted(filter(lambda a: isinstance(a, FlexrayFrame), self.elements), key=lambda a: a.short_name))
795
-
796
- def getDataTransformationSets(self) -> List[DataTransformationSet]:
797
- return list(sorted(filter(lambda a: isinstance(a, DataTransformationSet), self.elements), key=lambda a: a.short_name))
798
-
799
- def getCollections(self) -> List[Collection]:
800
- return list(sorted(filter(lambda a: isinstance(a, Collection), self.elements), key=lambda a: a.short_name))
801
-
802
- def getKeywordSets(self) -> List[KeywordSet]:
803
- return list(sorted(filter(lambda a: isinstance(a, KeywordSet), self.elements), key=lambda a: a.short_name))
804
-
805
- def getPortPrototypeBlueprints(self) -> List[PortPrototypeBlueprint]:
806
- return list(sorted(filter(lambda a: isinstance(a, PortPrototypeBlueprint), self.elements), key=lambda a: a.short_name))
807
-
808
- def getModeDeclarationMappingSets(self) -> List[ModeDeclarationMappingSet]:
809
- return list(sorted(filter(lambda a: isinstance(a, ModeDeclarationMappingSet), self.elements), key=lambda a: a.short_name))
810
-
811
- def getReferenceBases(self):
812
- return self.referenceBases
813
-
814
- def addReferenceBase(self, value):
815
- self.referenceBases.append(value)
816
- return self
1
+ """
2
+ This module contains the ARPackage class and related classes for AUTOSAR models
3
+ in the GenericStructure module. ARPackage represents a hierarchical container for
4
+ organizing AUTOSAR elements according to the AUTOSAR standard. It serves as the
5
+ primary organizational unit for grouping related AUTOSAR model elements such as
6
+ components, interfaces, data types, and other packages.
7
+ """
8
+
9
+ from typing import Dict, List, Optional, Any
10
+
11
+ from armodel.models.M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
12
+ from armodel.models.M2.MSR.AsamHdo.AdminData import AdminData
13
+ from armodel.models.M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
14
+ from armodel.models.M2.MSR.Documentation.Annotation import Annotation
15
+ from armodel.models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph
16
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import CategoryString
17
+
18
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.Components import SensorActuatorSwComponentType
19
+ from armodel.models.M2.MSR.AsamHdo.BaseTypes import SwBaseType
20
+ from armodel.models.M2.MSR.AsamHdo.Units import PhysicalDimension, Unit
21
+ from armodel.models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr
22
+ from armodel.models.M2.MSR.AsamHdo.ComputationMethod import CompuMethod
23
+ from armodel.models.M2.MSR.DataDictionary.AuxillaryObjects import SwAddrMethod
24
+ from armodel.models.M2.MSR.DataDictionary.RecordLayout import SwRecordLayout
25
+
26
+ from armodel.models.M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
27
+ from armodel.models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
28
+ from armodel.models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
29
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure import ConstantSpecification
30
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
31
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure.Implementation import Implementation
32
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatMap
33
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup
34
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping
35
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.BlueprintDedicated.PortPrototypeBlueprint import PortPrototypeBlueprint
36
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.Keyword import KeywordSet
37
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming
38
+ from armodel.models.M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import DiagnosticServiceTable
39
+ from armodel.models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleConfigurationValues, EcucValueCollection
40
+ from armodel.models.M2.AUTOSARTemplates.EcuResourceTemplate import HwElement
41
+ from armodel.models.M2.AUTOSARTemplates.ECUCParameterDefTemplate import EcucModuleDef
42
+ from armodel.models.M2.AUTOSARTemplates.EcuResourceTemplate.HwElementCategory import HwCategory, HwType
43
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
44
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ElementCollection import Collection
45
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement, Identifiable, Referrable
46
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Identifier, RefType, ReferrableSubtypesEnum
47
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
48
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import CompositionSwComponentType
49
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ServiceSwComponentType, SwComponentType
50
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, AtomicSwComponentType
51
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.Components import ComplexDeviceDriverSwComponentType, EcuAbstractionSwComponentType
52
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationDataType
53
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationPrimitiveDataType, ApplicationRecordDataType
54
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
55
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
56
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerInterface, ModeDeclarationMappingSet, ModeSwitchInterface
57
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import PortInterfaceMappingSet, SenderReceiverInterface, TriggerInterface
58
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ParameterInterface
59
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
60
+
61
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate import System
62
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.DiagnosticConnection import DiagnosticConnection
63
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame
64
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway
65
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DcmIPdu, GeneralPurposeIPdu, GeneralPurposePdu, ISignal
66
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import ISignalGroup, ISignalIPdu, ISignalIPduGroup, MultiplexedIPdu
67
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import NPdu, NmPdu, SecureCommunicationPropsSet, SecuredIPdu
68
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import SystemSignal, SystemSignalGroup, UserDefinedIPdu, UserDefinedPdu
69
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CanCluster, LinCluster
70
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
71
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinUnconditionalFrame
72
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
73
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCluster
74
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SoAdRoutingGroup
75
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayCommunication import FlexrayFrame
76
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayTopology import FlexrayCluster
77
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import NmConfig
78
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Transformer import DataTransformationSet
79
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig, DoIpTpConfig, LinTpConfig
80
+
81
+
82
+ class ReferenceBase(ARObject):
83
+ """
84
+ Represents a reference base in AUTOSAR models. Reference bases define
85
+ how elements in one package can reference elements in other packages.
86
+ They are used to establish relationships between different AUTOSAR packages.
87
+ """
88
+
89
+ def __init__(self):
90
+ """
91
+ Initializes a ReferenceBase instance with default values for
92
+ package reference properties.
93
+ """
94
+ super().__init__()
95
+
96
+ # List of global elements that can be referenced
97
+ self.globalElements: List[ReferrableSubtypesEnum] = []
98
+ # List of global references within the package
99
+ self.globalInPackageRefs: List[RefType] = []
100
+ # Flag indicating if this reference base is the default
101
+ self.isDefault: Optional[Boolean] = None
102
+ # Flag indicating if this reference base is global
103
+ self.isGlobal: Optional[Boolean] = None
104
+ # Flag indicating if this reference base belongs to the current package
105
+ self.BaseIsThisPackage: Optional[Boolean] = None
106
+ # List of package references
107
+ self.packageRef: Optional[List[RefType]] = None
108
+ # Short label for this reference base
109
+ self.shortLabel: Optional[Identifier] = None
110
+
111
+ def getGlobalElements(self) -> List[ReferrableSubtypesEnum]:
112
+ """
113
+ Returns the list of global elements that can be referenced.
114
+
115
+ Returns:
116
+ List of global elements that can be referenced
117
+ """
118
+ return self.globalElements
119
+
120
+ def addGlobalElement(self, value: ReferrableSubtypesEnum) -> 'ReferenceBase':
121
+ """
122
+ Adds a global element to the list of referenceable elements.
123
+
124
+ Args:
125
+ value: The element to add to the list of global elements
126
+
127
+ Returns:
128
+ Reference to this ReferenceBase instance (for method chaining)
129
+ """
130
+ self.globalElements.append(value)
131
+ return self
132
+
133
+ def getGlobalInPackageRefs(self) -> List[RefType]:
134
+ """
135
+ Returns the list of global references within the package.
136
+
137
+ Returns:
138
+ List of global references within the package
139
+ """
140
+ return self.globalInPackageRefs
141
+
142
+ def addGlobalInPackageRef(self, value: RefType) -> 'ReferenceBase':
143
+ """
144
+ Adds a global reference to the package.
145
+
146
+ Args:
147
+ value: The reference to add to the list of global in-package references
148
+
149
+ Returns:
150
+ Reference to this ReferenceBase instance (for method chaining)
151
+ """
152
+ self.globalInPackageRefs.append(value)
153
+ return self
154
+
155
+ def getIsDefault(self) -> Optional[Boolean]:
156
+ """
157
+ Returns whether this reference base is the default.
158
+
159
+ Returns:
160
+ Boolean indicating if this is the default reference base (or None)
161
+ """
162
+ return self.isDefault
163
+
164
+ def setIsDefault(self, value: Boolean) -> 'ReferenceBase':
165
+ """
166
+ Sets whether this reference base is the default.
167
+
168
+ Args:
169
+ value: Boolean indicating if this should be the default reference base
170
+
171
+ Returns:
172
+ Reference to this ReferenceBase instance (for method chaining)
173
+ """
174
+ self.isDefault = value
175
+ return self
176
+
177
+ def getIsGlobal(self) -> Optional[Boolean]:
178
+ """
179
+ Returns whether this reference base is global.
180
+
181
+ Returns:
182
+ Boolean indicating if this is a global reference base (or None)
183
+ """
184
+ return self.isGlobal
185
+
186
+ def setIsGlobal(self, value: Boolean) -> 'ReferenceBase':
187
+ """
188
+ Sets whether this reference base is global.
189
+
190
+ Args:
191
+ value: Boolean indicating if this should be a global reference base
192
+
193
+ Returns:
194
+ Reference to this ReferenceBase instance (for method chaining)
195
+ """
196
+ self.isGlobal = value
197
+ return self
198
+
199
+ def getBaseIsThisPackage(self) -> Optional[Boolean]:
200
+ """
201
+ Returns whether this reference base belongs to the current package.
202
+
203
+ Returns:
204
+ Boolean indicating if this reference base belongs to the current package (or None)
205
+ """
206
+ return self.BaseIsThisPackage
207
+
208
+ def setBaseIsThisPackage(self, value: Boolean) -> 'ReferenceBase':
209
+ """
210
+ Sets whether this reference base belongs to the current package.
211
+
212
+ Args:
213
+ value: Boolean indicating if this reference base belongs to the current package
214
+
215
+ Returns:
216
+ Reference to this ReferenceBase instance (for method chaining)
217
+ """
218
+ self.BaseIsThisPackage = value
219
+ return self
220
+
221
+ def getPackageRef(self) -> Optional[List[RefType]]:
222
+ """
223
+ Returns the list of package references.
224
+
225
+ Returns:
226
+ List of package references (or None)
227
+ """
228
+ return self.packageRef
229
+
230
+ def setPackageRef(self, value: List[RefType]) -> 'ReferenceBase':
231
+ """
232
+ Sets the list of package references.
233
+
234
+ Args:
235
+ value: List of package references to set
236
+
237
+ Returns:
238
+ Reference to this ReferenceBase instance (for method chaining)
239
+ """
240
+ self.packageRef = value
241
+ return self
242
+
243
+ def getShortLabel(self) -> Optional[Identifier]:
244
+ """
245
+ Returns the short label for this reference base.
246
+
247
+ Returns:
248
+ Short label identifier (or None)
249
+ """
250
+ return self.shortLabel
251
+
252
+ def setShortLabel(self, value: Identifier) -> 'ReferenceBase':
253
+ """
254
+ Sets the short label for this reference base.
255
+
256
+ Args:
257
+ value: The identifier to use as the short label
258
+
259
+ Returns:
260
+ Reference to this ReferenceBase instance (for method chaining)
261
+ """
262
+ self.shortLabel = value
263
+ return self
264
+
265
+
266
+ class ARPackage(CollectableElement):
267
+ """
268
+ Represents an AUTOSAR package, which is a container for organizing
269
+ AUTOSAR model elements hierarchically. ARPackage serves as the primary
270
+ organizational unit in AUTOSAR models, allowing for grouping of related
271
+ elements such as software components, interfaces, data types, and other packages.
272
+
273
+ ARPackages form a tree-like structure where each package can contain
274
+ sub-packages as well as various AUTOSAR elements.
275
+ """
276
+
277
+ def __init__(self, parent: ARObject, short_name: str):
278
+ """
279
+ Initializes an ARPackage instance with the specified parent and short name.
280
+
281
+ Args:
282
+ parent: The parent ARObject that contains this package
283
+ short_name: The unique identifier for this package within its parent
284
+ """
285
+ # Initialize CollectableElement (which inherits from ARObject)
286
+ CollectableElement.__init__(self)
287
+ # Explicitly initialize ARObject attributes since CollectableElement doesn't call super().__init__()
288
+ ARObject.__init__(self)
289
+
290
+ # Referrable attributes (added directly since ARPackage doesn't inherit from Referrable)
291
+ self.parent = parent
292
+ self.short_name = short_name
293
+
294
+ # Identifiable attributes (added directly since ARPackage doesn't inherit from Identifiable)
295
+ self.longName: Optional[MultilanguageLongName] = None
296
+ self.annotations: List[Annotation] = []
297
+ self.adminData: Optional[AdminData] = None
298
+ self.category: Optional[CategoryString] = None
299
+ self.introduction: Optional[DocumentationBlock] = None
300
+ self.desc: Optional[MultiLanguageOverviewParagraph] = None
301
+
302
+ # Dictionary mapping short names to sub-packages
303
+ self.arPackages: Dict[str, 'ARPackage'] = {}
304
+ # List of reference bases for this package
305
+ self.referenceBases: List[ReferenceBase] = []
306
+
307
+ @property
308
+ def shortName(self) -> str:
309
+ """str: The short name of this ARPackage."""
310
+ return self.short_name
311
+
312
+ @shortName.setter
313
+ def shortName(self, value: str):
314
+ self.short_name = value
315
+
316
+ def getShortName(self) -> str:
317
+ """
318
+ Gets the short name of this ARPackage.
319
+
320
+ Returns:
321
+ The short name of this ARPackage
322
+ """
323
+ return self.short_name
324
+
325
+ def getParent(self) -> ARObject:
326
+ """
327
+ Gets the parent of this ARPackage.
328
+
329
+ Returns:
330
+ The parent ARObject
331
+ """
332
+ return self.parent
333
+
334
+ @property
335
+ def full_name(self) -> str:
336
+ """
337
+ str: The full name of this ARPackage, including the parent's full name.
338
+ """
339
+ return self.parent.full_name + "/" + self.short_name
340
+
341
+ def getFullName(self) -> str:
342
+ """
343
+ Gets the full name of this ARPackage, including the parent's full name.
344
+
345
+ Returns:
346
+ The full name of this ARPackage
347
+ """
348
+ return self.full_name
349
+
350
+ def getLongName(self) -> Optional[MultilanguageLongName]:
351
+ """
352
+ Gets the long name of this ARPackage.
353
+
354
+ Returns:
355
+ MultilanguageLongName representing the long name, or None if not set
356
+ """
357
+ return self.longName
358
+
359
+ def setLongName(self, value: MultilanguageLongName) -> 'ARPackage':
360
+ """
361
+ Sets the long name of this ARPackage.
362
+
363
+ Args:
364
+ value: The long name to set
365
+
366
+ Returns:
367
+ self for method chaining
368
+ """
369
+ self.longName = value
370
+ return self
371
+
372
+ def getAdminData(self) -> Optional[AdminData]:
373
+ """
374
+ Gets the administrative data for this ARPackage.
375
+
376
+ Returns:
377
+ AdminData instance, or None if not set
378
+ """
379
+ return self.adminData
380
+
381
+ def setAdminData(self, value: AdminData) -> 'ARPackage':
382
+ """
383
+ Sets the administrative data for this ARPackage.
384
+ Only sets the value if it is not None.
385
+
386
+ Args:
387
+ value: The administrative data to set
388
+
389
+ Returns:
390
+ self for method chaining
391
+ """
392
+ if value is not None:
393
+ self.adminData = value
394
+ return self
395
+
396
+ def removeAdminData(self) -> None:
397
+ """
398
+ Removes the administrative data for this ARPackage.
399
+ """
400
+ self.adminData = None
401
+
402
+ def getDesc(self) -> Optional[MultiLanguageOverviewParagraph]:
403
+ """
404
+ Gets the description for this ARPackage.
405
+
406
+ Returns:
407
+ MultiLanguageOverviewParagraph instance, or None if not set
408
+ """
409
+ return self.desc
410
+
411
+ def setDesc(self, value: MultiLanguageOverviewParagraph) -> 'ARPackage':
412
+ """
413
+ Sets the description for this ARPackage.
414
+
415
+ Args:
416
+ value: The description to set
417
+
418
+ Returns:
419
+ self for method chaining
420
+ """
421
+ self.desc = value
422
+ return self
423
+
424
+ def getCategory(self) -> Optional[CategoryString]:
425
+ """
426
+ Gets the category for this ARPackage.
427
+
428
+ Returns:
429
+ CategoryString instance, or None if not set
430
+ """
431
+ return self.category
432
+
433
+ def setCategory(self, value: Any) -> 'ARPackage':
434
+ """
435
+ Sets the category for this ARPackage.
436
+ If the value is a string, it will be converted to a CategoryString.
437
+
438
+ Args:
439
+ value: The category to set
440
+
441
+ Returns:
442
+ self for method chaining
443
+ """
444
+ if isinstance(value, str):
445
+ self.category = CategoryString().setValue(value)
446
+ else:
447
+ self.category = value
448
+ return self
449
+
450
+ def getIntroduction(self) -> Optional[DocumentationBlock]:
451
+ """
452
+ Gets the introduction documentation for this ARPackage.
453
+
454
+ Returns:
455
+ DocumentationBlock instance, or None if not set
456
+ """
457
+ return self.introduction
458
+
459
+ def setIntroduction(self, value: DocumentationBlock) -> 'ARPackage':
460
+ """
461
+ Sets the introduction documentation for this ARPackage.
462
+
463
+ Args:
464
+ value: The introduction documentation to set
465
+
466
+ Returns:
467
+ self for method chaining
468
+ """
469
+ self.introduction = value
470
+ return self
471
+
472
+ def addAnnotation(self, annotation: Annotation) -> 'ARPackage':
473
+ """
474
+ Adds an annotation to this ARPackage.
475
+
476
+ Args:
477
+ annotation: The annotation to add
478
+
479
+ Returns:
480
+ self for method chaining
481
+ """
482
+ self.annotations.append(annotation)
483
+ return self
484
+
485
+ def getAnnotations(self) -> List[Annotation]:
486
+ """
487
+ Gets the list of annotations for this ARPackage.
488
+
489
+ Returns:
490
+ List of Annotation instances
491
+ """
492
+ return self.annotations
493
+
494
+ def getARPackages(self) -> List['ARPackage']:
495
+ """
496
+ Returns a list of all sub-packages contained in this ARPackage,
497
+ sorted by their short names.
498
+
499
+ Returns:
500
+ List of ARPackage instances sorted by short name
501
+ """
502
+ return list(sorted(self.arPackages.values(), key=lambda a: a.short_name))
503
+ # return list(filter(lambda e: isinstance(e, ARPackage), self.elements))
504
+
505
+ def createARPackage(self, short_name: str) -> 'ARPackage':
506
+ """
507
+ Creates a new sub-package with the given short name, or returns
508
+ an existing package if one with the same name already exists.
509
+
510
+ Args:
511
+ short_name: The short name for the new sub-package
512
+
513
+ Returns:
514
+ The newly created or existing ARPackage instance
515
+ """
516
+ if short_name not in self.arPackages:
517
+ ar_package = ARPackage(self, short_name)
518
+ self.arPackages[short_name] = ar_package
519
+ return self.arPackages[short_name]
520
+
521
+ def getElement(self, short_name: str, type=None) -> Referrable:
522
+ """
523
+ Retrieves an element by its short name, optionally filtered by type.
524
+ This method searches for both sub-packages and other elements in this package.
525
+
526
+ Args:
527
+ short_name: The short name of the element to retrieve
528
+ type: Optional type filter for the element to retrieve
529
+
530
+ Returns:
531
+ The element with the specified name and type, or None if not found
532
+ """
533
+ if type is ARPackage or type is None:
534
+ if short_name in self.arPackages:
535
+ return self.arPackages[short_name]
536
+ return CollectableElement.getElement(self, short_name, type)
537
+
538
+ def createEcuAbstractionSwComponentType(self, short_name: str) -> EcuAbstractionSwComponentType:
539
+ if not self.IsElementExists(short_name, EcuAbstractionSwComponentType):
540
+ sw_component = EcuAbstractionSwComponentType(self, short_name)
541
+ self.addElement(sw_component)
542
+ return self.getElement(short_name, EcuAbstractionSwComponentType)
543
+
544
+ def createApplicationSwComponentType(self, short_name: str) -> ApplicationSwComponentType:
545
+ """
546
+ Creates a new Application Software Component Type with the given short name,
547
+ or returns an existing one if it already exists in this package.
548
+
549
+ ApplicationSwComponentType represents a software component that implements
550
+ application-specific functionality, typically containing runnables and
551
+ communication interfaces.
552
+
553
+ Args:
554
+ short_name: The short name for the new ApplicationSwComponentType
555
+
556
+ Returns:
557
+ The newly created or existing ApplicationSwComponentType instance
558
+ """
559
+ if not self.IsElementExists(short_name, ApplicationSwComponentType):
560
+ sw_component = ApplicationSwComponentType(self, short_name)
561
+ self.addElement(sw_component)
562
+ return self.getElement(short_name, ApplicationSwComponentType)
563
+
564
+ def createComplexDeviceDriverSwComponentType(self, short_name: str) -> ComplexDeviceDriverSwComponentType:
565
+ if not self.IsElementExists(short_name, ComplexDeviceDriverSwComponentType):
566
+ sw_component = ComplexDeviceDriverSwComponentType(self, short_name)
567
+ self.addElement(sw_component)
568
+ return self.getElement(short_name, ComplexDeviceDriverSwComponentType)
569
+
570
+ def createServiceSwComponentType(self, short_name: str) -> ServiceSwComponentType:
571
+ if not self.IsElementExists(short_name, ServiceSwComponentType):
572
+ sw_component = ServiceSwComponentType(self, short_name)
573
+ self.addElement(sw_component)
574
+ return self.getElement(short_name, ServiceSwComponentType)
575
+
576
+ def createSensorActuatorSwComponentType(self, short_name: str) -> SensorActuatorSwComponentType:
577
+ if not self.IsElementExists(short_name, SensorActuatorSwComponentType):
578
+ sw_component = SensorActuatorSwComponentType(self, short_name)
579
+ self.addElement(sw_component)
580
+ return self.getElement(short_name, SensorActuatorSwComponentType)
581
+
582
+ def createCompositionSwComponentType(self, short_name: str) -> CompositionSwComponentType:
583
+ if not self.IsElementExists(short_name, CompositionSwComponentType):
584
+ sw_component = CompositionSwComponentType(self, short_name)
585
+ self.addElement(sw_component)
586
+ return self.getElement(short_name, CompositionSwComponentType)
587
+
588
+ def createSenderReceiverInterface(self, short_name: str) -> SenderReceiverInterface:
589
+ """
590
+ Creates a new Sender-Receiver Interface with the given short name,
591
+ or returns an existing one if it already exists in this package.
592
+
593
+ SenderReceiverInterface is a communication interface type in AUTOSAR
594
+ that enables data exchange between software components through
595
+ sender and receiver ports.
596
+
597
+ Args:
598
+ short_name: The short name for the new SenderReceiverInterface
599
+
600
+ Returns:
601
+ The newly created or existing SenderReceiverInterface instance
602
+ """
603
+ if not self.IsElementExists(short_name, SenderReceiverInterface):
604
+ sr_interface = SenderReceiverInterface(self, short_name)
605
+ self.addElement(sr_interface)
606
+ return self.getElement(short_name, SenderReceiverInterface)
607
+
608
+ def createParameterInterface(self, short_name: str) -> ParameterInterface:
609
+ if not self.IsElementExists(short_name, ParameterInterface):
610
+ sr_interface = ParameterInterface(self, short_name)
611
+ self.addElement(sr_interface)
612
+ return self.getElement(short_name, ParameterInterface)
613
+
614
+ def createGenericEthernetFrame(self, short_name: str) -> GenericEthernetFrame:
615
+ if not self.IsElementExists(short_name, GenericEthernetFrame):
616
+ frame = GenericEthernetFrame(self, short_name)
617
+ self.addElement(frame)
618
+ return self.getElement(short_name, GenericEthernetFrame)
619
+
620
+ def createLifeCycleInfoSet(self, short_name: str) -> LifeCycleInfoSet:
621
+ if not self.IsElementExists(short_name, LifeCycleInfoSet):
622
+ set = LifeCycleInfoSet(self, short_name)
623
+ self.addElement(set)
624
+ return self.getElement(short_name, LifeCycleInfoSet)
625
+
626
+ def createClientServerInterface(self, short_name: str) -> ClientServerInterface:
627
+ if not self.IsElementExists(short_name, ClientServerInterface):
628
+ cs_interface = ClientServerInterface(self, short_name)
629
+ self.addElement(cs_interface)
630
+ return self.getElement(short_name, ClientServerInterface)
631
+
632
+ def createApplicationPrimitiveDataType(self, short_name: str) -> ApplicationPrimitiveDataType:
633
+ if not self.IsElementExists(short_name, ApplicationPrimitiveDataType):
634
+ data_type = ApplicationPrimitiveDataType(self, short_name)
635
+ self.addElement(data_type)
636
+ return self.getElement(short_name, ApplicationPrimitiveDataType)
637
+
638
+ def createApplicationRecordDataType(self, short_name: str) -> ApplicationPrimitiveDataType:
639
+ if not self.IsElementExists(short_name, ApplicationRecordDataType):
640
+ data_type = ApplicationRecordDataType(self, short_name)
641
+ self.addElement(data_type)
642
+ return self.getElement(short_name, ApplicationRecordDataType)
643
+
644
+ def createImplementationDataType(self, short_name: str) -> ImplementationDataType:
645
+ """
646
+ Creates a new Implementation Data Type with the given short name,
647
+ or returns an existing one if it already exists in this package.
648
+
649
+ ImplementationDataType represents data types used in the implementation
650
+ layer of AUTOSAR, typically describing how application data types
651
+ are mapped to implementation-specific types.
652
+
653
+ Args:
654
+ short_name: The short name for the new ImplementationDataType
655
+
656
+ Returns:
657
+ The newly created or existing ImplementationDataType instance
658
+ """
659
+ if not self.IsElementExists(short_name, ImplementationDataType):
660
+ data_type = ImplementationDataType(self, short_name)
661
+ self.addElement(data_type)
662
+ return self.getElement(short_name, ImplementationDataType)
663
+
664
+ def createSwBaseType(self, short_name: str) -> SwBaseType:
665
+ if not self.IsElementExists(short_name, SwBaseType):
666
+ base_type = SwBaseType(self, short_name)
667
+ self.addElement(base_type)
668
+ return self.getElement(short_name, SwBaseType)
669
+
670
+ def createDataTypeMappingSet(self, short_name: str) -> DataTypeMappingSet:
671
+ if not self.IsElementExists(short_name, DataTypeMappingSet):
672
+ mapping_set = DataTypeMappingSet(self, short_name)
673
+ self.addElement(mapping_set)
674
+ return self.getElement(short_name, DataTypeMappingSet)
675
+
676
+ def createCompuMethod(self, short_name: str) -> CompuMethod:
677
+ if (not self.IsElementExists(short_name, CompuMethod)):
678
+ compu_method = CompuMethod(self, short_name)
679
+ self.addElement(compu_method)
680
+ return self.getElement(short_name, CompuMethod)
681
+
682
+ def createBswModuleDescription(self, short_name: str) -> BswModuleDescription:
683
+ """
684
+ Creates a new Basic Software Module Description with the given short name,
685
+ or returns an existing one if it already exists in this package.
686
+
687
+ BswModuleDescription represents the description of a basic software
688
+ module in AUTOSAR, containing information about its functionality,
689
+ interfaces, and configuration.
690
+
691
+ Args:
692
+ short_name: The short name for the new BswModuleDescription
693
+
694
+ Returns:
695
+ The newly created or existing BswModuleDescription instance
696
+ """
697
+ if not self.IsElementExists(short_name, BswModuleDescription):
698
+ desc = BswModuleDescription(self, short_name)
699
+ self.addElement(desc)
700
+ return self.getElement(short_name, BswModuleDescription)
701
+
702
+ def createBswModuleEntry(self, short_name: str) -> BswModuleEntry:
703
+ if not self.IsElementExists(short_name, BswModuleEntry):
704
+ entry = BswModuleEntry(self, short_name)
705
+ self.addElement(entry)
706
+ return self.getElement(short_name, BswModuleEntry)
707
+
708
+ def createBswImplementation(self, short_name: str) -> BswImplementation:
709
+ if not self.IsElementExists(short_name, BswImplementation):
710
+ impl = BswImplementation(self, short_name)
711
+ self.addElement(impl)
712
+ return self.getElement(short_name, BswImplementation)
713
+
714
+ def createSwcImplementation(self, short_name: str) -> SwcImplementation:
715
+ if not self.IsElementExists(short_name, SwcImplementation):
716
+ impl = SwcImplementation(self, short_name)
717
+ self.addElement(impl)
718
+ return self.getElement(short_name, SwcImplementation)
719
+
720
+ def createSwcBswMapping(self, short_name: str) -> SwcBswMapping:
721
+ if not self.IsElementExists(short_name, SwcBswMapping):
722
+ mapping = SwcBswMapping(self, short_name)
723
+ self.addElement(mapping)
724
+ return self.getElement(short_name, SwcBswMapping)
725
+
726
+ def createConstantSpecification(self, short_name: str) -> ConstantSpecification:
727
+ if not self.IsElementExists(short_name, ConstantSpecification):
728
+ spec = ConstantSpecification(self, short_name)
729
+ self.addElement(spec)
730
+ return self.getElement(short_name, ConstantSpecification)
731
+
732
+ def createDataConstr(self, short_name: str) -> DataConstr:
733
+ if not self.IsElementExists(short_name, DataConstr):
734
+ constr = DataConstr(self, short_name)
735
+ self.addElement(constr)
736
+ return self.getElement(short_name, DataConstr)
737
+
738
+ def createUnit(self, short_name: str) -> Unit:
739
+ if not self.IsElementExists(short_name, Unit):
740
+ unit = Unit(self, short_name)
741
+ self.addElement(unit)
742
+ return self.getElement(short_name, Unit)
743
+
744
+ def createEndToEndProtectionSet(self, short_name: str) -> EndToEndProtectionSet:
745
+ if not self.IsElementExists(short_name, EndToEndProtectionSet):
746
+ e2d_set = EndToEndProtectionSet(self, short_name)
747
+ self.addElement(e2d_set)
748
+ return self.getElement(short_name, EndToEndProtectionSet)
749
+
750
+ def createApplicationArrayDataType(self, short_name: str) -> ApplicationArrayDataType:
751
+ if not self.IsElementExists(short_name, ApplicationArrayDataType):
752
+ data_type = ApplicationArrayDataType(self, short_name)
753
+ self.addElement(data_type)
754
+ return self.getElement(short_name, ApplicationArrayDataType)
755
+
756
+ def createSwRecordLayout(self, short_name: str) -> SwRecordLayout:
757
+ if not self.IsElementExists(short_name, SwRecordLayout):
758
+ layout = SwRecordLayout(self, short_name)
759
+ self.addElement(layout)
760
+ return self.getElement(short_name, SwRecordLayout)
761
+
762
+ def createSwAddrMethod(self, short_name: str) -> SwAddrMethod:
763
+ if not self.IsElementExists(short_name, SwAddrMethod):
764
+ method = SwAddrMethod(self, short_name)
765
+ self.addElement(method)
766
+ return self.getElement(short_name, SwAddrMethod)
767
+
768
+ def createTriggerInterface(self, short_name: str) -> TriggerInterface:
769
+ if not self.IsElementExists(short_name, TriggerInterface):
770
+ trigger_interface = TriggerInterface(self, short_name)
771
+ self.addElement(trigger_interface)
772
+ return self.getElement(short_name, TriggerInterface)
773
+
774
+ def createModeDeclarationGroup(self, short_name: str) -> ModeDeclarationGroup:
775
+ if not self.IsElementExists(short_name, ModeDeclarationGroup):
776
+ group = ModeDeclarationGroup(self, short_name)
777
+ self.addElement(group)
778
+ return self.getElement(short_name, ModeDeclarationGroup)
779
+
780
+ def createModeSwitchInterface(self, short_name: str) -> ModeSwitchInterface:
781
+ if not self.IsElementExists(short_name, ModeSwitchInterface):
782
+ switch_interface = ModeSwitchInterface(self, short_name)
783
+ self.addElement(switch_interface)
784
+ return self.getElement(short_name, ModeSwitchInterface)
785
+
786
+ def createSwcTiming(self, short_name: str) -> SwcTiming:
787
+ if not self.IsElementExists(short_name, SwcTiming):
788
+ timing = SwcTiming(self, short_name)
789
+ self.addElement(timing)
790
+ return self.getElement(short_name, SwcTiming)
791
+
792
+ def createLinCluster(self, short_name: str) -> LinCluster:
793
+ if not self.IsElementExists(short_name, LinCluster):
794
+ cluster = LinCluster(self, short_name)
795
+ self.addElement(cluster)
796
+ return self.getElement(short_name, LinCluster)
797
+
798
+ def createCanCluster(self, short_name: str) -> CanCluster:
799
+ if not self.IsElementExists(short_name, CanCluster):
800
+ cluster = CanCluster(self, short_name)
801
+ self.addElement(cluster)
802
+ return self.getElement(short_name, CanCluster)
803
+
804
+ def createLinUnconditionalFrame(self, short_name: str) -> LinUnconditionalFrame:
805
+ if not self.IsElementExists(short_name, LinUnconditionalFrame):
806
+ frame = LinUnconditionalFrame(self, short_name)
807
+ self.addElement(frame)
808
+ return self.getElement(short_name, LinUnconditionalFrame)
809
+
810
+ def createNmPdu(self, short_name: str) -> NmPdu:
811
+ if not self.IsElementExists(short_name, NmPdu):
812
+ element = NmPdu(self, short_name)
813
+ self.addElement(element)
814
+ return self.getElement(short_name, NmPdu)
815
+
816
+ def createNPdu(self, short_name: str) -> NPdu:
817
+ if not self.IsElementExists(short_name, NPdu):
818
+ element = NPdu(self, short_name)
819
+ self.addElement(element)
820
+ return self.getElement(short_name, NPdu)
821
+
822
+ def createDcmIPdu(self, short_name: str) -> DcmIPdu:
823
+ if not self.IsElementExists(short_name, DcmIPdu):
824
+ element = DcmIPdu(self, short_name)
825
+ self.addElement(element)
826
+ return self.getElement(short_name, DcmIPdu)
827
+
828
+ def createSecuredIPdu(self, short_name: str) -> SecuredIPdu:
829
+ if not self.IsElementExists(short_name, SecuredIPdu):
830
+ element = SecuredIPdu(self, short_name)
831
+ self.addElement(element)
832
+ return self.getElement(short_name, SecuredIPdu)
833
+
834
+ def createNmConfig(self, short_name: str) -> NmConfig:
835
+ if not self.IsElementExists(short_name, NmConfig):
836
+ element = NmConfig(self, short_name)
837
+ self.addElement(element)
838
+ return self.getElement(short_name, NmConfig)
839
+
840
+ def createCanTpConfig(self, short_name: str) -> CanTpConfig:
841
+ if not self.IsElementExists(short_name, CanTpConfig):
842
+ element = CanTpConfig(self, short_name)
843
+ self.addElement(element)
844
+ return self.getElement(short_name, CanTpConfig)
845
+
846
+ def createLinTpConfig(self, short_name: str) -> LinTpConfig:
847
+ if not self.IsElementExists(short_name, LinTpConfig):
848
+ element = LinTpConfig(self, short_name)
849
+ self.addElement(element)
850
+ return self.getElement(short_name, LinTpConfig)
851
+
852
+ def createCanFrame(self, short_name: str) -> CanFrame:
853
+ """
854
+ Creates a new CAN Frame with the given short name,
855
+ or returns an existing one if it already exists in this package.
856
+
857
+ CanFrame represents a CAN communication frame in AUTOSAR's
858
+ communication modeling, used for defining CAN-based communication.
859
+
860
+ Args:
861
+ short_name: The short name for the new CanFrame
862
+
863
+ Returns:
864
+ The newly created or existing CanFrame instance
865
+ """
866
+ if not self.IsElementExists(short_name, CanFrame):
867
+ element = CanFrame(self, short_name)
868
+ self.addElement(element)
869
+ return self.getElement(short_name, CanFrame)
870
+
871
+ def createEcuInstance(self, short_name: str) -> EcuInstance:
872
+ """
873
+ Creates a new ECU Instance with the given short name,
874
+ or returns an existing one if it already exists in this package.
875
+
876
+ EcuInstance represents an Electronic Control Unit in AUTOSAR's
877
+ system modeling, containing information about the hardware and
878
+ software configuration of the ECU.
879
+
880
+ Args:
881
+ short_name: The short name for the new EcuInstance
882
+
883
+ Returns:
884
+ The newly created or existing EcuInstance instance
885
+ """
886
+ if not self.IsElementExists(short_name, EcuInstance):
887
+ element = EcuInstance(self, short_name)
888
+ self.addElement(element)
889
+ return self.getElement(short_name, EcuInstance)
890
+
891
+ def createGateway(self, short_name: str) -> Gateway:
892
+ if not self.IsElementExists(short_name, Gateway):
893
+ element = Gateway(self, short_name)
894
+ self.addElement(element)
895
+ return self.getElement(short_name, Gateway)
896
+
897
+ def createISignal(self, short_name: str) -> ISignal:
898
+ if not self.IsElementExists(short_name, ISignal):
899
+ element = ISignal(self, short_name)
900
+ self.addElement(element)
901
+ return self.getElement(short_name, ISignal)
902
+
903
+ def createSystemSignal(self, short_name: str) -> SystemSignal:
904
+ """
905
+ Creates a new System Signal with the given short name,
906
+ or returns an existing one if it already exists in this package.
907
+
908
+ SystemSignal represents signals at the system level in AUTOSAR,
909
+ typically used for communication between ECUs or for external
910
+ interfaces.
911
+
912
+ Args:
913
+ short_name: The short name for the new SystemSignal
914
+
915
+ Returns:
916
+ The newly created or existing SystemSignal instance
917
+ """
918
+ if not self.IsElementExists(short_name, SystemSignal):
919
+ element = SystemSignal(self, short_name)
920
+ self.addElement(element)
921
+ return self.getElement(short_name, SystemSignal)
922
+
923
+ def createSystemSignalGroup(self, short_name: str) -> SystemSignalGroup:
924
+ if not self.IsElementExists(short_name, SystemSignalGroup):
925
+ element = SystemSignalGroup(self, short_name)
926
+ self.addElement(element)
927
+ return self.getElement(short_name, SystemSignalGroup)
928
+
929
+ def createISignalIPdu(self, short_name: str) -> ISignalIPdu:
930
+ if not self.IsElementExists(short_name, ISignalIPdu):
931
+ element = ISignalIPdu(self, short_name)
932
+ self.addElement(element)
933
+ return self.getElement(short_name, ISignalIPdu)
934
+
935
+ def createEcucValueCollection(self, short_name: str) -> EcucValueCollection:
936
+ if not self.IsElementExists(short_name, EcucValueCollection):
937
+ element = EcucValueCollection(self, short_name)
938
+ self.addElement(element)
939
+ return self.getElement(short_name, EcucValueCollection)
940
+
941
+ def createEcucModuleConfigurationValues(self, short_name: str) -> EcucModuleConfigurationValues:
942
+ if not self.IsElementExists(short_name, EcucModuleConfigurationValues):
943
+ element = EcucModuleConfigurationValues(self, short_name)
944
+ self.addElement(element)
945
+ return self.getElement(short_name, EcucModuleConfigurationValues)
946
+
947
+ def createEcucModuleDef(self, short_name: str) -> EcucModuleDef:
948
+ if not self.IsElementExists(short_name, EcucModuleDef):
949
+ element = EcucModuleDef(self, short_name)
950
+ self.addElement(element)
951
+ return self.getElement(short_name, EcucModuleDef)
952
+
953
+ def createPhysicalDimension(self, short_name: str) -> PhysicalDimension:
954
+ if not self.IsElementExists(short_name, PhysicalDimension):
955
+ element = PhysicalDimension(self, short_name)
956
+ self.addElement(element)
957
+ return self.getElement(short_name, PhysicalDimension)
958
+
959
+ def createISignalGroup(self, short_name: str) -> ISignalGroup:
960
+ if not self.IsElementExists(short_name, ISignalGroup):
961
+ element = ISignalGroup(self, short_name)
962
+ self.addElement(element)
963
+ return self.getElement(short_name, ISignalGroup)
964
+
965
+ def createISignalIPduGroup(self, short_name: str) -> ISignalIPduGroup:
966
+ if not self.IsElementExists(short_name, ISignalIPduGroup):
967
+ element = ISignalIPduGroup(self, short_name)
968
+ self.addElement(element)
969
+ return self.getElement(short_name, ISignalIPduGroup)
970
+
971
+ def createSystem(self, short_name: str) -> System:
972
+ if not self.IsElementExists(short_name, System):
973
+ element = System(self, short_name)
974
+ self.addElement(element)
975
+ return self.getElement(short_name, System)
976
+
977
+ def createFlatMap(self, short_name: str) -> FlatMap:
978
+ if not self.IsElementExists(short_name, FlatMap):
979
+ map = FlatMap(self, short_name)
980
+ self.addElement(map)
981
+ return self.getElement(short_name, FlatMap)
982
+
983
+ def createPortInterfaceMappingSet(self, short_name: str) -> PortInterfaceMappingSet:
984
+ if not self.IsElementExists(short_name, PortInterfaceMappingSet):
985
+ map_set = PortInterfaceMappingSet(self, short_name)
986
+ self.addElement(map_set)
987
+ return self.getElement(short_name, PortInterfaceMappingSet)
988
+
989
+ def createEthernetCluster(self, short_name: str) -> EthernetCluster:
990
+ if not self.IsElementExists(short_name, EthernetCluster):
991
+ cluster = EthernetCluster(self, short_name)
992
+ self.addElement(cluster)
993
+ return self.getElement(short_name, EthernetCluster)
994
+
995
+ def createDiagnosticConnection(self, short_name: str) -> DiagnosticConnection:
996
+ if not self.IsElementExists(short_name, DiagnosticConnection):
997
+ connection = DiagnosticConnection(self, short_name)
998
+ self.addElement(connection)
999
+ return self.getElement(short_name, DiagnosticConnection)
1000
+
1001
+ def createDiagnosticServiceTable(self, short_name: str) -> DiagnosticServiceTable:
1002
+ """
1003
+ Creates a new Diagnostic Service Table with the given short name,
1004
+ or returns an existing one if it already exists in this package.
1005
+
1006
+ DiagnosticServiceTable represents a collection of diagnostic services
1007
+ defined in the diagnostic extract template of AUTOSAR, used for
1008
+ specifying diagnostic functionality.
1009
+
1010
+ Args:
1011
+ short_name: The short name for the new DiagnosticServiceTable
1012
+
1013
+ Returns:
1014
+ The newly created or existing DiagnosticServiceTable instance
1015
+ """
1016
+ if not self.IsElementExists(short_name, DiagnosticServiceTable):
1017
+ table = DiagnosticServiceTable(self, short_name)
1018
+ self.addElement(table)
1019
+ return self.getElement(short_name, DiagnosticServiceTable)
1020
+
1021
+ def createMultiplexedIPdu(self, short_name: str) -> MultiplexedIPdu:
1022
+ if not self.IsElementExists(short_name, MultiplexedIPdu):
1023
+ ipdu = MultiplexedIPdu(self, short_name)
1024
+ self.addElement(ipdu)
1025
+ return self.getElement(short_name, MultiplexedIPdu)
1026
+
1027
+ def createUserDefinedIPdu(self, short_name: str) -> UserDefinedIPdu:
1028
+ if not self.IsElementExists(short_name, UserDefinedIPdu):
1029
+ ipdu = UserDefinedIPdu(self, short_name)
1030
+ self.addElement(ipdu)
1031
+ return self.getElement(short_name, UserDefinedIPdu)
1032
+
1033
+ def createUserDefinedPdu(self, short_name: str) -> UserDefinedPdu:
1034
+ if not self.IsElementExists(short_name, UserDefinedPdu):
1035
+ pdu = UserDefinedPdu(self, short_name)
1036
+ self.addElement(pdu)
1037
+ return self.getElement(short_name, UserDefinedPdu)
1038
+
1039
+ def createGeneralPurposeIPdu(self, short_name: str) -> GeneralPurposeIPdu:
1040
+ if not self.IsElementExists(short_name, GeneralPurposeIPdu):
1041
+ i_pdu = GeneralPurposeIPdu(self, short_name)
1042
+ self.addElement(i_pdu)
1043
+ return self.getElement(short_name, GeneralPurposeIPdu)
1044
+
1045
+ def createGeneralPurposePdu(self, short_name: str) -> GeneralPurposePdu:
1046
+ if not self.IsElementExists(short_name, GeneralPurposePdu):
1047
+ pdu = GeneralPurposePdu(self, short_name)
1048
+ self.addElement(pdu)
1049
+ return self.getElement(short_name, GeneralPurposePdu)
1050
+
1051
+ def createSecureCommunicationPropsSet(self, short_name: str) -> SecureCommunicationPropsSet:
1052
+ if not self.IsElementExists(short_name, SecureCommunicationPropsSet):
1053
+ props_set = SecureCommunicationPropsSet(self, short_name)
1054
+ self.addElement(props_set)
1055
+ return self.getElement(short_name, SecureCommunicationPropsSet)
1056
+
1057
+ def createSoAdRoutingGroup(self, short_name: str) -> SoAdRoutingGroup:
1058
+ if not self.IsElementExists(short_name, SoAdRoutingGroup):
1059
+ group = SoAdRoutingGroup(self, short_name)
1060
+ self.addElement(group)
1061
+ return self.getElement(short_name, SoAdRoutingGroup)
1062
+
1063
+ def createDoIpTpConfig(self, short_name: str) -> DoIpTpConfig:
1064
+ if not self.IsElementExists(short_name, DoIpTpConfig):
1065
+ tp_config = DoIpTpConfig(self, short_name)
1066
+ self.addElement(tp_config)
1067
+ return self.getElement(short_name, DoIpTpConfig)
1068
+
1069
+ def createHwElement(self, short_name: str) -> HwElement:
1070
+ if not self.IsElementExists(short_name, HwElement):
1071
+ hw_element = HwElement(self, short_name)
1072
+ self.addElement(hw_element)
1073
+ return self.getElement(short_name, HwElement)
1074
+
1075
+ def createHwCategory(self, short_name: str) -> HwCategory:
1076
+ if not self.IsElementExists(short_name, HwCategory):
1077
+ hw_category = HwCategory(self, short_name)
1078
+ self.addElement(hw_category)
1079
+ return self.getElement(short_name, HwCategory)
1080
+
1081
+ def createHwType(self, short_name: str) -> HwType:
1082
+ if not self.IsElementExists(short_name, HwType):
1083
+ hw_category = HwType(self, short_name)
1084
+ self.addElement(hw_category)
1085
+ return self.getElement(short_name, HwType)
1086
+
1087
+ def createFlexrayFrame(self, short_name: str) -> FlexrayFrame:
1088
+ if not self.IsElementExists(short_name, FlexrayFrame):
1089
+ frame = FlexrayFrame(self, short_name)
1090
+ self.addElement(frame)
1091
+ return self.getElement(short_name, FlexrayFrame)
1092
+
1093
+ def createFlexrayCluster(self, short_name: str) -> FlexrayCluster:
1094
+ if not self.IsElementExists(short_name, FlexrayCluster):
1095
+ frame = FlexrayCluster(self, short_name)
1096
+ self.addElement(frame)
1097
+ return self.getElement(short_name, FlexrayCluster)
1098
+
1099
+ def createDataTransformationSet(self, short_name: str) -> DataTransformationSet:
1100
+ if not self.IsElementExists(short_name, DataTransformationSet):
1101
+ transform_set = DataTransformationSet(self, short_name)
1102
+ self.addElement(transform_set)
1103
+ return self.getElement(short_name, DataTransformationSet)
1104
+
1105
+ def createCollection(self, short_name: str) -> Collection:
1106
+ if not self.IsElementExists(short_name, Collection):
1107
+ collection = Collection(self, short_name)
1108
+ self.addElement(collection)
1109
+ return self.getElement(short_name, Collection)
1110
+
1111
+ def createKeywordSet(self, short_name: str) -> KeywordSet:
1112
+ if not self.IsElementExists(short_name, KeywordSet):
1113
+ keyword_set = KeywordSet(self, short_name)
1114
+ self.addElement(keyword_set)
1115
+ return self.getElement(short_name, KeywordSet)
1116
+
1117
+ def createPortPrototypeBlueprint(self, short_name: str) -> PortPrototypeBlueprint:
1118
+ if not self.IsElementExists(short_name, PortPrototypeBlueprint):
1119
+ keyword_set = PortPrototypeBlueprint(self, short_name)
1120
+ self.addElement(keyword_set)
1121
+ return self.getElement(short_name, PortPrototypeBlueprint)
1122
+
1123
+ def createModeDeclarationMappingSet(self, short_name: str) -> ModeDeclarationMappingSet:
1124
+ if not self.IsElementExists(short_name, ModeDeclarationMappingSet):
1125
+ mapping_set = ModeDeclarationMappingSet(self, short_name)
1126
+ self.addElement(mapping_set)
1127
+ return self.getElement(short_name, ModeDeclarationMappingSet)
1128
+
1129
+ def getApplicationPrimitiveDataTypes(self) -> List[ApplicationPrimitiveDataType]:
1130
+ return list(sorted(filter(lambda a: isinstance(a, ApplicationPrimitiveDataType), self.elements), key=lambda o: o.short_name))
1131
+
1132
+ def getApplicationDataType(self) -> List[ApplicationDataType]:
1133
+ return list(sorted(filter(lambda a: isinstance(a, ApplicationDataType), self.elements), key=lambda o: o.short_name))
1134
+
1135
+ def getImplementationDataTypes(self) -> List[ImplementationDataType]:
1136
+ return list(sorted(filter(lambda a: isinstance(a, ImplementationDataType), self.elements), key=lambda o: o.short_name))
1137
+
1138
+ def getSwBaseTypes(self) -> List[SwBaseType]:
1139
+ return list(filter(lambda a: isinstance(a, SwBaseType), self.elements))
1140
+
1141
+ def getSwComponentTypes(self) -> List[SwComponentType]:
1142
+ return list(filter(lambda a: isinstance(a, SwComponentType), self.elements))
1143
+
1144
+ def getSensorActuatorSwComponentType(self) -> List[SensorActuatorSwComponentType]:
1145
+ return list(filter(lambda a: isinstance(a, SensorActuatorSwComponentType), self.elements))
1146
+
1147
+ def getAtomicSwComponentTypes(self) -> List[AtomicSwComponentType]:
1148
+ return list(filter(lambda a: isinstance(a, AtomicSwComponentType), self.elements))
1149
+
1150
+ def getCompositionSwComponentTypes(self) -> List[CompositionSwComponentType]:
1151
+ return list(filter(lambda a: isinstance(a, CompositionSwComponentType), self.elements))
1152
+
1153
+ def getComplexDeviceDriverSwComponentTypes(self) -> List[ComplexDeviceDriverSwComponentType]:
1154
+ return list(sorted(filter(lambda a: isinstance(a, ComplexDeviceDriverSwComponentType), self.elements), key=lambda a: a.short_name))
1155
+
1156
+ def getSenderReceiverInterfaces(self) -> List[SenderReceiverInterface]:
1157
+ return list(sorted(filter(lambda a: isinstance(a, SenderReceiverInterface), self.elements), key=lambda a: a.short_name))
1158
+
1159
+ def getParameterInterfaces(self) -> List[ParameterInterface]:
1160
+ return list(sorted(filter(lambda a: isinstance(a, ParameterInterface), self.elements), key=lambda a: a.short_name))
1161
+
1162
+ def getClientServerInterfaces(self) -> List[ClientServerInterface]:
1163
+ return list(sorted(filter(lambda a: isinstance(a, ClientServerInterface), self.elements), key=lambda a: a.short_name))
1164
+
1165
+ def getDataTypeMappingSets(self) -> List[DataTypeMappingSet]:
1166
+ return list(sorted(filter(lambda a: isinstance(a, DataTypeMappingSet), self.elements), key=lambda a: a.short_name))
1167
+
1168
+ def getCompuMethods(self) -> List[CompuMethod]:
1169
+ return list(filter(lambda a: isinstance(a, CompuMethod), self.elements))
1170
+
1171
+ def getBswModuleDescriptions(self) -> List[BswModuleDescription]:
1172
+ return list(filter(lambda a: isinstance(a, BswModuleDescription), self.elements))
1173
+
1174
+ def getBswModuleEntries(self) -> List[BswModuleEntry]:
1175
+ return list(filter(lambda a: isinstance(a, BswModuleEntry), self.elements))
1176
+
1177
+ def getBswImplementations(self) -> List[BswImplementation]:
1178
+ return list(filter(lambda a: isinstance(a, BswImplementation), self.elements))
1179
+
1180
+ def getSwcImplementations(self) -> List[SwcImplementation]:
1181
+ return list(filter(lambda a: isinstance(a, SwcImplementation), self.elements))
1182
+
1183
+ def getImplementations(self) -> List[Implementation]:
1184
+ return list(filter(lambda a: isinstance(a, Implementation), self.elements))
1185
+
1186
+ def getSwcBswMappings(self) -> List[SwcBswMapping]:
1187
+ return list(filter(lambda a: isinstance(a, SwcBswMapping), self.elements))
1188
+
1189
+ def getConstantSpecifications(self) -> List[ConstantSpecification]:
1190
+ return list(filter(lambda a: isinstance(a, ConstantSpecification), self.elements))
1191
+
1192
+ def getDataConstrs(self) -> List[DataConstr]:
1193
+ return list(filter(lambda a: isinstance(a, DataConstr), self.elements))
1194
+
1195
+ def getUnits(self) -> List[Unit]:
1196
+ return list(filter(lambda a: isinstance(a, Unit), self.elements))
1197
+
1198
+ def getApplicationArrayDataTypes(self) -> List[ApplicationArrayDataType]:
1199
+ return list(sorted(filter(lambda a: isinstance(a, ApplicationArrayDataType), self.elements), key=lambda a: a.short_name))
1200
+
1201
+ def getSwRecordLayouts(self) -> List[SwRecordLayout]:
1202
+ return list(sorted(filter(lambda a: isinstance(a, SwRecordLayout), self.elements), key=lambda a: a.short_name))
1203
+
1204
+ def getSwAddrMethods(self) -> List[SwAddrMethod]:
1205
+ return list(sorted(filter(lambda a: isinstance(a, SwAddrMethod), self.elements), key=lambda a: a.short_name))
1206
+
1207
+ def getTriggerInterfaces(self) -> List[TriggerInterface]:
1208
+ return list(sorted(filter(lambda a: isinstance(a, TriggerInterface), self.elements), key=lambda a: a.short_name))
1209
+
1210
+ def getModeDeclarationGroups(self) -> List[ModeDeclarationGroup]:
1211
+ return list(sorted(filter(lambda a: isinstance(a, ModeDeclarationGroup), self.elements), key=lambda a: a.short_name))
1212
+
1213
+ def getModeSwitchInterfaces(self) -> List[ModeSwitchInterface]:
1214
+ return list(sorted(filter(lambda a: isinstance(a, ModeSwitchInterface), self.elements), key=lambda a: a.short_name))
1215
+
1216
+ def getSwcTimings(self) -> List[SwcTiming]:
1217
+ return list(sorted(filter(lambda a: isinstance(a, SwcTiming), self.elements), key=lambda a: a.short_name))
1218
+
1219
+ def getLinClusters(self) -> List[LinCluster]:
1220
+ return list(sorted(filter(lambda a: isinstance(a, LinCluster), self.elements), key=lambda a: a.short_name))
1221
+
1222
+ def getCanClusters(self) -> List[CanCluster]:
1223
+ return list(sorted(filter(lambda a: isinstance(a, CanCluster), self.elements), key=lambda a: a.short_name))
1224
+
1225
+ def getLinUnconditionalFrames(self) -> List[LinUnconditionalFrame]:
1226
+ return list(sorted(filter(lambda a: isinstance(a, LinUnconditionalFrame), self.elements), key=lambda a: a.short_name))
1227
+
1228
+ def getNmPdus(self) -> List[NmPdu]:
1229
+ return list(sorted(filter(lambda a: isinstance(a, NmPdu), self.elements), key=lambda a: a.short_name))
1230
+
1231
+ def getNPdus(self) -> List[NPdu]:
1232
+ return list(sorted(filter(lambda a: isinstance(a, NPdu), self.elements), key=lambda a: a.short_name))
1233
+
1234
+ def getDcmIPdus(self) -> List[DcmIPdu]:
1235
+ return list(sorted(filter(lambda a: isinstance(a, DcmIPdu), self.elements), key=lambda a: a.short_name))
1236
+
1237
+ def getSecuredIPdus(self) -> List[SecuredIPdu]:
1238
+ return list(sorted(filter(lambda a: isinstance(a, SecuredIPdu), self.elements), key=lambda a: a.short_name))
1239
+
1240
+ def getNmConfigs(self) -> List[NmConfig]:
1241
+ return list(sorted(filter(lambda a: isinstance(a, NmConfig), self.elements), key=lambda a: a.short_name))
1242
+
1243
+ def getCanTpConfigs(self) -> List[CanTpConfig]:
1244
+ return list(sorted(filter(lambda a: isinstance(a, CanTpConfig), self.elements), key=lambda a: a.short_name))
1245
+
1246
+ def getCanFrames(self) -> List[CanFrame]:
1247
+ return list(sorted(filter(lambda a: isinstance(a, CanFrame), self.elements), key=lambda a: a.short_name))
1248
+
1249
+ def getEcuInstances(self) -> List[EcuInstance]:
1250
+ return list(sorted(filter(lambda a: isinstance(a, EcuInstance), self.elements), key=lambda a: a.short_name))
1251
+
1252
+ def getGateways(self) -> List[Gateway]:
1253
+ return list(sorted(filter(lambda a: isinstance(a, Gateway), self.elements), key=lambda a: a.short_name))
1254
+
1255
+ def getISignals(self) -> List[ISignal]:
1256
+ return list(sorted(filter(lambda a: isinstance(a, ISignal), self.elements), key=lambda a: a.short_name))
1257
+
1258
+ def getEcucValueCollections(self) -> List[EcucValueCollection]:
1259
+ return list(sorted(filter(lambda a: isinstance(a, EcucValueCollection), self.elements), key=lambda a: a.short_name))
1260
+
1261
+ def getEcucModuleConfigurationValues(self) -> List[EcucModuleConfigurationValues]:
1262
+ return list(sorted(filter(lambda a: isinstance(a, EcucModuleConfigurationValues), self.elements), key=lambda a: a.short_name))
1263
+
1264
+ def getEcucModuleDefs(self) -> List[EcucModuleDef]:
1265
+ return list(sorted(filter(lambda a: isinstance(a, EcucModuleDef), self.elements), key=lambda a: a.short_name))
1266
+
1267
+ def getEcucPhysicalDimensions(self) -> List[PhysicalDimension]:
1268
+ return list(sorted(filter(lambda a: isinstance(a, PhysicalDimension), self.elements), key=lambda a: a.short_name))
1269
+
1270
+ def getISignalGroups(self) -> List[ISignalGroup]:
1271
+ return list(sorted(filter(lambda a: isinstance(a, ISignalGroup), self.elements), key=lambda a: a.short_name))
1272
+
1273
+ def getSystemSignals(self) -> List[SystemSignal]:
1274
+ return list(sorted(filter(lambda a: isinstance(a, SystemSignal), self.elements), key=lambda a: a.short_name))
1275
+
1276
+ def getSystemSignalGroups(self) -> List[SystemSignalGroup]:
1277
+ return list(sorted(filter(lambda a: isinstance(a, SystemSignalGroup), self.elements), key=lambda a: a.short_name))
1278
+
1279
+ def getISignalIPdus(self) -> List[ISignalIPdu]:
1280
+ return list(sorted(filter(lambda a: isinstance(a, ISignalIPdu), self.elements), key=lambda a: a.short_name))
1281
+
1282
+ def getSystems(self) -> List[System]:
1283
+ return list(sorted(filter(lambda a: isinstance(a, System), self.elements), key=lambda a: a.short_name))
1284
+
1285
+ def getHwElements(self) -> List[HwElement]:
1286
+ return list(sorted(filter(lambda a: isinstance(a, HwElement), self.elements), key=lambda a: a.short_name))
1287
+
1288
+ def getHwCategories(self) -> List[HwCategory]:
1289
+ return list(sorted(filter(lambda a: isinstance(a, HwCategory), self.elements), key=lambda a: a.short_name))
1290
+
1291
+ def getFlexrayFrames(self) -> List[FlexrayFrame]:
1292
+ return list(sorted(filter(lambda a: isinstance(a, FlexrayFrame), self.elements), key=lambda a: a.short_name))
1293
+
1294
+ def getDataTransformationSets(self) -> List[DataTransformationSet]:
1295
+ return list(sorted(filter(lambda a: isinstance(a, DataTransformationSet), self.elements), key=lambda a: a.short_name))
1296
+
1297
+ def getCollections(self) -> List[Collection]:
1298
+ return list(sorted(filter(lambda a: isinstance(a, Collection), self.elements), key=lambda a: a.short_name))
1299
+
1300
+ def getKeywordSets(self) -> List[KeywordSet]:
1301
+ return list(sorted(filter(lambda a: isinstance(a, KeywordSet), self.elements), key=lambda a: a.short_name))
1302
+
1303
+ def getPortPrototypeBlueprints(self) -> List[PortPrototypeBlueprint]:
1304
+ return list(sorted(filter(lambda a: isinstance(a, PortPrototypeBlueprint), self.elements), key=lambda a: a.short_name))
1305
+
1306
+ def getModeDeclarationMappingSets(self) -> List[ModeDeclarationMappingSet]:
1307
+ return list(sorted(filter(lambda a: isinstance(a, ModeDeclarationMappingSet), self.elements), key=lambda a: a.short_name))
1308
+
1309
+ def getReferenceBases(self):
1310
+ return self.referenceBases
1311
+
1312
+ def addReferenceBase(self, value):
1313
+ self.referenceBases.append(value)
1314
+ return self