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,792 +1,2224 @@
1
- from abc import ABCMeta
2
- from typing import List
3
-
4
- from ....M2.MSR.DataDictionary.DataDefProperties import SwImplPolicyEnum
5
- from ....M2.AUTOSARTemplates.CommonStructure.InternalBehavior import AbstractEvent, ExecutableEntity, InternalBehavior
6
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
7
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean, AREnum, ARFloat, ARNumerical, Boolean
8
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger, String, TimeValue
9
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
10
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
11
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Referrable
12
- from ....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import VariableDataPrototype
13
- from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
14
- from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
15
-
16
-
17
- class BswModuleCallPoint(Referrable):
18
- def __init__(self, parent: ARObject, short_name: str):
19
- super().__init__(parent, short_name)
20
-
21
- self.contextLimitationRefs = [] # type: List[RefType]
22
-
23
- def getContextLimitationRefs(self):
24
- return self.contextLimitationRefs
25
-
26
- def addContextLimitationRef(self, value):
27
- self.contextLimitationRefs.append(value)
28
- return self
29
-
30
-
31
- class BswAsynchronousServerCallPoint(BswModuleCallPoint):
32
- def __init__(self, parent: ARObject, short_name: str):
33
- super().__init__(parent, short_name)
34
-
35
- self.calledEntryRef = None # type: RefType
36
-
37
- def getCalledEntryRef(self):
38
- return self.calledEntryRef
39
-
40
- def setCalledEntryRef(self, value):
41
- if value is not None:
42
- self.calledEntryRef = value
43
- return self
44
-
45
-
46
- class BswDirectCallPoint(BswModuleCallPoint):
47
- def __init__(self, parent: ARObject, short_name: str):
48
- super().__init__(parent, short_name)
49
-
50
- self.calledEntryRef = None # type: RefType
51
- self.calledFromWithinExclusiveAreaRef = None # type: RefType
52
-
53
- def getCalledEntryRef(self):
54
- return self.calledEntryRef
55
-
56
- def setCalledEntryRef(self, value):
57
- if value is not None:
58
- self.calledEntryRef = value
59
- return self
60
-
61
- def getCalledFromWithinExclusiveAreaRef(self):
62
- return self.calledFromWithinExclusiveAreaRef
63
-
64
- def setCalledFromWithinExclusiveAreaRef(self, value):
65
- if value is not None:
66
- self.calledFromWithinExclusiveAreaRef = value
67
- return self
68
-
69
-
70
- class BswSynchronousServerCallPoint(BswModuleCallPoint):
71
- def __init__(self, parent: ARObject, short_name: str):
72
- super().__init__(parent, short_name)
73
-
74
- self.calledEntryRef = None # type: RefType
75
- self.calledFromWithinExclusiveAreaRef = None # type: RefType
76
-
77
- def getCalledEntryRef(self):
78
- return self.calledEntryRef
79
-
80
- def setCalledEntryRef(self, value):
81
- if value is not None:
82
- self.calledEntryRef = value
83
- return self
84
-
85
- def getCalledFromWithinExclusiveAreaRef(self):
86
- return self.calledFromWithinExclusiveAreaRef
87
-
88
- def setCalledFromWithinExclusiveAreaRef(self, value):
89
- if value is not None:
90
- self.calledFromWithinExclusiveAreaRef = value
91
- return self
92
-
93
-
94
- class BswAsynchronousServerCallResultPoint(BswModuleCallPoint):
95
- def __init__(self, parent: ARObject, short_name: str):
96
- super().__init__(parent, short_name)
97
-
98
- self.asynchronousServerCallPointRef = None # type: RefType
99
-
100
-
101
- class BswVariableAccess(Referrable):
102
- def __init__(self, parent: ARObject, short_name: str):
103
- super().__init__(parent, short_name)
104
-
105
- self.accessedVariableRef = None # type: RefType
106
- self.contextLimitationRefs = [] # type: List[RefType]
107
-
108
- def getAccessedVariableRef(self):
109
- return self.accessedVariableRef
110
-
111
- def setAccessedVariableRef(self, value):
112
- self.accessedVariableRef = value
113
- return self
114
-
115
- def getContextLimitationRefs(self):
116
- return self.contextLimitationRefs
117
-
118
- def addContextLimitationRef(self, value):
119
- self.contextLimitationRefs.append(value)
120
- return self
121
-
122
-
123
- class BswModuleEntity(ExecutableEntity, metaclass=ABCMeta):
124
- def __init__(self, parent: ARObject, short_name: str):
125
- if type(self) is BswModuleEntity:
126
- raise NotImplementedError("BswModuleEntity is an abstract class.")
127
- super().__init__(parent, short_name)
128
-
129
- self.accessedModeGroupRefs = [] # type: List[RefType]
130
- self.activationPointRefs = [] # type: List[RefType]
131
- self.callPoints = [] # type: List[BswModuleCallPoint]
132
- self.dataReceivePoints = [] # type: List[BswVariableAccess]
133
- self.dataSendPoints = [] # type: List[BswVariableAccess]
134
- self.implementedEntryRef = None # type: RefType
135
- self.issuedTriggerRefs = [] # type: List[RefType]
136
- self.managedModeGroupRefs = [] # type: List[RefType]
137
- self.schedulerNamePrefixRef = None # type: List[RefType]
138
-
139
- def getAccessedModeGroupRefs(self):
140
- return self.accessedModeGroupRefs
141
-
142
- def addAccessedModeGroupRef(self, value):
143
- if value is not None:
144
- self.accessedModeGroupRefs.append(value)
145
- return self
146
-
147
- def getActivationPointRefs(self):
148
- return self.activationPointRefs
149
-
150
- def addActivationPointRef(self, value):
151
- if value is not None:
152
- self.activationPointRefs.append(value)
153
- return self
154
-
155
- def getCallPoints(self):
156
- return self.callPoints
157
-
158
- def createBswAsynchronousServerCallPoint(self, short_name):
159
- if (not self.IsElementExists(short_name)):
160
- access = BswAsynchronousServerCallPoint(self, short_name)
161
- self.addElement(access)
162
- self.callPoints.append(access)
163
- return self.getElement(short_name)
164
-
165
- def createBswSynchronousServerCallPoint(self, short_name):
166
- if (not self.IsElementExists(short_name)):
167
- access = BswSynchronousServerCallPoint(self, short_name)
168
- self.addElement(access)
169
- self.callPoints.append(access)
170
- return self.getElement(short_name)
171
-
172
- def getDataReceivePoints(self):
173
- return self.dataReceivePoints
174
-
175
- def createDataReceivePoint(self, short_name: str) -> BswVariableAccess:
176
- if (not self.IsElementExists(short_name)):
177
- access = BswVariableAccess(self, short_name)
178
- self.addElement(access)
179
- self.dataReceivePoints.append(access)
180
- return self.getElement(short_name, BswVariableAccess)
181
-
182
- def getDataSendPoints(self):
183
- return self.dataSendPoints
184
-
185
- def createDataSendPoint(self, short_name: str) -> BswVariableAccess:
186
- if (not self.IsElementExists(short_name)):
187
- access = BswVariableAccess(self, short_name)
188
- self.addElement(access)
189
- self.dataSendPoints.append(access)
190
- return self.getElement(short_name, BswVariableAccess)
191
-
192
- def getImplementedEntryRef(self):
193
- return self.implementedEntryRef
194
-
195
- def setImplementedEntryRef(self, value):
196
- if value is not None:
197
- self.implementedEntryRef = value
198
- return self
199
-
200
- def getIssuedTriggerRefs(self):
201
- return self.issuedTriggerRefs
202
-
203
- def addIssuedTriggerRef(self, value):
204
- if value is not None:
205
- self.issuedTriggerRefs.append(value)
206
- return self
207
-
208
- def getManagedModeGroupRefs(self):
209
- return self.managedModeGroupRefs
210
-
211
- def addManagedModeGroupRef(self, value):
212
- if value is not None:
213
- self.managedModeGroupRefs.append(value)
214
- return self
215
-
216
- def getSchedulerNamePrefixRef(self):
217
- return self.schedulerNamePrefixRef
218
-
219
- def setSchedulerNamePrefixRef(self, value):
220
- if value is not None:
221
- self.schedulerNamePrefixRef = value
222
- return self
223
-
224
-
225
- class BswCalledEntity(BswModuleEntity):
226
- def __init__(self, parent: ARObject, short_name: str):
227
- super().__init__(parent, short_name)
228
-
229
-
230
- class BswSchedulableEntity(BswModuleEntity):
231
- def __init__(self, parent: ARObject, short_name: str):
232
- super().__init__(parent, short_name)
233
-
234
-
235
- class BswInterruptCategory(AREnum):
236
- CAT1 = "cat1"
237
- CAT2 = "cat2"
238
-
239
- def __init__(self):
240
- super().__init__((
241
- BswInterruptCategory.CAT1,
242
- BswInterruptCategory.CAT2,
243
- ))
244
-
245
-
246
- class BswInterruptEntity(BswModuleEntity):
247
- def __init__(self, parent: ARObject, short_name: str):
248
- super().__init__(parent, short_name)
249
-
250
- self.interruptCategory = None # type: BswInterruptCategory
251
- self.interruptSource = None # type: String
252
-
253
- def getInterruptCategory(self):
254
- return self.interruptCategory
255
-
256
- def setInterruptCategory(self, value):
257
- self.interruptCategory = value
258
- return self
259
-
260
- def getInterruptSource(self):
261
- return self.interruptSource
262
-
263
- def setInterruptSource(self, value):
264
- self.interruptSource = value
265
- return self
266
-
267
-
268
- class BswEvent(AbstractEvent, metaclass=ABCMeta):
269
- def __init__(self, parent: ARObject, short_name: str):
270
- if type(self) is BswEvent:
271
- raise NotImplementedError("BswEvent is an abstract class.")
272
- super().__init__(parent, short_name)
273
-
274
- self.startsOnEventRef = None # type: RefType
275
-
276
- def getStartsOnEventRef(self):
277
- return self.startsOnEventRef
278
-
279
- def setStartsOnEventRef(self, value):
280
- self.startsOnEventRef = value
281
- return self
282
-
283
-
284
- class BswOperationInvokedEvent(BswEvent):
285
- def __init__(self, parent: ARObject, short_name: str):
286
- super().__init__(parent, short_name)
287
-
288
- self.entryRef = None # type: RefType
289
-
290
- def getEntryRef(self):
291
- return self.entryRef
292
-
293
- def setEntryRef(self, value):
294
- if value is not None:
295
- self.entryRef = value
296
- return self
297
-
298
-
299
- class BswScheduleEvent(BswEvent, metaclass=ABCMeta):
300
- def __init__(self, parent: ARObject, short_name: str):
301
- if type(self) is BswScheduleEvent:
302
- raise NotImplementedError("BswScheduleEvent is an abstract class.")
303
- super().__init__(parent, short_name)
304
-
305
-
306
- class BswModeSwitchEvent(BswScheduleEvent):
307
- def __init__(self, parent: ARObject, short_name: str):
308
- super().__init__(parent, short_name)
309
-
310
- self.activation = None
311
-
312
- def getActivation(self):
313
- return self.activation
314
-
315
- def setActivation(self, value):
316
- self.activation = value
317
- return self
318
-
319
-
320
- class BswTimingEvent(BswScheduleEvent):
321
- def __init__(self, parent: ARObject, short_name: str):
322
- super().__init__(parent, short_name)
323
-
324
- self.period = None # type: TimeValue
325
-
326
- def getPeriod(self):
327
- return self.period
328
-
329
- def setPeriod(self, value):
330
- if not (value is None and self.period is not None):
331
- self.period = value
332
- return self
333
-
334
- @property
335
- def periodMs(self) -> int:
336
- if self.period is not None:
337
- return int(self.period.value * 1000)
338
- return None
339
-
340
-
341
- class BswDataReceivedEvent(BswScheduleEvent):
342
- def __init__(self, parent: ARObject, short_name: str):
343
- super().__init__(parent, short_name)
344
-
345
- self.dataRef = None # type: RefType
346
-
347
- def getDataRef(self):
348
- return self.dataRef
349
-
350
- def setDataRef(self, value):
351
- self.dataRef = value
352
- return self
353
-
354
-
355
- class BswInternalTriggerOccurredEvent(BswScheduleEvent):
356
- def __init__(self, parent: ARObject, short_name: str):
357
- super().__init__(parent, short_name)
358
-
359
- self.eventSourceRef = None # type: RefType
360
-
361
- def getEventSourceRef(self):
362
- return self.eventSourceRef
363
-
364
- def setEventSourceRef(self, value):
365
- self.eventSourceRef = value
366
- return self
367
-
368
-
369
- class BswModeSwitchAckRequest(ARObject):
370
- def __init__(self):
371
- super().__init__()
372
-
373
- self.timeout = None # type: ARFloat
374
-
375
- def getTimeout(self):
376
- return self.timeout
377
-
378
- def setTimeout(self, value):
379
- self.timeout = value
380
- return self
381
-
382
-
383
- class BswModeSenderPolicy(ARObject):
384
- def __init__(self):
385
- super().__init__()
386
-
387
- self.ack_request = None # type: BswModeSwitchAckRequest
388
- self.enhanced_mode_api = None # type: ARBoolean
389
- self._provided_mode_group_ref = None # type: RefType
390
- self._queue_length = None # type: ARNumerical
391
-
392
- def setProvidedModeGroupRef(self, ref: RefType):
393
- self._provided_mode_group_ref = ref
394
- return self
395
-
396
- def getProvidedModeGroupRef(self) -> RefType:
397
- return self._provided_mode_group_ref
398
-
399
- def setQueueLength(self, length: any):
400
- if isinstance(length, ARNumerical):
401
- self._queue_length = length
402
- elif isinstance(length, int):
403
- self._queue_length = ARNumerical()
404
- self._queue_length.setValue(length)
405
- else:
406
- raise ValueError("Unsupported type <%s>" % type(length))
407
-
408
- def getQueueLength(self) -> ARNumerical:
409
- return self._queue_length
410
-
411
-
412
- class BswBackgroundEvent(BswScheduleEvent):
413
- def __init__(self, parent, short_name):
414
- super().__init__(parent, short_name)
415
-
416
-
417
- class BswOsTaskExecutionEvent(BswScheduleEvent):
418
- def __init__(self, parent, short_name):
419
- super().__init__(parent, short_name)
420
-
421
-
422
- class BswExternalTriggerOccurredEvent(BswScheduleEvent):
423
- def __init__(self, parent, short_name):
424
- super().__init__(parent, short_name)
425
-
426
- self.triggerRef = None # type: RefType
427
-
428
- def getTriggerRef(self):
429
- return self.triggerRef
430
-
431
- def setTriggerRef(self, value):
432
- if value is not None:
433
- self.triggerRef = value
434
- return self
435
-
436
-
437
- class BswApiOptions(ARObject, metaclass=ABCMeta):
438
- def __init__(self):
439
- if type(self) is BswApiOptions:
440
- raise NotImplementedError("BswApiOptions is an abstract class.")
441
-
442
- super().__init__()
443
-
444
- self.enableTakeAddress = None # type: Boolean
445
-
446
- def getEnableTakeAddress(self):
447
- return self.enableTakeAddress
448
-
449
- def setEnableTakeAddress(self, value):
450
- if value is not None:
451
- self.enableTakeAddress = value
452
- return self
453
-
454
-
455
- class BswDataReceptionPolicy(BswApiOptions, metaclass=ABCMeta):
456
- def __init__(self):
457
- if type(self) is BswDataReceptionPolicy:
458
- raise NotImplementedError("BswDataReceptionPolicy is an abstract class.")
459
-
460
- super().__init__()
461
-
462
- self.receivedDataRef = None # type: RefType
463
-
464
- def getReceivedDataRef(self):
465
- return self.receivedDataRef
466
-
467
- def setReceivedDataRef(self, value):
468
- if value is not None:
469
- self.receivedDataRef = value
470
- return self
471
-
472
-
473
- class BswQueuedDataReceptionPolicy(BswDataReceptionPolicy):
474
- def __init__(self):
475
- super().__init__()
476
-
477
- self.queueLength = None # type: PositiveInteger
478
-
479
- def getQueueLength(self):
480
- return self.queueLength
481
-
482
- def setQueueLength(self, value):
483
- if value is not None:
484
- self.queueLength = value
485
- return self
486
-
487
-
488
- class BswInternalTriggeringPoint(Identifiable):
489
- def __init__(self, parent: ARObject, short_name: str):
490
- super().__init__(parent, short_name)
491
-
492
- self.swImplPolicy = None # type: SwImplPolicyEnum
493
-
494
- def getSwImplPolicy(self):
495
- return self.swImplPolicy
496
-
497
- def setSwImplPolicy(self, value):
498
- if value is not None:
499
- self.swImplPolicy = value
500
- return self
501
-
502
-
503
- class BswInternalBehavior(InternalBehavior):
504
- def __init__(self, parent: ARObject, short_name: str):
505
- super().__init__(parent, short_name)
506
-
507
- self.arTypedPerInstanceMemories = [] # type: List[VariableDataPrototype]
508
- self.bswPerInstanceMemoryPolicies = [] # type: List[BswPerInstanceMemoryPolicy]
509
- self.clientPolicies = [] # type: List[BswClientPolicy]
510
- self.distinguishedPartitions = [] # type: List[BswDistinguishedPartition]
511
- self.entities = [] # type: List[BswModuleEntity]
512
- self.events = [] # type: List[BswEvent]
513
- self.exclusiveAreaPolicies = [] # type: List[BswExclusiveAreaPolicy]
514
- self.includedDataTypeSets = [] # type: List[IncludedDataTypeSet]
515
- self.includedModeDeclarationGroupSets = [] # type: List[IncludedModeDeclarationGroupSet]
516
- self.internalTriggeringPoints = [] # type: List[BswInternalTriggeringPoint]
517
- self.internalTriggeringPointPolicies = [] # type: List[BswInternalTriggeringPointPolicy]
518
- self.modeReceiverPolicies = [] # type: List[BswModeReceiverPolicy]
519
- self.modeSenderPolicies = [] # type: List[BswModeSenderPolicy]
520
- self.parameterPolicies = [] # type: List[BswParameterPolicy]
521
- self.perInstanceParameters = [] # type: List[ParameterDataPrototype]
522
- self.receptionPolicies = [] # type: List[BswDataReceptionPolicy]
523
- self.releasedTriggerPolicies = [] # type: List[BswReleasedTriggerPolicy]
524
- self.schedulerNamePrefixes = [] # type: List[BswSchedulerNamePrefix]
525
- self.sendPolicies = [] # type: List[BswDataSendPolicy]
526
- self.serviceDependencies = [] # type: List[BswServiceDependency]
527
- self.triggerDirectImplementations = [] # type: List[BswTriggerDirectImplementation]
528
- self.variationPointProxies = [] # type: List[VariationPointProxy]
529
-
530
- def getArTypedPerInstanceMemories(self):
531
- return self.arTypedPerInstanceMemories
532
-
533
- def setArTypedPerInstanceMemories(self, value):
534
- if value is not None:
535
- self.arTypedPerInstanceMemories = value
536
- return self
537
-
538
- def getBswPerInstanceMemoryPolicies(self):
539
- return self.bswPerInstanceMemoryPolicies
540
-
541
- def setBswPerInstanceMemoryPolicies(self, value):
542
- if value is not None:
543
- self.bswPerInstanceMemoryPolicies = value
544
- return self
545
-
546
- def getClientPolicies(self):
547
- return self.clientPolicies
548
-
549
- def setClientPolicies(self, value):
550
- if value is not None:
551
- self.clientPolicies = value
552
- return self
553
-
554
- def getDistinguishedPartitions(self):
555
- return self.distinguishedPartitions
556
-
557
- def setDistinguishedPartitions(self, value):
558
- if value is not None:
559
- self.distinguishedPartitions = value
560
- return self
561
-
562
- def getExclusiveAreaPolicies(self):
563
- return self.exclusiveAreaPolicies
564
-
565
- def setExclusiveAreaPolicies(self, value):
566
- if value is not None:
567
- self.exclusiveAreaPolicies = value
568
- return self
569
-
570
- def getInternalTriggeringPoints(self):
571
- return self.internalTriggeringPoints
572
-
573
- def createBswInternalTriggeringPoint(self, short_name: str) -> BswInternalTriggeringPoint:
574
- if not self.IsElementExists(short_name):
575
- entity = BswInternalTriggeringPoint(self, short_name)
576
- self.addElement(entity)
577
- self.internalTriggeringPoints.append(entity)
578
- return self.getElement(short_name)
579
-
580
- def getInternalTriggeringPointPolicies(self):
581
- return self.internalTriggeringPointPolicies
582
-
583
- def setInternalTriggeringPointPolicies(self, value):
584
- if value is not None:
585
- self.internalTriggeringPointPolicies = value
586
- return self
587
-
588
- def getModeReceiverPolicies(self):
589
- return self.modeReceiverPolicies
590
-
591
- def setModeSenderPolicies(self, value):
592
- if value is not None:
593
- self.modeSenderPolicies = value
594
- return self
595
-
596
- def getParameterPolicies(self):
597
- return self.parameterPolicies
598
-
599
- def setParameterPolicies(self, value):
600
- if value is not None:
601
- self.parameterPolicies = value
602
- return self
603
-
604
- def getPerInstanceParameters(self):
605
- return self.perInstanceParameters
606
-
607
- def setPerInstanceParameters(self, value):
608
- if value is not None:
609
- self.perInstanceParameters = value
610
- return self
611
-
612
- def getReceptionPolicies(self):
613
- return self.receptionPolicies
614
-
615
- def addReceptionPolicy(self, value):
616
- if value is not None:
617
- self.receptionPolicies.append(value)
618
- return self
619
-
620
- def getReleasedTriggerPolicies(self):
621
- return self.releasedTriggerPolicies
622
-
623
- def setReleasedTriggerPolicies(self, value):
624
- if value is not None:
625
- self.releasedTriggerPolicies = value
626
- return self
627
-
628
- def getSchedulerNamePrefixes(self):
629
- return self.schedulerNamePrefixes
630
-
631
- def setSchedulerNamePrefixes(self, value):
632
- if value is not None:
633
- self.schedulerNamePrefixes = value
634
- return self
635
-
636
- def getSendPolicies(self):
637
- return self.sendPolicies
638
-
639
- def setSendPolicies(self, value):
640
- if value is not None:
641
- self.sendPolicies = value
642
- return self
643
-
644
- def getServiceDependencies(self):
645
- return self.serviceDependencies
646
-
647
- def setServiceDependencies(self, value):
648
- if value is not None:
649
- self.serviceDependencies = value
650
- return self
651
-
652
- def getTriggerDirectImplementations(self):
653
- return self.triggerDirectImplementations
654
-
655
- def setTriggerDirectImplementations(self, value):
656
- if value is not None:
657
- self.triggerDirectImplementations = value
658
- return self
659
-
660
- def getVariationPointProxies(self):
661
- return self.variationPointProxies
662
-
663
- def setVariationPointProxies(self, value):
664
- if value is not None:
665
- self.variationPointProxies = value
666
- return self
667
-
668
- def addModeSenderPolicy(self, policy: BswModeSenderPolicy):
669
- self.modeReceiverPolicies.append(policy)
670
-
671
- def getModeSenderPolicies(self) -> List[BswModeSenderPolicy]:
672
- return self.modeReceiverPolicies
673
-
674
- def createBswCalledEntity(self, short_name: str) -> BswCalledEntity:
675
- if not self.IsElementExists(short_name):
676
- entity = BswCalledEntity(self, short_name)
677
- self.addElement(entity)
678
- self.entities.append(entity)
679
- return self.getElement(short_name)
680
-
681
- def getBswCalledEntities(self) -> List[BswCalledEntity]:
682
- return list(filter(lambda a: isinstance(a, BswCalledEntity), self.elements))
683
-
684
- def createBswSchedulableEntity(self, short_name: str) -> BswSchedulableEntity:
685
- if not self.IsElementExists(short_name):
686
- entity = BswSchedulableEntity(self, short_name)
687
- self.addElement(entity)
688
- self.entities.append(entity)
689
- return self.getElement(short_name)
690
-
691
- def getBswSchedulableEntities(self) -> List[BswSchedulableEntity]:
692
- return list(filter(lambda a: isinstance(a, BswSchedulableEntity), self.elements))
693
-
694
- def createBswInterruptEntity(self, short_name: str) -> BswInterruptEntity:
695
- if not self.IsElementExists(short_name):
696
- entity = BswInterruptEntity(self, short_name)
697
- self.addElement(entity)
698
- self.entities.append(entity)
699
- return self.getElement(short_name)
700
-
701
- def getBswInterruptEntities(self) -> List[BswInterruptEntity]:
702
- return list(filter(lambda a: isinstance(a, BswInterruptEntity), self.elements))
703
-
704
- def getBswModuleEntities(self) -> List[BswModuleEntity]:
705
- return list(filter(lambda a: isinstance(a, BswModuleEntity), self.elements))
706
-
707
- def createBswModeSwitchEvent(self, short_name: str) -> BswModeSwitchEvent:
708
- if not self.IsElementExists(short_name):
709
- event = BswModeSwitchEvent(self, short_name)
710
- self.addElement(event)
711
- self.events.append(event)
712
- return self.getElement(short_name)
713
-
714
- def getBswModeSwitchEvents(self) -> List[BswModeSwitchEvent]:
715
- return list(filter(lambda a: isinstance(a, BswModeSwitchEvent), self.elements))
716
-
717
- def createBswTimingEvent(self, short_name: str) -> BswTimingEvent:
718
- if not self.IsElementExists(short_name):
719
- event = BswTimingEvent(self, short_name)
720
- self.addElement(event)
721
- self.events.append(event)
722
- return self.getElement(short_name)
723
-
724
- def getBswTimingEvents(self) -> List[BswTimingEvent]:
725
- return list(filter(lambda a: isinstance(a, BswTimingEvent), self.elements))
726
-
727
- def createBswDataReceivedEvent(self, short_name: str) -> BswDataReceivedEvent:
728
- if not self.IsElementExists(short_name):
729
- event = BswDataReceivedEvent(self, short_name)
730
- self.addElement(event)
731
- self.events.append(event)
732
- return self.getElement(short_name)
733
-
734
- def getBswDataReceivedEvents(self) -> List[BswDataReceivedEvent]:
735
- return list(filter(lambda a: isinstance(a, BswDataReceivedEvent), self.elements))
736
-
737
- def createBswInternalTriggerOccurredEvent(self, short_name: str) -> BswInternalTriggerOccurredEvent:
738
- if not self.IsElementExists(short_name):
739
- event = BswInternalTriggerOccurredEvent(self, short_name)
740
- self.addElement(event)
741
- self.events.append(event)
742
- return self.getElement(short_name)
743
-
744
- def getBswInternalTriggerOccurredEvents(self) -> List[BswInternalTriggerOccurredEvent]:
745
- return list(filter(lambda a: isinstance(a, BswInternalTriggerOccurredEvent), self.elements))
746
-
747
- def createBswExternalTriggerOccurredEvent(self, short_name: str) -> BswExternalTriggerOccurredEvent:
748
- if not self.IsElementExists(short_name):
749
- event = BswExternalTriggerOccurredEvent(self, short_name)
750
- self.addElement(event)
751
- self.events.append(event)
752
- return self.getElement(short_name)
753
-
754
- def getBswOperationInvokedEvents(self) -> List[BswOperationInvokedEvent]:
755
- return list(filter(lambda a: isinstance(a, BswOperationInvokedEvent), self.elements))
756
-
757
- def createBswOperationInvokedEvent(self, short_name: str) -> BswOperationInvokedEvent:
758
- if not self.IsElementExists(short_name):
759
- event = BswOperationInvokedEvent(self, short_name)
760
- self.addElement(event)
761
- self.events.append(event)
762
- return self.getElement(short_name)
763
-
764
- def getBswExternalTriggerOccurredEvents(self) -> List[BswExternalTriggerOccurredEvent]:
765
- return list(filter(lambda a: isinstance(a, BswExternalTriggerOccurredEvent), self.elements))
766
-
767
- def createBswBackgroundEvent(self, short_name: str) -> BswBackgroundEvent:
768
- if not self.IsElementExists(short_name):
769
- event = BswBackgroundEvent(self, short_name)
770
- self.addElement(event)
771
- self.events.append(event)
772
- return self.getElement(short_name)
773
-
774
- def getBswBackgroundEvents(self) -> List[BswBackgroundEvent]:
775
- return list(filter(lambda a: isinstance(a, BswBackgroundEvent), self.elements))
776
-
777
- def getBswEvents(self) -> List[BswEvent]:
778
- return list(filter(lambda a: isinstance(a, BswEvent), self.elements))
779
-
780
- def addIncludedModeDeclarationGroupSet(self, group_set: IncludedModeDeclarationGroupSet):
781
- self.includedModeDeclarationGroupSets.append(group_set)
782
-
783
- def getIncludedModeDeclarationGroupSets(self) -> List[IncludedModeDeclarationGroupSet]:
784
- return self.includedModeDeclarationGroupSets
785
-
786
- def addIncludedDataTypeSet(self, type_set: IncludedDataTypeSet):
787
- self.includedDataTypeSets.append(type_set)
788
-
789
- def getIncludedDataTypeSets(self) -> List[IncludedDataTypeSet]:
790
- return self.includedDataTypeSets
791
-
1
+ """
2
+ This module contains classes for representing AUTOSAR Basic Software (BSW) module behavior.
3
+ BSW behavior describes how BSW modules execute, including their entities, events, and execution policies.
4
+
5
+ These classes are used to model:
6
+ - BSW module entities and their call points
7
+ - Different types of events that trigger execution
8
+ - Variable access patterns and data policies
9
+ - Internal behavior of BSW modules
10
+ """
11
+
12
+ from abc import ABC
13
+ from typing import List
14
+
15
+ from armodel.models.M2.MSR.DataDictionary.DataDefProperties import SwImplPolicyEnum
16
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import AbstractEvent, ExecutableEntity, InternalBehavior
17
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
18
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean, AREnum, ARFloat, ARNumerical, Boolean
19
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger, String, TimeValue
20
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
21
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
22
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Referrable
23
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import VariableDataPrototype
24
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
25
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
26
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeActivationKind
27
+
28
+
29
+ class BswModuleCallPoint(Referrable, ABC):
30
+ """
31
+ Represents a call point for a BSW module, which defines how the module can be called.
32
+ This is an abstract base class for different types of call points.
33
+ """
34
+
35
+ def __init__(self, parent: ARObject, short_name: str):
36
+ """
37
+ Initializes the BswModuleCallPoint with a parent and short name.
38
+ Raises TypeError if this abstract class is instantiated directly.
39
+
40
+ Args:
41
+ parent: The parent ARObject that contains this call point
42
+ short_name: The unique short name of this call point
43
+ """
44
+ if type(self) is BswModuleCallPoint:
45
+ raise TypeError("BswModuleCallPoint is an abstract class.")
46
+ super().__init__(parent, short_name)
47
+
48
+ # List of context limitation references that apply to this call point
49
+ self.contextLimitationRefs: List[RefType] = []
50
+
51
+ def getContextLimitationRefs(self):
52
+ """
53
+ Gets the list of context limitation references for this call point.
54
+
55
+ Returns:
56
+ List of context limitation references
57
+ """
58
+ return self.contextLimitationRefs
59
+
60
+ def addContextLimitationRef(self, value):
61
+ """
62
+ Adds a context limitation reference to this call point.
63
+
64
+ Args:
65
+ value: The context limitation reference to add
66
+
67
+ Returns:
68
+ self for method chaining
69
+ """
70
+ self.contextLimitationRefs.append(value)
71
+ return self
72
+
73
+
74
+ class BswAsynchronousServerCallPoint(BswModuleCallPoint):
75
+ """
76
+ Represents an asynchronous server call point in a BSW module.
77
+ This call point is used when the server operation is executed asynchronously.
78
+ """
79
+
80
+ def __init__(self, parent: ARObject, short_name: str):
81
+ """
82
+ Initializes the BswAsynchronousServerCallPoint with a parent and short name.
83
+
84
+ Args:
85
+ parent: The parent ARObject that contains this call point
86
+ short_name: The unique short name of this call point
87
+ """
88
+ super().__init__(parent, short_name)
89
+
90
+ # Reference to the entry that is called by this asynchronous call point
91
+ self.calledEntryRef: RefType = None
92
+
93
+ def getCalledEntryRef(self):
94
+ """
95
+ Gets the reference to the entry that is called by this call point.
96
+
97
+ Returns:
98
+ Reference to the called entry
99
+ """
100
+ return self.calledEntryRef
101
+
102
+ def setCalledEntryRef(self, value):
103
+ """
104
+ Sets the reference to the entry that is called by this call point.
105
+ Only sets the value if it is not None.
106
+
107
+ Args:
108
+ value: The entry reference to set
109
+
110
+ Returns:
111
+ self for method chaining
112
+ """
113
+ if value is not None:
114
+ self.calledEntryRef = value
115
+ return self
116
+
117
+
118
+ class BswDirectCallPoint(BswModuleCallPoint):
119
+ """
120
+ Represents a direct call point in a BSW module.
121
+ This call point is used for direct synchronous calls to BSW module entries.
122
+ """
123
+
124
+ def __init__(self, parent: ARObject, short_name: str):
125
+ """
126
+ Initializes the BswDirectCallPoint with a parent and short name.
127
+
128
+ Args:
129
+ parent: The parent ARObject that contains this call point
130
+ short_name: The unique short name of this call point
131
+ """
132
+ super().__init__(parent, short_name)
133
+
134
+ # Reference to the entry that is called by this direct call point
135
+ self.calledEntryRef: RefType = None
136
+ # Reference to an exclusive area from which this call is made
137
+ self.calledFromWithinExclusiveAreaRef: RefType = None
138
+
139
+ def getCalledEntryRef(self):
140
+ """
141
+ Gets the reference to the entry that is called by this direct call point.
142
+
143
+ Returns:
144
+ Reference to the called entry
145
+ """
146
+ return self.calledEntryRef
147
+
148
+ def setCalledEntryRef(self, value):
149
+ """
150
+ Sets the reference to the entry that is called by this direct call point.
151
+ Only sets the value if it is not None.
152
+
153
+ Args:
154
+ value: The entry reference to set
155
+
156
+ Returns:
157
+ self for method chaining
158
+ """
159
+ if value is not None:
160
+ self.calledEntryRef = value
161
+ return self
162
+
163
+ def getCalledFromWithinExclusiveAreaRef(self):
164
+ """
165
+ Gets the reference to the exclusive area from which this call is made.
166
+
167
+ Returns:
168
+ Reference to the exclusive area
169
+ """
170
+ return self.calledFromWithinExclusiveAreaRef
171
+
172
+ def setCalledFromWithinExclusiveAreaRef(self, value):
173
+ """
174
+ Sets the reference to the exclusive area from which this call is made.
175
+ Only sets the value if it is not None.
176
+
177
+ Args:
178
+ value: The exclusive area reference to set
179
+
180
+ Returns:
181
+ self for method chaining
182
+ """
183
+ if value is not None:
184
+ self.calledFromWithinExclusiveAreaRef = value
185
+ return self
186
+
187
+
188
+ class BswSynchronousServerCallPoint(BswModuleCallPoint):
189
+ """
190
+ Represents a synchronous server call point in a BSW module.
191
+ This call point is used when the server operation is executed synchronously.
192
+ """
193
+
194
+ def __init__(self, parent: ARObject, short_name: str):
195
+ """
196
+ Initializes the BswSynchronousServerCallPoint with a parent and short name.
197
+
198
+ Args:
199
+ parent: The parent ARObject that contains this call point
200
+ short_name: The unique short name of this call point
201
+ """
202
+ super().__init__(parent, short_name)
203
+
204
+ # Reference to the entry that is called by this synchronous call point
205
+ self.calledEntryRef: RefType = None
206
+ # Reference to an exclusive area from which this call is made
207
+ self.calledFromWithinExclusiveAreaRef: RefType = None
208
+
209
+ def getCalledEntryRef(self):
210
+ """
211
+ Gets the reference to the entry that is called by this synchronous call point.
212
+
213
+ Returns:
214
+ Reference to the called entry
215
+ """
216
+ return self.calledEntryRef
217
+
218
+ def setCalledEntryRef(self, value):
219
+ """
220
+ Sets the reference to the entry that is called by this synchronous call point.
221
+ Only sets the value if it is not None.
222
+
223
+ Args:
224
+ value: The entry reference to set
225
+
226
+ Returns:
227
+ self for method chaining
228
+ """
229
+ if value is not None:
230
+ self.calledEntryRef = value
231
+ return self
232
+
233
+ def getCalledFromWithinExclusiveAreaRef(self):
234
+ """
235
+ Gets the reference to the exclusive area from which this call is made.
236
+
237
+ Returns:
238
+ Reference to the exclusive area
239
+ """
240
+ return self.calledFromWithinExclusiveAreaRef
241
+
242
+ def setCalledFromWithinExclusiveAreaRef(self, value):
243
+ """
244
+ Sets the reference to the exclusive area from which this call is made.
245
+ Only sets the value if it is not None.
246
+
247
+ Args:
248
+ value: The exclusive area reference to set
249
+
250
+ Returns:
251
+ self for method chaining
252
+ """
253
+ if value is not None:
254
+ self.calledFromWithinExclusiveAreaRef = value
255
+ return self
256
+
257
+
258
+ class BswAsynchronousServerCallResultPoint(BswModuleCallPoint):
259
+ """
260
+ Represents a result point for an asynchronous server call in a BSW module.
261
+ This defines where the result of the asynchronous call is handled.
262
+ """
263
+
264
+ def __init__(self, parent: ARObject, short_name: str):
265
+ """
266
+ Initializes the BswAsynchronousServerCallResultPoint with a parent and short name.
267
+
268
+ Args:
269
+ parent: The parent ARObject that contains this call point
270
+ short_name: The unique short name of this call point
271
+ """
272
+ super().__init__(parent, short_name)
273
+
274
+ # Reference to the asynchronous server call point
275
+ self.asynchronousServerCallPointRef: RefType = None
276
+
277
+
278
+ class BswVariableAccess(Referrable):
279
+ """
280
+ Represents access to a variable by a BSW module entity.
281
+ This class defines how a BSW module accesses variables during execution.
282
+ """
283
+
284
+ def __init__(self, parent: ARObject, short_name: str):
285
+ """
286
+ Initializes the BswVariableAccess with a parent and short name.
287
+
288
+ Args:
289
+ parent: The parent ARObject that contains this variable access
290
+ short_name: The unique short name of this variable access
291
+ """
292
+ super().__init__(parent, short_name)
293
+
294
+ # Reference to the variable being accessed
295
+ self.accessedVariableRef: RefType = None
296
+ # List of context limitation references that apply to this variable access
297
+ self.contextLimitationRefs: List[RefType] = []
298
+
299
+ def getAccessedVariableRef(self):
300
+ """
301
+ Gets the reference to the variable being accessed.
302
+
303
+ Returns:
304
+ Reference to the accessed variable
305
+ """
306
+ return self.accessedVariableRef
307
+
308
+ def setAccessedVariableRef(self, value):
309
+ """
310
+ Sets the reference to the variable being accessed.
311
+
312
+ Args:
313
+ value: The variable reference to set
314
+
315
+ Returns:
316
+ self for method chaining
317
+ """
318
+ self.accessedVariableRef = value
319
+ return self
320
+
321
+ def getContextLimitationRefs(self):
322
+ """
323
+ Gets the list of context limitation references for this variable access.
324
+
325
+ Returns:
326
+ List of context limitation references
327
+ """
328
+ return self.contextLimitationRefs
329
+
330
+ def addContextLimitationRef(self, value):
331
+ """
332
+ Adds a context limitation reference to this variable access.
333
+
334
+ Args:
335
+ value: The context limitation reference to add
336
+
337
+ Returns:
338
+ self for method chaining
339
+ """
340
+ self.contextLimitationRefs.append(value)
341
+ return self
342
+
343
+
344
+ class BswDistinguishedPartition(Referrable):
345
+ """
346
+ Each instance of this meta-class represents an abstract partition in which context
347
+ the code of the enclosing BswModuleBehavior can be executed. The intended use case
348
+ is to distinguish between several partitions in order to implement different behavior
349
+ per partition, for example to behave either as a master or satellite in a multicore
350
+ ECU with shared BSW code.
351
+ """
352
+
353
+ def __init__(self, parent: ARObject, short_name: str):
354
+ """
355
+ Initializes the BswDistinguishedPartition with a parent and short name.
356
+
357
+ Args:
358
+ parent: The parent ARObject that contains this distinguished partition
359
+ short_name: The unique short name of this distinguished partition
360
+ """
361
+ super().__init__(parent, short_name)
362
+
363
+
364
+ class BswModuleEntity(ExecutableEntity, ABC):
365
+ """
366
+ Abstract base class for BSW module entities.
367
+ A BSW module entity represents an executable piece of code in a BSW module.
368
+ """
369
+
370
+ def __init__(self, parent: ARObject, short_name: str):
371
+ """
372
+ Initializes the BSW module entity with a parent and short name.
373
+ Raises TypeError if this abstract class is instantiated directly.
374
+
375
+ Args:
376
+ parent: The parent ARObject that contains this entity
377
+ short_name: The unique short name of this entity
378
+ """
379
+ if type(self) is BswModuleEntity:
380
+ raise TypeError("BswModuleEntity is an abstract class.")
381
+ super().__init__(parent, short_name)
382
+
383
+ # List of mode group references that this entity accesses
384
+ self.accessedModeGroupRefs: List[RefType] = []
385
+ # List of activation point references for this entity
386
+ self.activationPointRefs: List[RefType] = []
387
+ # List of call points associated with this entity
388
+ self.callPoints: List[BswModuleCallPoint] = []
389
+ # List of variable access points for data reception
390
+ self.dataReceivePoints: List[BswVariableAccess] = []
391
+ # List of variable access points for data sending
392
+ self.dataSendPoints: List[BswVariableAccess] = []
393
+ # Reference to the entry implemented by this entity
394
+ self.implementedEntryRef: RefType = None
395
+ # List of trigger references issued by this entity
396
+ self.issuedTriggerRefs: List[RefType] = []
397
+ # List of mode group references managed by this entity
398
+ self.managedModeGroupRefs: List[RefType] = []
399
+ # List of scheduler name prefix references
400
+ self.schedulerNamePrefixRef: List[RefType] = None
401
+
402
+ def getAccessedModeGroupRefs(self):
403
+ """
404
+ Gets the list of mode group references that this entity accesses.
405
+
406
+ Returns:
407
+ List of mode group references
408
+ """
409
+ return self.accessedModeGroupRefs
410
+
411
+ def addAccessedModeGroupRef(self, value):
412
+ """
413
+ Adds a mode group reference to the list of accessed mode groups.
414
+ Only adds the value if it is not None.
415
+
416
+ Args:
417
+ value: The mode group reference to add
418
+
419
+ Returns:
420
+ self for method chaining
421
+ """
422
+ if value is not None:
423
+ self.accessedModeGroupRefs.append(value)
424
+ return self
425
+
426
+ def getActivationPointRefs(self):
427
+ """
428
+ Gets the list of activation point references for this entity.
429
+
430
+ Returns:
431
+ List of activation point references
432
+ """
433
+ return self.activationPointRefs
434
+
435
+ def addActivationPointRef(self, value):
436
+ """
437
+ Adds an activation point reference to the list of activation points.
438
+ Only adds the value if it is not None.
439
+
440
+ Args:
441
+ value: The activation point reference to add
442
+
443
+ Returns:
444
+ self for method chaining
445
+ """
446
+ if value is not None:
447
+ self.activationPointRefs.append(value)
448
+ return self
449
+
450
+ def getCallPoints(self):
451
+ """
452
+ Gets the list of call points associated with this entity.
453
+
454
+ Returns:
455
+ List of call points
456
+ """
457
+ return self.callPoints
458
+
459
+ def createBswAsynchronousServerCallPoint(self, short_name):
460
+ """
461
+ Creates and adds a BswAsynchronousServerCallPoint to this entity.
462
+
463
+ Args:
464
+ short_name: The short name for the new call point
465
+
466
+ Returns:
467
+ The created BswAsynchronousServerCallPoint instance
468
+ """
469
+ if (not self.IsElementExists(short_name)):
470
+ access = BswAsynchronousServerCallPoint(self, short_name)
471
+ self.addElement(access)
472
+ self.callPoints.append(access)
473
+ return self.getElement(short_name)
474
+
475
+ def createBswSynchronousServerCallPoint(self, short_name):
476
+ """
477
+ Creates and adds a BswSynchronousServerCallPoint to this entity.
478
+
479
+ Args:
480
+ short_name: The short name for the new call point
481
+
482
+ Returns:
483
+ The created BswSynchronousServerCallPoint instance
484
+ """
485
+ if (not self.IsElementExists(short_name)):
486
+ access = BswSynchronousServerCallPoint(self, short_name)
487
+ self.addElement(access)
488
+ self.callPoints.append(access)
489
+ return self.getElement(short_name)
490
+
491
+ def getDataReceivePoints(self):
492
+ """
493
+ Gets the list of variable access points for data reception.
494
+
495
+ Returns:
496
+ List of data receive points
497
+ """
498
+ return self.dataReceivePoints
499
+
500
+ def createDataReceivePoint(self, short_name: str) -> BswVariableAccess:
501
+ """
502
+ Creates and adds a BswVariableAccess for data reception to this entity.
503
+
504
+ Args:
505
+ short_name: The short name for the new data receive point
506
+
507
+ Returns:
508
+ The created BswVariableAccess instance
509
+ """
510
+ if (not self.IsElementExists(short_name)):
511
+ access = BswVariableAccess(self, short_name)
512
+ self.addElement(access)
513
+ self.dataReceivePoints.append(access)
514
+ return self.getElement(short_name, BswVariableAccess)
515
+
516
+ def getDataSendPoints(self):
517
+ """
518
+ Gets the list of variable access points for data sending.
519
+
520
+ Returns:
521
+ List of data send points
522
+ """
523
+ return self.dataSendPoints
524
+
525
+ def createDataSendPoint(self, short_name: str) -> BswVariableAccess:
526
+ """
527
+ Creates and adds a BswVariableAccess for data sending to this entity.
528
+
529
+ Args:
530
+ short_name: The short name for the new data send point
531
+
532
+ Returns:
533
+ The created BswVariableAccess instance
534
+ """
535
+ if (not self.IsElementExists(short_name)):
536
+ access = BswVariableAccess(self, short_name)
537
+ self.addElement(access)
538
+ self.dataSendPoints.append(access)
539
+ return self.getElement(short_name, BswVariableAccess)
540
+
541
+ def getImplementedEntryRef(self):
542
+ """
543
+ Gets the reference to the entry implemented by this entity.
544
+
545
+ Returns:
546
+ Reference to the implemented entry
547
+ """
548
+ return self.implementedEntryRef
549
+
550
+ def setImplementedEntryRef(self, value):
551
+ """
552
+ Sets the reference to the entry implemented by this entity.
553
+ Only sets the value if it is not None.
554
+
555
+ Args:
556
+ value: The entry reference to set
557
+
558
+ Returns:
559
+ self for method chaining
560
+ """
561
+ if value is not None:
562
+ self.implementedEntryRef = value
563
+ return self
564
+
565
+ def getIssuedTriggerRefs(self):
566
+ """
567
+ Gets the list of trigger references issued by this entity.
568
+
569
+ Returns:
570
+ List of issued trigger references
571
+ """
572
+ return self.issuedTriggerRefs
573
+
574
+ def addIssuedTriggerRef(self, value):
575
+ """
576
+ Adds a trigger reference to the list of issued triggers.
577
+ Only adds the value if it is not None.
578
+
579
+ Args:
580
+ value: The trigger reference to add
581
+
582
+ Returns:
583
+ self for method chaining
584
+ """
585
+ if value is not None:
586
+ self.issuedTriggerRefs.append(value)
587
+ return self
588
+
589
+ def getManagedModeGroupRefs(self):
590
+ """
591
+ Gets the list of mode group references managed by this entity.
592
+
593
+ Returns:
594
+ List of managed mode group references
595
+ """
596
+ return self.managedModeGroupRefs
597
+
598
+ def addManagedModeGroupRef(self, value):
599
+ """
600
+ Adds a mode group reference to the list of managed mode groups.
601
+ Only adds the value if it is not None.
602
+
603
+ Args:
604
+ value: The mode group reference to add
605
+
606
+ Returns:
607
+ self for method chaining
608
+ """
609
+ if value is not None:
610
+ self.managedModeGroupRefs.append(value)
611
+ return self
612
+
613
+ def getSchedulerNamePrefixRef(self):
614
+ """
615
+ Gets the list of scheduler name prefix references.
616
+
617
+ Returns:
618
+ List of scheduler name prefix references
619
+ """
620
+ return self.schedulerNamePrefixRef
621
+
622
+ def setSchedulerNamePrefixRef(self, value):
623
+ """
624
+ Sets the list of scheduler name prefix references.
625
+ Only sets the value if it is not None.
626
+
627
+ Args:
628
+ value: The scheduler name prefix references to set
629
+
630
+ Returns:
631
+ self for method chaining
632
+ """
633
+ if value is not None:
634
+ self.schedulerNamePrefixRef = value
635
+ return self
636
+
637
+
638
+ class BswCalledEntity(BswModuleEntity):
639
+ """
640
+ Represents a BSW module entity that can be called by other entities.
641
+ This is typically used for BSW service functions that can be invoked.
642
+ """
643
+
644
+ def __init__(self, parent: ARObject, short_name: str):
645
+ """
646
+ Initializes the BswCalledEntity with a parent and short name.
647
+
648
+ Args:
649
+ parent: The parent ARObject that contains this entity
650
+ short_name: The unique short name of this entity
651
+ """
652
+ super().__init__(parent, short_name)
653
+
654
+
655
+ class BswSchedulableEntity(BswModuleEntity):
656
+ """
657
+ Represents a BSW module entity that can be scheduled for execution.
658
+ This is typically used for BSW functions that can be scheduled by the OS.
659
+ """
660
+
661
+ def __init__(self, parent: ARObject, short_name: str):
662
+ """
663
+ Initializes the BswSchedulableEntity with a parent and short name.
664
+
665
+ Args:
666
+ parent: The parent ARObject that contains this entity
667
+ short_name: The unique short name of this entity
668
+ """
669
+ super().__init__(parent, short_name)
670
+
671
+
672
+ class BswInterruptCategory(AREnum):
673
+ """
674
+ Enumeration for BSW interrupt categories.
675
+ Defines whether an interrupt is a Category 1 (CAT1) or Category 2 (CAT2) interrupt.
676
+ """
677
+ # Category 1 interrupt - directly handled by the OS
678
+ CAT1 = "cat1"
679
+ # Category 2 interrupt - handled by the interrupt service routine
680
+ CAT2 = "cat2"
681
+
682
+ def __init__(self):
683
+ """
684
+ Initializes the BswInterruptCategory with valid values.
685
+ """
686
+ super().__init__((
687
+ BswInterruptCategory.CAT1,
688
+ BswInterruptCategory.CAT2,
689
+ ))
690
+
691
+
692
+ class BswInterruptEntity(BswModuleEntity):
693
+ """
694
+ Represents an interrupt entity in a BSW module.
695
+ This defines how interrupt service routines are handled in the BSW module.
696
+ """
697
+
698
+ def __init__(self, parent: ARObject, short_name: str):
699
+ """
700
+ Initializes the BswInterruptEntity with a parent and short name.
701
+
702
+ Args:
703
+ parent: The parent ARObject that contains this interrupt entity
704
+ short_name: The unique short name of this interrupt entity
705
+ """
706
+ super().__init__(parent, short_name)
707
+
708
+ # Category of the interrupt (CAT1 or CAT2)
709
+ self.interruptCategory: BswInterruptCategory = None
710
+ # Source identifier for the interrupt
711
+ self.interruptSource: String = None
712
+
713
+ def getInterruptCategory(self):
714
+ """
715
+ Gets the interrupt category for this interrupt entity.
716
+
717
+ Returns:
718
+ The interrupt category (CAT1 or CAT2)
719
+ """
720
+ return self.interruptCategory
721
+
722
+ def setInterruptCategory(self, value):
723
+ """
724
+ Sets the interrupt category for this interrupt entity.
725
+
726
+ Args:
727
+ value: The interrupt category to set
728
+
729
+ Returns:
730
+ self for method chaining
731
+ """
732
+ self.interruptCategory = value
733
+ return self
734
+
735
+ def getInterruptSource(self):
736
+ """
737
+ Gets the interrupt source identifier for this interrupt entity.
738
+
739
+ Returns:
740
+ The interrupt source identifier
741
+ """
742
+ return self.interruptSource
743
+
744
+ def setInterruptSource(self, value):
745
+ """
746
+ Sets the interrupt source identifier for this interrupt entity.
747
+
748
+ Args:
749
+ value: The interrupt source identifier to set
750
+
751
+ Returns:
752
+ self for method chaining
753
+ """
754
+ self.interruptSource = value
755
+ return self
756
+
757
+
758
+ class BswEvent(AbstractEvent, ABC):
759
+ """
760
+ Abstract base class for BSW events.
761
+ BSW events trigger the execution of BSW module entities.
762
+ """
763
+
764
+ def __init__(self, parent: ARObject, short_name: str):
765
+ """
766
+ Initializes the BSW event with a parent and short name.
767
+ Raises TypeError if this abstract class is instantiated directly.
768
+
769
+ Args:
770
+ parent: The parent ARObject that contains this event
771
+ short_name: The unique short name of this event
772
+ """
773
+ if type(self) is BswEvent:
774
+ raise TypeError("BswEvent is an abstract class.")
775
+ super().__init__(parent, short_name)
776
+
777
+ # Reference to the event that starts this event
778
+ self.startsOnEventRef: RefType = None
779
+
780
+ def getStartsOnEventRef(self):
781
+ """
782
+ Gets the reference to the event that starts this event.
783
+
784
+ Returns:
785
+ Reference to the starting event
786
+ """
787
+ return self.startsOnEventRef
788
+
789
+ def setStartsOnEventRef(self, value):
790
+ """
791
+ Sets the reference to the event that starts this event.
792
+
793
+ Args:
794
+ value: The starting event reference to set
795
+
796
+ Returns:
797
+ self for method chaining
798
+ """
799
+ self.startsOnEventRef = value
800
+ return self
801
+
802
+
803
+ class BswOperationInvokedEvent(BswEvent):
804
+ """
805
+ Represents an event that is triggered when a BSW operation is invoked.
806
+ This event occurs when a client calls a BSW service function.
807
+ """
808
+
809
+ def __init__(self, parent: ARObject, short_name: str):
810
+ """
811
+ Initializes the BswOperationInvokedEvent with a parent and short name.
812
+
813
+ Args:
814
+ parent: The parent ARObject that contains this event
815
+ short_name: The unique short name of this event
816
+ """
817
+ super().__init__(parent, short_name)
818
+
819
+ # Reference to the entry that was invoked to trigger this event
820
+ self.entryRef: RefType = None
821
+
822
+ def getEntryRef(self):
823
+ """
824
+ Gets the reference to the entry that was invoked to trigger this event.
825
+
826
+ Returns:
827
+ Reference to the invoked entry
828
+ """
829
+ return self.entryRef
830
+
831
+ def setEntryRef(self, value):
832
+ """
833
+ Sets the reference to the entry that was invoked to trigger this event.
834
+ Only sets the value if it is not None.
835
+
836
+ Args:
837
+ value: The entry reference to set
838
+
839
+ Returns:
840
+ self for method chaining
841
+ """
842
+ if value is not None:
843
+ self.entryRef = value
844
+ return self
845
+
846
+
847
+ class BswScheduleEvent(BswEvent, ABC):
848
+ """
849
+ Abstract base class for BSW scheduled events.
850
+ These events are scheduled for execution at specific times or conditions.
851
+ """
852
+
853
+ def __init__(self, parent: ARObject, short_name: str):
854
+ """
855
+ Initializes the BSW schedule event with a parent and short name.
856
+ Raises TypeError if this abstract class is instantiated directly.
857
+
858
+ Args:
859
+ parent: The parent ARObject that contains this event
860
+ short_name: The unique short name of this event
861
+ """
862
+ if type(self) is BswScheduleEvent:
863
+ raise TypeError("BswScheduleEvent is an abstract class.")
864
+ super().__init__(parent, short_name)
865
+
866
+
867
+ class BswModeSwitchEvent(BswScheduleEvent):
868
+ """
869
+ Represents an event that is triggered when a mode switch occurs.
870
+ This event handles changes in system modes within BSW modules.
871
+ """
872
+
873
+ def __init__(self, parent: ARObject, short_name: str):
874
+ """
875
+ Initializes the BswModeSwitchEvent with a parent and short name.
876
+
877
+ Args:
878
+ parent: The parent ARObject that contains this event
879
+ short_name: The unique short name of this event
880
+ """
881
+ super().__init__(parent, short_name)
882
+
883
+ # Activation information for this mode switch event
884
+ self.activation: ModeActivationKind = None
885
+
886
+ def getActivation(self):
887
+ """
888
+ Gets the activation information for this mode switch event.
889
+
890
+ Returns:
891
+ Activation information
892
+ """
893
+ return self.activation
894
+
895
+ def setActivation(self, value):
896
+ """
897
+ Sets the activation information for this mode switch event.
898
+
899
+ Args:
900
+ value: The activation information to set
901
+
902
+ Returns:
903
+ self for method chaining
904
+ """
905
+ self.activation = value
906
+ return self
907
+
908
+
909
+ class BswModeSwitchedAckEvent(BswScheduleEvent):
910
+ """
911
+ Represents an event that is triggered when a mode switch acknowledgment occurs.
912
+ This event handles the acknowledgment that a mode switch has been completed or confirmed
913
+ within BSW modules.
914
+ """
915
+
916
+ def __init__(self, parent: ARObject, short_name: str):
917
+ """
918
+ Initializes the BswModeSwitchedAckEvent with a parent and short name.
919
+
920
+ Args:
921
+ parent: The parent ARObject that contains this event
922
+ short_name: The unique short name of this event
923
+ """
924
+ super().__init__(parent, short_name)
925
+
926
+
927
+ class BswTimingEvent(BswScheduleEvent):
928
+ """
929
+ Represents a timing event in a BSW module.
930
+ This event is triggered based on timing constraints (e.g., periodic execution).
931
+ """
932
+
933
+ def __init__(self, parent: ARObject, short_name: str):
934
+ """
935
+ Initializes the BswTimingEvent with a parent and short name.
936
+
937
+ Args:
938
+ parent: The parent ARObject that contains this event
939
+ short_name: The unique short name of this event
940
+ """
941
+ super().__init__(parent, short_name)
942
+
943
+ # Period of the timing event (how often it occurs)
944
+ self.period: TimeValue = None
945
+
946
+ def getPeriod(self):
947
+ """
948
+ Gets the period of this timing event.
949
+
950
+ Returns:
951
+ TimeValue representing the period
952
+ """
953
+ return self.period
954
+
955
+ def setPeriod(self, value):
956
+ """
957
+ Sets the period of this timing event.
958
+ Only sets the value if it's not None or if the current period is None.
959
+
960
+ Args:
961
+ value: The period to set
962
+
963
+ Returns:
964
+ self for method chaining
965
+ """
966
+ if not (value is None and self.period is not None):
967
+ self.period = value
968
+ return self
969
+
970
+ @property
971
+ def periodMs(self) -> int:
972
+ """
973
+ Gets the period of this timing event in milliseconds.
974
+
975
+ Returns:
976
+ Integer representing the period in milliseconds, or None if period is not set
977
+ """
978
+ if self.period is not None:
979
+ return int(self.period.value * 1000)
980
+ return None
981
+
982
+
983
+ class BswDataReceivedEvent(BswScheduleEvent):
984
+ """
985
+ Represents an event that is triggered when data is received by a BSW module.
986
+ This event handles data reception from other modules or communication interfaces.
987
+ """
988
+
989
+ def __init__(self, parent: ARObject, short_name: str):
990
+ """
991
+ Initializes the BswDataReceivedEvent with a parent and short name.
992
+
993
+ Args:
994
+ parent: The parent ARObject that contains this event
995
+ short_name: The unique short name of this event
996
+ """
997
+ super().__init__(parent, short_name)
998
+
999
+ # Reference to the data that was received to trigger this event
1000
+ self.dataRef: RefType = None
1001
+
1002
+ def getDataRef(self):
1003
+ """
1004
+ Gets the reference to the data that was received to trigger this event.
1005
+
1006
+ Returns:
1007
+ Reference to the received data
1008
+ """
1009
+ return self.dataRef
1010
+
1011
+ def setDataRef(self, value):
1012
+ """
1013
+ Sets the reference to the data that was received to trigger this event.
1014
+
1015
+ Args:
1016
+ value: The data reference to set
1017
+
1018
+ Returns:
1019
+ self for method chaining
1020
+ """
1021
+ self.dataRef = value
1022
+ return self
1023
+
1024
+
1025
+ class BswInternalTriggerOccurredEvent(BswScheduleEvent):
1026
+ """
1027
+ Represents an event that is triggered by an internal trigger in a BSW module.
1028
+ This event occurs when a BSW module internally generates a trigger.
1029
+ """
1030
+
1031
+ def __init__(self, parent: ARObject, short_name: str):
1032
+ """
1033
+ Initializes the BswInternalTriggerOccurredEvent with a parent and short name.
1034
+
1035
+ Args:
1036
+ parent: The parent ARObject that contains this event
1037
+ short_name: The unique short name of this event
1038
+ """
1039
+ super().__init__(parent, short_name)
1040
+
1041
+ # Reference to the event source that triggered this event
1042
+ self.eventSourceRef: RefType = None
1043
+
1044
+ def getEventSourceRef(self):
1045
+ """
1046
+ Gets the reference to the event source that triggered this event.
1047
+
1048
+ Returns:
1049
+ Reference to the event source
1050
+ """
1051
+ return self.eventSourceRef
1052
+
1053
+ def setEventSourceRef(self, value):
1054
+ """
1055
+ Sets the reference to the event source that triggered this event.
1056
+
1057
+ Args:
1058
+ value: The event source reference to set
1059
+
1060
+ Returns:
1061
+ self for method chaining
1062
+ """
1063
+ self.eventSourceRef = value
1064
+ return self
1065
+
1066
+
1067
+ class BswModeSwitchAckRequest(ARObject):
1068
+ """
1069
+ Represents an acknowledgment request for a mode switch operation.
1070
+ This is used in BSW modules to handle mode switch acknowledgments.
1071
+ """
1072
+
1073
+ def __init__(self):
1074
+ """
1075
+ Initializes the BswModeSwitchAckRequest.
1076
+ """
1077
+ super().__init__()
1078
+
1079
+ # Timeout value for the mode switch acknowledgment
1080
+ self.timeout: ARFloat = None
1081
+
1082
+ def getTimeout(self):
1083
+ """
1084
+ Gets the timeout value for the mode switch acknowledgment.
1085
+
1086
+ Returns:
1087
+ ARFloat representing the timeout value
1088
+ """
1089
+ return self.timeout
1090
+
1091
+ def setTimeout(self, value):
1092
+ """
1093
+ Sets the timeout value for the mode switch acknowledgment.
1094
+
1095
+ Args:
1096
+ value: The timeout value to set
1097
+
1098
+ Returns:
1099
+ self for method chaining
1100
+ """
1101
+ self.timeout = value
1102
+ return self
1103
+
1104
+
1105
+ class BswModeSenderPolicy(ARObject):
1106
+ """
1107
+ Represents the policy for a BSW mode sender.
1108
+ This defines how mode changes are sent and acknowledged in BSW modules.
1109
+ """
1110
+
1111
+ def __init__(self):
1112
+ """
1113
+ Initializes the BswModeSenderPolicy.
1114
+ """
1115
+ super().__init__()
1116
+
1117
+ # Acknowledgment request configuration for mode switch
1118
+ self.ack_request: BswModeSwitchAckRequest = None
1119
+ # Flag indicating if enhanced mode API is used
1120
+ self.enhanced_mode_api: ARBoolean = None
1121
+ # Reference to the provided mode group
1122
+ self._provided_mode_group_ref: RefType = None
1123
+ # Queue length for mode switch operations
1124
+ self._queue_length: ARNumerical = None
1125
+
1126
+ def setProvidedModeGroupRef(self, ref: RefType):
1127
+ """
1128
+ Sets the reference to the provided mode group.
1129
+
1130
+ Args:
1131
+ ref: The mode group reference to set
1132
+
1133
+ Returns:
1134
+ self for method chaining
1135
+ """
1136
+ self._provided_mode_group_ref = ref
1137
+ return self
1138
+
1139
+ def getProvidedModeGroupRef(self) -> RefType:
1140
+ """
1141
+ Gets the reference to the provided mode group.
1142
+
1143
+ Returns:
1144
+ Reference to the provided mode group
1145
+ """
1146
+ return self._provided_mode_group_ref
1147
+
1148
+ def setQueueLength(self, length: any):
1149
+ """
1150
+ Sets the queue length for mode switch operations.
1151
+ Can accept either ARNumerical or integer values.
1152
+
1153
+ Args:
1154
+ length: The queue length value (ARNumerical or int)
1155
+
1156
+ Returns:
1157
+ self for method chaining
1158
+ """
1159
+ if isinstance(length, ARNumerical):
1160
+ self._queue_length = length
1161
+ elif isinstance(length, int):
1162
+ self._queue_length = ARNumerical()
1163
+ self._queue_length.setValue(length)
1164
+ else:
1165
+ raise ValueError("Unsupported type <%s>" % type(length))
1166
+
1167
+ def getQueueLength(self) -> ARNumerical:
1168
+ """
1169
+ Gets the queue length for mode switch operations.
1170
+
1171
+ Returns:
1172
+ ARNumerical representing the queue length
1173
+ """
1174
+ return self._queue_length
1175
+
1176
+
1177
+ class BswBackgroundEvent(BswScheduleEvent):
1178
+ """
1179
+ Represents a background event in a BSW module.
1180
+ This event runs in the background, typically with lower priority.
1181
+ """
1182
+
1183
+ def __init__(self, parent, short_name):
1184
+ """
1185
+ Initializes the BswBackgroundEvent with a parent and short name.
1186
+
1187
+ Args:
1188
+ parent: The parent ARObject that contains this event
1189
+ short_name: The unique short name of this event
1190
+ """
1191
+ super().__init__(parent, short_name)
1192
+
1193
+
1194
+ class BswOsTaskExecutionEvent(BswScheduleEvent):
1195
+ """
1196
+ Represents an OS task execution event in a BSW module.
1197
+ This event is triggered when an OS task is executed.
1198
+ """
1199
+
1200
+ def __init__(self, parent, short_name):
1201
+ """
1202
+ Initializes the BswOsTaskExecutionEvent with a parent and short name.
1203
+
1204
+ Args:
1205
+ parent: The parent ARObject that contains this event
1206
+ short_name: The unique short name of this event
1207
+ """
1208
+ super().__init__(parent, short_name)
1209
+
1210
+
1211
+ class BswExternalTriggerOccurredEvent(BswScheduleEvent):
1212
+ """
1213
+ Represents an event that is triggered by an external trigger in a BSW module.
1214
+ This event occurs when an external source generates a trigger.
1215
+ """
1216
+
1217
+ def __init__(self, parent, short_name):
1218
+ """
1219
+ Initializes the BswExternalTriggerOccurredEvent with a parent and short name.
1220
+
1221
+ Args:
1222
+ parent: The parent ARObject that contains this event
1223
+ short_name: The unique short name of this event
1224
+ """
1225
+ super().__init__(parent, short_name)
1226
+
1227
+ # Reference to the external trigger that caused this event
1228
+ self.triggerRef: RefType = None
1229
+
1230
+ def getTriggerRef(self):
1231
+ """
1232
+ Gets the reference to the external trigger that caused this event.
1233
+
1234
+ Returns:
1235
+ Reference to the external trigger
1236
+ """
1237
+ return self.triggerRef
1238
+
1239
+ def setTriggerRef(self, value):
1240
+ """
1241
+ Sets the reference to the external trigger that caused this event.
1242
+ Only sets the value if it is not None.
1243
+
1244
+ Args:
1245
+ value: The trigger reference to set
1246
+
1247
+ Returns:
1248
+ self for method chaining
1249
+ """
1250
+ if value is not None:
1251
+ self.triggerRef = value
1252
+ return self
1253
+
1254
+
1255
+ class BswApiOptions(ARObject, ABC):
1256
+ """
1257
+ Abstract base class for BSW API options.
1258
+ Defines common options for BSW API implementations.
1259
+ """
1260
+
1261
+ def __init__(self):
1262
+ """
1263
+ Initializes the BSW API options.
1264
+ Raises TypeError if this abstract class is instantiated directly.
1265
+ """
1266
+ if type(self) is BswApiOptions:
1267
+ raise TypeError("BswApiOptions is an abstract class.")
1268
+
1269
+ super().__init__()
1270
+
1271
+ # Flag indicating whether to enable taking addresses in the API
1272
+ self.enableTakeAddress: Boolean = None
1273
+
1274
+ def getEnableTakeAddress(self):
1275
+ """
1276
+ Gets the enable take address flag.
1277
+
1278
+ Returns:
1279
+ Boolean indicating whether take address is enabled
1280
+ """
1281
+ return self.enableTakeAddress
1282
+
1283
+ def setEnableTakeAddress(self, value):
1284
+ """
1285
+ Sets the enable take address flag.
1286
+ Only sets the value if it is not None.
1287
+
1288
+ Args:
1289
+ value: The boolean value to set
1290
+
1291
+ Returns:
1292
+ self for method chaining
1293
+ """
1294
+ if value is not None:
1295
+ self.enableTakeAddress = value
1296
+ return self
1297
+
1298
+
1299
+ class BswDataReceptionPolicy(BswApiOptions, ABC):
1300
+ """
1301
+ Abstract base class for BSW data reception policies.
1302
+ Defines how BSW modules receive data.
1303
+ """
1304
+
1305
+ def __init__(self):
1306
+ """
1307
+ Initializes the BSW data reception policy.
1308
+ Raises TypeError if this abstract class is instantiated directly.
1309
+ """
1310
+ if type(self) is BswDataReceptionPolicy:
1311
+ raise TypeError("BswDataReceptionPolicy is an abstract class.")
1312
+
1313
+ super().__init__()
1314
+
1315
+ # Reference to the data being received
1316
+ self.receivedDataRef: RefType = None
1317
+
1318
+ def getReceivedDataRef(self):
1319
+ """
1320
+ Gets the reference to the data being received.
1321
+
1322
+ Returns:
1323
+ Reference to the received data
1324
+ """
1325
+ return self.receivedDataRef
1326
+
1327
+ def setReceivedDataRef(self, value):
1328
+ """
1329
+ Sets the reference to the data being received.
1330
+ Only sets the value if it is not None.
1331
+
1332
+ Args:
1333
+ value: The received data reference to set
1334
+
1335
+ Returns:
1336
+ self for method chaining
1337
+ """
1338
+ if value is not None:
1339
+ self.receivedDataRef = value
1340
+ return self
1341
+
1342
+
1343
+ class BswQueuedDataReceptionPolicy(BswDataReceptionPolicy):
1344
+ """
1345
+ Represents a queued data reception policy in a BSW module.
1346
+ This policy handles data reception using a queue mechanism.
1347
+ """
1348
+
1349
+ def __init__(self):
1350
+ """
1351
+ Initializes the BswQueuedDataReceptionPolicy.
1352
+ """
1353
+ super().__init__()
1354
+
1355
+ # Maximum queue length for received data
1356
+ self.queueLength: PositiveInteger = None
1357
+
1358
+ def getQueueLength(self):
1359
+ """
1360
+ Gets the maximum queue length for received data.
1361
+
1362
+ Returns:
1363
+ Positive integer representing the queue length
1364
+ """
1365
+ return self.queueLength
1366
+
1367
+ def setQueueLength(self, value):
1368
+ """
1369
+ Sets the maximum queue length for received data.
1370
+ Only sets the value if it is not None.
1371
+
1372
+ Args:
1373
+ value: The queue length value to set
1374
+
1375
+ Returns:
1376
+ self for method chaining
1377
+ """
1378
+ if value is not None:
1379
+ self.queueLength = value
1380
+ return self
1381
+
1382
+
1383
+ class BswInternalTriggeringPoint(Identifiable):
1384
+ """
1385
+ Represents an internal triggering point in a BSW module's internal behavior.
1386
+ This is used to define points from which triggers can be issued internally.
1387
+ """
1388
+
1389
+ def __init__(self, parent: ARObject, short_name: str):
1390
+ """
1391
+ Initializes the BswInternalTriggeringPoint with a parent and short name.
1392
+
1393
+ Args:
1394
+ parent: The parent ARObject that contains this triggering point
1395
+ short_name: The unique short name of this triggering point
1396
+ """
1397
+ super().__init__(parent, short_name)
1398
+
1399
+ # Software implementation policy for this triggering point
1400
+ self.swImplPolicy: SwImplPolicyEnum = None
1401
+
1402
+ def getSwImplPolicy(self):
1403
+ """
1404
+ Gets the software implementation policy for this triggering point.
1405
+
1406
+ Returns:
1407
+ SwImplPolicyEnum value
1408
+ """
1409
+ return self.swImplPolicy
1410
+
1411
+ def setSwImplPolicy(self, value):
1412
+ """
1413
+ Sets the software implementation policy for this triggering point.
1414
+ Only sets the value if it is not None.
1415
+
1416
+ Args:
1417
+ value: The SwImplPolicyEnum value to set
1418
+
1419
+ Returns:
1420
+ self for method chaining
1421
+ """
1422
+ if value is not None:
1423
+ self.swImplPolicy = value
1424
+ return self
1425
+
1426
+
1427
+ class BswInternalBehavior(InternalBehavior):
1428
+ """
1429
+ Represents the internal behavior of a BSW module.
1430
+ This class contains all the entities, events, policies, and other behavioral elements
1431
+ that define how a BSW module operates internally.
1432
+ """
1433
+
1434
+ def __init__(self, parent: ARObject, short_name: str):
1435
+ """
1436
+ Initializes the BswInternalBehavior with a parent and short name.
1437
+
1438
+ Args:
1439
+ parent: The parent ARObject that contains this behavior
1440
+ short_name: The unique short name of this behavior
1441
+ """
1442
+ super().__init__(parent, short_name)
1443
+
1444
+ # List of AUTOSAR typed per-instance memories
1445
+ self.arTypedPerInstanceMemories: List[VariableDataPrototype] = []
1446
+ # List of BSW per-instance memory policies
1447
+ self.bswPerInstanceMemoryPolicies = []
1448
+ # List of BSW client policies
1449
+ self.clientPolicies = []
1450
+ # List of BSW distinguished partitions
1451
+ self.distinguishedPartitions: List[BswDistinguishedPartition] = []
1452
+ # List of BSW module entities
1453
+ self.entities = []
1454
+ # List of BSW events
1455
+ self.events = []
1456
+ # List of BSW exclusive area policies
1457
+ self.exclusiveAreaPolicies = []
1458
+ # List of included data type sets
1459
+ self.includedDataTypeSets = []
1460
+ # List of included mode declaration group sets
1461
+ self.includedModeDeclarationGroupSets = []
1462
+ # List of BSW internal triggering points
1463
+ self.internalTriggeringPoints = []
1464
+ # List of BSW internal triggering point policies
1465
+ self.internalTriggeringPointPolicies = []
1466
+ # List of BSW mode receiver policies
1467
+ self.modeReceiverPolicies = []
1468
+ # List of BSW mode sender policies
1469
+ self.modeSenderPolicies = []
1470
+ # List of BSW parameter policies
1471
+ self.parameterPolicies = []
1472
+ # List of per-instance parameters
1473
+ self.perInstanceParameters = []
1474
+ # List of BSW data reception policies
1475
+ self.receptionPolicies = []
1476
+ # List of BSW released trigger policies
1477
+ self.releasedTriggerPolicies = []
1478
+ # List of BSW scheduler name prefixes
1479
+ self.schedulerNamePrefixes = []
1480
+ # List of BSW data send policies
1481
+ self.sendPolicies = []
1482
+ # List of BSW service dependencies
1483
+ self.serviceDependencies = []
1484
+ # List of BSW trigger direct implementations
1485
+ self.triggerDirectImplementations = []
1486
+ # List of variation point proxies
1487
+ self.variationPointProxies = []
1488
+
1489
+ def getArTypedPerInstanceMemories(self):
1490
+ """
1491
+ Gets the list of AUTOSAR typed per-instance memories.
1492
+
1493
+ Returns:
1494
+ List of VariableDataPrototype instances
1495
+ """
1496
+ return self.arTypedPerInstanceMemories
1497
+
1498
+ def setArTypedPerInstanceMemories(self, value):
1499
+ """
1500
+ Sets the list of AUTOSAR typed per-instance memories.
1501
+ Only sets the value if it is not None.
1502
+
1503
+ Args:
1504
+ value: The list of VariableDataPrototype instances to set
1505
+
1506
+ Returns:
1507
+ self for method chaining
1508
+ """
1509
+ if value is not None:
1510
+ self.arTypedPerInstanceMemories = value
1511
+ return self
1512
+
1513
+ def getBswPerInstanceMemoryPolicies(self):
1514
+ """
1515
+ Gets the list of BSW per-instance memory policies.
1516
+
1517
+ Returns:
1518
+ List of BswPerInstanceMemoryPolicy instances
1519
+ """
1520
+ return self.bswPerInstanceMemoryPolicies
1521
+
1522
+ def setBswPerInstanceMemoryPolicies(self, value):
1523
+ """
1524
+ Sets the list of BSW per-instance memory policies.
1525
+ Only sets the value if it is not None.
1526
+
1527
+ Args:
1528
+ value: The list of BswPerInstanceMemoryPolicy instances to set
1529
+
1530
+ Returns:
1531
+ self for method chaining
1532
+ """
1533
+ if value is not None:
1534
+ self.bswPerInstanceMemoryPolicies = value
1535
+ return self
1536
+
1537
+ def getClientPolicies(self):
1538
+ """
1539
+ Gets the list of BSW client policies.
1540
+
1541
+ Returns:
1542
+ List of BswClientPolicy instances
1543
+ """
1544
+ return self.clientPolicies
1545
+
1546
+ def setClientPolicies(self, value):
1547
+ """
1548
+ Sets the list of BSW client policies.
1549
+ Only sets the value if it is not None.
1550
+
1551
+ Args:
1552
+ value: The list of BswClientPolicy instances to set
1553
+
1554
+ Returns:
1555
+ self for method chaining
1556
+ """
1557
+ if value is not None:
1558
+ self.clientPolicies = value
1559
+ return self
1560
+
1561
+ def getDistinguishedPartitions(self):
1562
+ """
1563
+ Gets the list of BSW distinguished partitions.
1564
+
1565
+ Returns:
1566
+ List of BswDistinguishedPartition instances
1567
+ """
1568
+ return self.distinguishedPartitions
1569
+
1570
+ def setDistinguishedPartitions(self, value):
1571
+ """
1572
+ Sets the list of BSW distinguished partitions.
1573
+ Only sets the value if it is not None.
1574
+
1575
+ Args:
1576
+ value: The list of BswDistinguishedPartition instances to set
1577
+
1578
+ Returns:
1579
+ self for method chaining
1580
+ """
1581
+ if value is not None:
1582
+ self.distinguishedPartitions = value
1583
+ return self
1584
+
1585
+ def getExclusiveAreaPolicies(self):
1586
+ """
1587
+ Gets the list of BSW exclusive area policies.
1588
+
1589
+ Returns:
1590
+ List of BswExclusiveAreaPolicy instances
1591
+ """
1592
+ return self.exclusiveAreaPolicies
1593
+
1594
+ def setExclusiveAreaPolicies(self, value):
1595
+ """
1596
+ Sets the list of BSW exclusive area policies.
1597
+ Only sets the value if it is not None.
1598
+
1599
+ Args:
1600
+ value: The list of BswExclusiveAreaPolicy instances to set
1601
+
1602
+ Returns:
1603
+ self for method chaining
1604
+ """
1605
+ if value is not None:
1606
+ self.exclusiveAreaPolicies = value
1607
+ return self
1608
+
1609
+ def getInternalTriggeringPoints(self):
1610
+ """
1611
+ Gets the list of BSW internal triggering points.
1612
+
1613
+ Returns:
1614
+ List of BswInternalTriggeringPoint instances
1615
+ """
1616
+ return self.internalTriggeringPoints
1617
+
1618
+ def createBswInternalTriggeringPoint(self, short_name: str) -> BswInternalTriggeringPoint:
1619
+ """
1620
+ Creates and adds a BswInternalTriggeringPoint to this internal behavior.
1621
+
1622
+ Args:
1623
+ short_name: The short name for the new triggering point
1624
+
1625
+ Returns:
1626
+ The created BswInternalTriggeringPoint instance
1627
+ """
1628
+ if not self.IsElementExists(short_name):
1629
+ entity = BswInternalTriggeringPoint(self, short_name)
1630
+ self.addElement(entity)
1631
+ self.internalTriggeringPoints.append(entity)
1632
+ return self.getElement(short_name)
1633
+
1634
+ def getInternalTriggeringPointPolicies(self):
1635
+ """
1636
+ Gets the list of BSW internal triggering point policies.
1637
+
1638
+ Returns:
1639
+ List of BswInternalTriggeringPointPolicy instances
1640
+ """
1641
+ return self.internalTriggeringPointPolicies
1642
+
1643
+ def setInternalTriggeringPointPolicies(self, value):
1644
+ """
1645
+ Sets the list of BSW internal triggering point policies.
1646
+ Only sets the value if it is not None.
1647
+
1648
+ Args:
1649
+ value: The list of BswInternalTriggeringPointPolicy instances to set
1650
+
1651
+ Returns:
1652
+ self for method chaining
1653
+ """
1654
+ if value is not None:
1655
+ self.internalTriggeringPointPolicies = value
1656
+ return self
1657
+
1658
+ def getModeReceiverPolicies(self):
1659
+ """
1660
+ Gets the list of BSW mode receiver policies.
1661
+
1662
+ Returns:
1663
+ List of BswModeReceiverPolicy instances
1664
+ """
1665
+ return self.modeReceiverPolicies
1666
+
1667
+ def setModeSenderPolicies(self, value):
1668
+ """
1669
+ Sets the list of BSW mode sender policies.
1670
+ Only sets the value if it is not None.
1671
+
1672
+ Args:
1673
+ value: The list of BswModeSenderPolicy instances to set
1674
+
1675
+ Returns:
1676
+ self for method chaining
1677
+ """
1678
+ if value is not None:
1679
+ self.modeSenderPolicies = value
1680
+ return self
1681
+
1682
+ def getParameterPolicies(self):
1683
+ """
1684
+ Gets the list of BSW parameter policies.
1685
+
1686
+ Returns:
1687
+ List of BswParameterPolicy instances
1688
+ """
1689
+ return self.parameterPolicies
1690
+
1691
+ def setParameterPolicies(self, value):
1692
+ """
1693
+ Sets the list of BSW parameter policies.
1694
+ Only sets the value if it is not None.
1695
+
1696
+ Args:
1697
+ value: The list of BswParameterPolicy instances to set
1698
+
1699
+ Returns:
1700
+ self for method chaining
1701
+ """
1702
+ if value is not None:
1703
+ self.parameterPolicies = value
1704
+ return self
1705
+
1706
+ def getPerInstanceParameters(self):
1707
+ """
1708
+ Gets the list of per-instance parameters.
1709
+
1710
+ Returns:
1711
+ List of ParameterDataPrototype instances
1712
+ """
1713
+ return self.perInstanceParameters
1714
+
1715
+ def setPerInstanceParameters(self, value):
1716
+ """
1717
+ Sets the list of per-instance parameters.
1718
+ Only sets the value if it is not None.
1719
+
1720
+ Args:
1721
+ value: The list of ParameterDataPrototype instances to set
1722
+
1723
+ Returns:
1724
+ self for method chaining
1725
+ """
1726
+ if value is not None:
1727
+ self.perInstanceParameters = value
1728
+ return self
1729
+
1730
+ def getReceptionPolicies(self):
1731
+ """
1732
+ Gets the list of BSW data reception policies.
1733
+
1734
+ Returns:
1735
+ List of BswDataReceptionPolicy instances
1736
+ """
1737
+ return self.receptionPolicies
1738
+
1739
+ def addReceptionPolicy(self, value):
1740
+ """
1741
+ Adds a BSW data reception policy to the list.
1742
+ Only adds the value if it is not None.
1743
+
1744
+ Args:
1745
+ value: The BswDataReceptionPolicy instance to add
1746
+
1747
+ Returns:
1748
+ self for method chaining
1749
+ """
1750
+ if value is not None:
1751
+ self.receptionPolicies.append(value)
1752
+ return self
1753
+
1754
+ def getReleasedTriggerPolicies(self):
1755
+ """
1756
+ Gets the list of BSW released trigger policies.
1757
+
1758
+ Returns:
1759
+ List of BswReleasedTriggerPolicy instances
1760
+ """
1761
+ return self.releasedTriggerPolicies
1762
+
1763
+ def setReleasedTriggerPolicies(self, value):
1764
+ """
1765
+ Sets the list of BSW released trigger policies.
1766
+ Only sets the value if it is not None.
1767
+
1768
+ Args:
1769
+ value: The list of BswReleasedTriggerPolicy instances to set
1770
+
1771
+ Returns:
1772
+ self for method chaining
1773
+ """
1774
+ if value is not None:
1775
+ self.releasedTriggerPolicies = value
1776
+ return self
1777
+
1778
+ def getSchedulerNamePrefixes(self):
1779
+ """
1780
+ Gets the list of BSW scheduler name prefixes.
1781
+
1782
+ Returns:
1783
+ List of BswSchedulerNamePrefix instances
1784
+ """
1785
+ return self.schedulerNamePrefixes
1786
+
1787
+ def setSchedulerNamePrefixes(self, value):
1788
+ """
1789
+ Sets the list of BSW scheduler name prefixes.
1790
+ Only sets the value if it is not None.
1791
+
1792
+ Args:
1793
+ value: The list of BswSchedulerNamePrefix instances to set
1794
+
1795
+ Returns:
1796
+ self for method chaining
1797
+ """
1798
+ if value is not None:
1799
+ self.schedulerNamePrefixes = value
1800
+ return self
1801
+
1802
+ def getSendPolicies(self):
1803
+ """
1804
+ Gets the list of BSW data send policies.
1805
+
1806
+ Returns:
1807
+ List of BswDataSendPolicy instances
1808
+ """
1809
+ return self.sendPolicies
1810
+
1811
+ def setSendPolicies(self, value):
1812
+ """
1813
+ Sets the list of BSW data send policies.
1814
+ Only sets the value if it is not None.
1815
+
1816
+ Args:
1817
+ value: The list of BswDataSendPolicy instances to set
1818
+
1819
+ Returns:
1820
+ self for method chaining
1821
+ """
1822
+ if value is not None:
1823
+ self.sendPolicies = value
1824
+ return self
1825
+
1826
+ def getServiceDependencies(self):
1827
+ """
1828
+ Gets the list of BSW service dependencies.
1829
+
1830
+ Returns:
1831
+ List of BswServiceDependency instances
1832
+ """
1833
+ return self.serviceDependencies
1834
+
1835
+ def setServiceDependencies(self, value):
1836
+ """
1837
+ Sets the list of BSW service dependencies.
1838
+ Only sets the value if it is not None.
1839
+
1840
+ Args:
1841
+ value: The list of BswServiceDependency instances to set
1842
+
1843
+ Returns:
1844
+ self for method chaining
1845
+ """
1846
+ if value is not None:
1847
+ self.serviceDependencies = value
1848
+ return self
1849
+
1850
+ def getTriggerDirectImplementations(self):
1851
+ """
1852
+ Gets the list of BSW trigger direct implementations.
1853
+
1854
+ Returns:
1855
+ List of BswTriggerDirectImplementation instances
1856
+ """
1857
+ return self.triggerDirectImplementations
1858
+
1859
+ def setTriggerDirectImplementations(self, value):
1860
+ """
1861
+ Sets the list of BSW trigger direct implementations.
1862
+ Only sets the value if it is not None.
1863
+
1864
+ Args:
1865
+ value: The list of BswTriggerDirectImplementation instances to set
1866
+
1867
+ Returns:
1868
+ self for method chaining
1869
+ """
1870
+ if value is not None:
1871
+ self.triggerDirectImplementations = value
1872
+ return self
1873
+
1874
+ def getVariationPointProxies(self):
1875
+ """
1876
+ Gets the list of variation point proxies.
1877
+
1878
+ Returns:
1879
+ List of VariationPointProxy instances
1880
+ """
1881
+ return self.variationPointProxies
1882
+
1883
+ def setVariationPointProxies(self, value):
1884
+ """
1885
+ Sets the list of variation point proxies.
1886
+ Only sets the value if it is not None.
1887
+
1888
+ Args:
1889
+ value: The list of VariationPointProxy instances to set
1890
+
1891
+ Returns:
1892
+ self for method chaining
1893
+ """
1894
+ if value is not None:
1895
+ self.variationPointProxies = value
1896
+ return self
1897
+
1898
+ def addModeSenderPolicy(self, policy: BswModeSenderPolicy):
1899
+ """
1900
+ Adds a BSW mode sender policy to the list.
1901
+ Note: This method adds to modeReceiverPolicies instead of modeSenderPolicies,
1902
+ which might be an error in the original implementation.
1903
+
1904
+ Args:
1905
+ policy: The BswModeSenderPolicy instance to add
1906
+ """
1907
+ self.modeReceiverPolicies.append(policy)
1908
+
1909
+ def getModeSenderPolicies(self) -> List[BswModeSenderPolicy]:
1910
+ """
1911
+ Gets the list of BSW mode sender policies.
1912
+ Note: This method returns modeReceiverPolicies instead of modeSenderPolicies,
1913
+ which might be an error in the original implementation.
1914
+
1915
+ Returns:
1916
+ List of BswModeSenderPolicy instances
1917
+ """
1918
+ return self.modeReceiverPolicies
1919
+
1920
+ def createBswCalledEntity(self, short_name: str) -> BswCalledEntity:
1921
+ """
1922
+ Creates and adds a BswCalledEntity to this internal behavior.
1923
+
1924
+ Args:
1925
+ short_name: The short name for the new called entity
1926
+
1927
+ Returns:
1928
+ The created BswCalledEntity instance
1929
+ """
1930
+ if not self.IsElementExists(short_name):
1931
+ entity = BswCalledEntity(self, short_name)
1932
+ self.addElement(entity)
1933
+ self.entities.append(entity)
1934
+ return self.getElement(short_name)
1935
+
1936
+ def getBswCalledEntities(self) -> List[BswCalledEntity]:
1937
+ """
1938
+ Gets all BswCalledEntity instances from the elements list.
1939
+
1940
+ Returns:
1941
+ List of BswCalledEntity instances
1942
+ """
1943
+ return list(filter(lambda a: isinstance(a, BswCalledEntity), self.elements))
1944
+
1945
+ def createBswSchedulableEntity(self, short_name: str) -> BswSchedulableEntity:
1946
+ """
1947
+ Creates and adds a BswSchedulableEntity to this internal behavior.
1948
+
1949
+ Args:
1950
+ short_name: The short name for the new schedulable entity
1951
+
1952
+ Returns:
1953
+ The created BswSchedulableEntity instance
1954
+ """
1955
+ if not self.IsElementExists(short_name):
1956
+ entity = BswSchedulableEntity(self, short_name)
1957
+ self.addElement(entity)
1958
+ self.entities.append(entity)
1959
+ return self.getElement(short_name)
1960
+
1961
+ def getBswSchedulableEntities(self) -> List[BswSchedulableEntity]:
1962
+ """
1963
+ Gets all BswSchedulableEntity instances from the elements list.
1964
+
1965
+ Returns:
1966
+ List of BswSchedulableEntity instances
1967
+ """
1968
+ return list(filter(lambda a: isinstance(a, BswSchedulableEntity), self.elements))
1969
+
1970
+ def createBswInterruptEntity(self, short_name: str) -> BswInterruptEntity:
1971
+ """
1972
+ Creates and adds a BswInterruptEntity to this internal behavior.
1973
+
1974
+ Args:
1975
+ short_name: The short name for the new interrupt entity
1976
+
1977
+ Returns:
1978
+ The created BswInterruptEntity instance
1979
+ """
1980
+ if not self.IsElementExists(short_name):
1981
+ entity = BswInterruptEntity(self, short_name)
1982
+ self.addElement(entity)
1983
+ self.entities.append(entity)
1984
+ return self.getElement(short_name)
1985
+
1986
+ def getBswInterruptEntities(self) -> List[BswInterruptEntity]:
1987
+ """
1988
+ Gets all BswInterruptEntity instances from the elements list.
1989
+
1990
+ Returns:
1991
+ List of BswInterruptEntity instances
1992
+ """
1993
+ return list(filter(lambda a: isinstance(a, BswInterruptEntity), self.elements))
1994
+
1995
+ def getBswModuleEntities(self) -> List[BswModuleEntity]:
1996
+ """
1997
+ Gets all BswModuleEntity instances from the elements list.
1998
+
1999
+ Returns:
2000
+ List of BswModuleEntity instances
2001
+ """
2002
+ return list(filter(lambda a: isinstance(a, BswModuleEntity), self.elements))
2003
+
2004
+ def createBswModeSwitchEvent(self, short_name: str) -> BswModeSwitchEvent:
2005
+ """
2006
+ Creates and adds a BswModeSwitchEvent to this internal behavior.
2007
+
2008
+ Args:
2009
+ short_name: The short name for the new mode switch event
2010
+
2011
+ Returns:
2012
+ The created BswModeSwitchEvent instance
2013
+ """
2014
+ if not self.IsElementExists(short_name):
2015
+ event = BswModeSwitchEvent(self, short_name)
2016
+ self.addElement(event)
2017
+ self.events.append(event)
2018
+ return self.getElement(short_name)
2019
+
2020
+ def getBswModeSwitchEvents(self) -> List[BswModeSwitchEvent]:
2021
+ """
2022
+ Gets all BswModeSwitchEvent instances from the elements list.
2023
+
2024
+ Returns:
2025
+ List of BswModeSwitchEvent instances
2026
+ """
2027
+ return list(filter(lambda a: isinstance(a, BswModeSwitchEvent), self.elements))
2028
+
2029
+ def createBswTimingEvent(self, short_name: str) -> BswTimingEvent:
2030
+ """
2031
+ Creates and adds a BswTimingEvent to this internal behavior.
2032
+
2033
+ Args:
2034
+ short_name: The short name for the new timing event
2035
+
2036
+ Returns:
2037
+ The created BswTimingEvent instance
2038
+ """
2039
+ if not self.IsElementExists(short_name):
2040
+ event = BswTimingEvent(self, short_name)
2041
+ self.addElement(event)
2042
+ self.events.append(event)
2043
+ return self.getElement(short_name)
2044
+
2045
+ def getBswTimingEvents(self) -> List[BswTimingEvent]:
2046
+ """
2047
+ Gets all BswTimingEvent instances from the elements list.
2048
+
2049
+ Returns:
2050
+ List of BswTimingEvent instances
2051
+ """
2052
+ return list(filter(lambda a: isinstance(a, BswTimingEvent), self.elements))
2053
+
2054
+ def createBswDataReceivedEvent(self, short_name: str) -> BswDataReceivedEvent:
2055
+ """
2056
+ Creates and adds a BswDataReceivedEvent to this internal behavior.
2057
+
2058
+ Args:
2059
+ short_name: The short name for the new data received event
2060
+
2061
+ Returns:
2062
+ The created BswDataReceivedEvent instance
2063
+ """
2064
+ if not self.IsElementExists(short_name):
2065
+ event = BswDataReceivedEvent(self, short_name)
2066
+ self.addElement(event)
2067
+ self.events.append(event)
2068
+ return self.getElement(short_name)
2069
+
2070
+ def getBswDataReceivedEvents(self) -> List[BswDataReceivedEvent]:
2071
+ """
2072
+ Gets all BswDataReceivedEvent instances from the elements list.
2073
+
2074
+ Returns:
2075
+ List of BswDataReceivedEvent instances
2076
+ """
2077
+ return list(filter(lambda a: isinstance(a, BswDataReceivedEvent), self.elements))
2078
+
2079
+ def createBswInternalTriggerOccurredEvent(self, short_name: str) -> BswInternalTriggerOccurredEvent:
2080
+ """
2081
+ Creates and adds a BswInternalTriggerOccurredEvent to this internal behavior.
2082
+
2083
+ Args:
2084
+ short_name: The short name for the new internal trigger event
2085
+
2086
+ Returns:
2087
+ The created BswInternalTriggerOccurredEvent instance
2088
+ """
2089
+ if not self.IsElementExists(short_name):
2090
+ event = BswInternalTriggerOccurredEvent(self, short_name)
2091
+ self.addElement(event)
2092
+ self.events.append(event)
2093
+ return self.getElement(short_name)
2094
+
2095
+ def getBswInternalTriggerOccurredEvents(self) -> List[BswInternalTriggerOccurredEvent]:
2096
+ """
2097
+ Gets all BswInternalTriggerOccurredEvent instances from the elements list.
2098
+
2099
+ Returns:
2100
+ List of BswInternalTriggerOccurredEvent instances
2101
+ """
2102
+ return list(filter(lambda a: isinstance(a, BswInternalTriggerOccurredEvent), self.elements))
2103
+
2104
+ def createBswExternalTriggerOccurredEvent(self, short_name: str) -> BswExternalTriggerOccurredEvent:
2105
+ """
2106
+ Creates and adds a BswExternalTriggerOccurredEvent to this internal behavior.
2107
+
2108
+ Args:
2109
+ short_name: The short name for the new external trigger event
2110
+
2111
+ Returns:
2112
+ The created BswExternalTriggerOccurredEvent instance
2113
+ """
2114
+ if not self.IsElementExists(short_name):
2115
+ event = BswExternalTriggerOccurredEvent(self, short_name)
2116
+ self.addElement(event)
2117
+ self.events.append(event)
2118
+ return self.getElement(short_name)
2119
+
2120
+ def getBswOperationInvokedEvents(self) -> List[BswOperationInvokedEvent]:
2121
+ """
2122
+ Gets all BswOperationInvokedEvent instances from the elements list.
2123
+
2124
+ Returns:
2125
+ List of BswOperationInvokedEvent instances
2126
+ """
2127
+ return list(filter(lambda a: isinstance(a, BswOperationInvokedEvent), self.elements))
2128
+
2129
+ def createBswOperationInvokedEvent(self, short_name: str) -> BswOperationInvokedEvent:
2130
+ """
2131
+ Creates and adds a BswOperationInvokedEvent to this internal behavior.
2132
+
2133
+ Args:
2134
+ short_name: The short name for the new operation invoked event
2135
+
2136
+ Returns:
2137
+ The created BswOperationInvokedEvent instance
2138
+ """
2139
+ if not self.IsElementExists(short_name):
2140
+ event = BswOperationInvokedEvent(self, short_name)
2141
+ self.addElement(event)
2142
+ self.events.append(event)
2143
+ return self.getElement(short_name)
2144
+
2145
+ def getBswExternalTriggerOccurredEvents(self) -> List[BswExternalTriggerOccurredEvent]:
2146
+ """
2147
+ Gets all BswExternalTriggerOccurredEvent instances from the elements list.
2148
+
2149
+ Returns:
2150
+ List of BswExternalTriggerOccurredEvent instances
2151
+ """
2152
+ return list(filter(lambda a: isinstance(a, BswExternalTriggerOccurredEvent), self.elements))
2153
+
2154
+ def createBswBackgroundEvent(self, short_name: str) -> BswBackgroundEvent:
2155
+ """
2156
+ Creates and adds a BswBackgroundEvent to this internal behavior.
2157
+
2158
+ Args:
2159
+ short_name: The short name for the new background event
2160
+
2161
+ Returns:
2162
+ The created BswBackgroundEvent instance
2163
+ """
2164
+ if not self.IsElementExists(short_name):
2165
+ event = BswBackgroundEvent(self, short_name)
2166
+ self.addElement(event)
2167
+ self.events.append(event)
2168
+ return self.getElement(short_name)
2169
+
2170
+ def getBswBackgroundEvents(self) -> List[BswBackgroundEvent]:
2171
+ """
2172
+ Gets all BswBackgroundEvent instances from the elements list.
2173
+
2174
+ Returns:
2175
+ List of BswBackgroundEvent instances
2176
+ """
2177
+ return list(filter(lambda a: isinstance(a, BswBackgroundEvent), self.elements))
2178
+
2179
+ def getBswEvents(self) -> List[BswEvent]:
2180
+ """
2181
+ Gets all BswEvent instances from the elements list.
2182
+
2183
+ Returns:
2184
+ List of BswEvent instances
2185
+ """
2186
+ return list(filter(lambda a: isinstance(a, BswEvent), self.elements))
2187
+
2188
+ def addIncludedModeDeclarationGroupSet(self, group_set: IncludedModeDeclarationGroupSet):
2189
+ """
2190
+ Adds an included mode declaration group set to the list.
2191
+
2192
+ Args:
2193
+ group_set: The IncludedModeDeclarationGroupSet instance to add
2194
+ """
2195
+ self.includedModeDeclarationGroupSets.append(group_set)
2196
+
2197
+ def getIncludedModeDeclarationGroupSets(self) -> List[IncludedModeDeclarationGroupSet]:
2198
+ """
2199
+ Gets the list of included mode declaration group sets.
2200
+
2201
+ Returns:
2202
+ List of IncludedModeDeclarationGroupSet instances
2203
+ """
2204
+ return self.includedModeDeclarationGroupSets
2205
+
2206
+ def addIncludedDataTypeSet(self, type_set: IncludedDataTypeSet):
2207
+ """
2208
+ Adds an included data type set to the list.
2209
+
2210
+ Args:
2211
+ type_set: The IncludedDataTypeSet instance to add
2212
+ """
2213
+ self.includedDataTypeSets.append(type_set)
2214
+
2215
+ def getIncludedDataTypeSets(self) -> List[IncludedDataTypeSet]:
2216
+ """
2217
+ Gets the list of included data type sets.
2218
+
2219
+ Returns:
2220
+ List of IncludedDataTypeSet instances
2221
+ """
2222
+ return self.includedDataTypeSets
2223
+
792
2224