armodel 1.8.6__py3-none-any.whl → 1.9.1__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 (431) hide show
  1. armodel/__init__.py +19 -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 +73 -73
  5. armodel/cli/connector_update_cli.py +73 -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 +74 -75
  9. armodel/cli/swc_list_cli.py +79 -79
  10. armodel/cli/system_signal_cli.py +73 -73
  11. armodel/cli/uuid_checker_cli.py +95 -95
  12. armodel/data_models/sw_connector.py +21 -21
  13. armodel/lib/__init__.py +4 -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/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRule.py +62 -0
  18. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRuleProps.py +83 -0
  19. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/StateDependentFirewall.py +62 -0
  20. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/__init__.py +5 -0
  21. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/__init__.py +3 -0
  22. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/__init__.py +3 -0
  23. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure/__init__.py +320 -0
  24. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +315 -296
  25. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswAsynchronousServerCallReturnsEvent.py +27 -0
  26. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswExclusiveAreaPolicy.py +22 -0
  27. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswInterruptEvent.py +18 -0
  28. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeManagerErrorEvent.py +18 -0
  29. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeReceiverPolicy.py +22 -0
  30. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswSchedulerNamePrefix.py +26 -0
  31. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswServiceDependency.py +27 -0
  32. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswTriggerDirectImplementation.py +21 -0
  33. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/RoleBasedBswModuleEntryAssignment.py +35 -0
  34. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2223 -792
  35. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +180 -60
  36. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationship.py +26 -0
  37. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipEnum.py +24 -0
  38. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipSet.py +24 -0
  39. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +586 -200
  40. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/ModeInBswModuleDescriptionInstanceRef.py +17 -0
  41. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +445 -179
  42. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__init__.py +0 -4
  43. armodel/models/M2/AUTOSARTemplates/CommonStructure/Constants/__init__.py +670 -0
  44. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +243 -96
  45. armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +273 -69
  46. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +756 -243
  47. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +336 -170
  48. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +430 -136
  49. armodel/models/M2/AUTOSARTemplates/CommonStructure/McGroups.py +53 -0
  50. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/ImplementationElementInParameterInstanceRef.py +15 -0
  51. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataAccessDetails.py +60 -0
  52. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataInstance.py +62 -0
  53. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McFunction.py +62 -0
  54. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McParameterElementGroup.py +39 -0
  55. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSupportData.py +62 -0
  56. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSwEmulationMethodSupport.py +37 -0
  57. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RoleBasedMcDataAssignment.py +61 -0
  58. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/McFunctionDataRefSet.py +39 -0
  59. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptAccessEnum.py +12 -0
  60. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptComponent.py +60 -0
  61. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptEnablerImplTypeEnum.py +11 -0
  62. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntity.py +62 -0
  63. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntityEvent.py +62 -0
  64. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionContext.py +38 -0
  65. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionControlEnum.py +11 -0
  66. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptPreparationEnum.py +11 -0
  67. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptServicePoint.py +62 -0
  68. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSupportData.py +111 -0
  69. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSwPrototypingAccess.py +62 -0
  70. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/__init__.py +27 -0
  71. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/__init__.py +19 -0
  72. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +424 -148
  73. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclarationExtra.py +73 -0
  74. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/ExecutionTime/__init__.py +132 -0
  75. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +93 -32
  76. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +78 -10
  77. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +239 -81
  78. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +68 -23
  79. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +274 -92
  80. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +135 -53
  81. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +2955 -839
  82. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationControlEnum.py +11 -0
  83. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationElementProps.py +37 -0
  84. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationEventProps.py +37 -0
  85. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationProps.py +38 -0
  86. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationPropsSet.py +38 -0
  87. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/__init__.py +13 -0
  88. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/AtpBlueprint.py +32 -0
  89. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/__init__.py +7 -0
  90. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +186 -73
  91. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +10 -0
  92. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/BlueprintGenerator.py +37 -0
  93. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/__init__.py +3 -0
  94. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/BlueprintMappingSet.py +38 -0
  95. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/__init__.py +3 -0
  96. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +126 -45
  97. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +5 -0
  98. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +290 -77
  99. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TDLETZoneClock.py +61 -0
  100. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClock.py +60 -0
  101. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClockSyncAccuracy.py +60 -0
  102. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/__init__.py +5 -0
  103. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInBswInstanceRef.py +14 -0
  104. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInSwcInstanceRef.py +14 -0
  105. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingCondition.py +61 -0
  106. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingConditionFormula.py +37 -0
  107. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingExtensionResource.py +60 -0
  108. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingModeInstance.py +61 -0
  109. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/__init__.py +15 -0
  110. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/AgeConstraint.py +57 -0
  111. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/EventTriggeringConstraint.py +203 -0
  112. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +193 -45
  113. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionTimeConstraint.py +101 -0
  114. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/LatencyTimingConstraint.py +100 -0
  115. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/OffsetConstraint.py +56 -0
  116. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationPointConstraint.py +57 -0
  117. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationTiming.py +117 -0
  118. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +59 -24
  119. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +69 -32
  120. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__init__.py +48 -0
  121. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/Traceable.py +11 -0
  122. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__init__.py +16 -0
  123. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +147 -52
  124. armodel/models/M2/AUTOSARTemplates/CommonStructure/__init__.py +17 -205
  125. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticCommonElement.py +11 -0
  126. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +137 -47
  127. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +10 -0
  128. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +285 -346
  129. armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1561 -1249
  130. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwAttributeValue.py +117 -0
  131. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +176 -59
  132. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementConnector.py +73 -0
  133. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +401 -145
  134. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +293 -92
  135. armodel/models/M2/AUTOSARTemplates/GenericStructure/DocumentationOnM1/__init__.py +39 -0
  136. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +1314 -816
  137. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/AnyInstanceRef.py +88 -0
  138. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +37 -17
  139. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +197 -74
  140. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +129 -51
  141. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Enumerations.py +16 -0
  142. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +599 -236
  143. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +902 -594
  144. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +395 -155
  145. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/AtpDefinition.py +36 -0
  146. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/__init__.py +7 -0
  147. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/AttributeValueVariationPoints/__init__.py +36 -0
  148. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/__init__.py +182 -0
  149. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/ApplicationAttributes/__init__.py +97 -0
  150. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +784 -712
  151. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py +186 -179
  152. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +363 -463
  153. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py +160 -154
  154. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +160 -100
  155. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +145 -145
  156. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +137 -131
  157. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +191 -184
  158. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/InstanceRefs.py +45 -39
  159. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +647 -641
  160. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py +21 -17
  161. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +84 -80
  162. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwComponentType.py +76 -0
  163. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +37 -34
  164. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +26 -21
  165. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +39 -34
  166. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +57 -52
  167. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +32 -24
  168. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +160 -155
  169. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +68 -63
  170. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py +46 -40
  171. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +91 -86
  172. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +219 -206
  173. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py +33 -26
  174. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +148 -137
  175. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +54 -49
  176. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +488 -489
  177. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +334 -259
  178. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +62 -58
  179. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +48 -29
  180. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{EcuResourceMapping.py → ECUResourceMapping.py} +48 -45
  181. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py +139 -122
  182. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +628 -344
  183. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__init__.py +2 -0
  184. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +267 -244
  185. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +30 -16
  186. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +750 -685
  187. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +375 -327
  188. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +924 -975
  189. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +92 -76
  190. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +669 -654
  191. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +193 -149
  192. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +110 -92
  193. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +205 -205
  194. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +1376 -1232
  195. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +800 -662
  196. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +269 -270
  197. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +172 -172
  198. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +90 -87
  199. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +899 -789
  200. armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +43 -35
  201. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +65 -52
  202. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +105 -83
  203. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +574 -524
  204. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +739 -658
  205. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +493 -458
  206. armodel/models/M2/MSR/AsamHdo/AdminData.py +150 -136
  207. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +95 -76
  208. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +367 -329
  209. armodel/models/M2/MSR/AsamHdo/Constraints/GlobalConstraints.py +58 -41
  210. armodel/models/M2/MSR/AsamHdo/SpecialData.py +99 -87
  211. armodel/models/M2/MSR/AsamHdo/Units.py +159 -105
  212. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +55 -57
  213. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +40 -41
  214. armodel/models/M2/MSR/DataDictionary/Axis.py +142 -144
  215. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +35 -36
  216. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +383 -351
  217. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +207 -209
  218. armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +31 -33
  219. armodel/models/M2/MSR/DataDictionary/SystemConstant.py +32 -0
  220. armodel/models/M2/MSR/Documentation/Annotation.py +40 -41
  221. armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +162 -163
  222. armodel/models/M2/MSR/Documentation/BlockElements/Formula/__init__.py +26 -0
  223. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +55 -56
  224. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +35 -30
  225. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +110 -110
  226. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +57 -44
  227. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +59 -58
  228. armodel/models/M2/MSR/Documentation/__init__.py +3 -3
  229. armodel/models/M2/MSR/documentation/__init__.py +3 -0
  230. armodel/models/__init__.py +86 -85
  231. armodel/models/utils/uuid_mgr.py +28 -29
  232. armodel/parser/__init__.py +2 -2
  233. armodel/parser/abstract_arxml_parser.py +323 -325
  234. armodel/parser/arxml_parser.py +5832 -5830
  235. armodel/parser/connector_xlsx_parser.py +192 -193
  236. armodel/parser/excel_parser.py +17 -17
  237. armodel/parser/file_parser.py +46 -46
  238. armodel/report/__init__.py +1 -1
  239. armodel/report/connector_xls_report.py +76 -77
  240. armodel/report/excel_report.py +41 -41
  241. armodel/transformer/abstract.py +6 -6
  242. armodel/transformer/admin_data.py +31 -31
  243. armodel/writer/__init__.py +1 -1
  244. armodel/writer/abstract_arxml_writer.py +146 -147
  245. armodel/writer/arxml_writer.py +5969 -5965
  246. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/METADATA +850 -656
  247. armodel-1.9.1.dist-info/RECORD +273 -0
  248. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/WHEEL +1 -1
  249. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/entry_points.txt +0 -1
  250. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info/licenses}/LICENSE +21 -21
  251. armodel/__pycache__/__init__.cpython-312.pyc +0 -0
  252. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswBehavior.cpython-312.pyc +0 -0
  253. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswImplementation.cpython-312.pyc +0 -0
  254. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswInterfaces.cpython-312.pyc +0 -0
  255. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswOverview.cpython-312.pyc +0 -0
  256. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  257. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HardwareConfiguration.cpython-312.pyc +0 -0
  258. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HeapUsage.cpython-312.pyc +0 -0
  259. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/MemorySectionUsage.cpython-312.pyc +0 -0
  260. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/SoftwareContext.cpython-312.pyc +0 -0
  261. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/StackUsage.cpython-312.pyc +0 -0
  262. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/__init__.cpython-312.pyc +0 -0
  263. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/PortPrototypeBlueprint.cpython-312.pyc +0 -0
  264. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/__init__.cpython-312.pyc +0 -0
  265. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/Keyword.cpython-312.pyc +0 -0
  266. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  267. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +0 -24
  268. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +0 -0
  269. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/ExecutionOrderConstraint.cpython-312.pyc +0 -0
  270. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingConstraint.cpython-312.pyc +0 -0
  271. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingExtensions.cpython-312.pyc +0 -0
  272. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/__init__.cpython-312.pyc +0 -0
  273. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__pycache__/__init__.cpython-312.pyc +0 -0
  274. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Filter.cpython-312.pyc +0 -0
  275. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/FlatMap.cpython-312.pyc +0 -0
  276. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Implementation.cpython-312.pyc +0 -0
  277. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ImplementationDataTypes.cpython-312.pyc +0 -0
  278. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/InternalBehavior.cpython-312.pyc +0 -0
  279. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ModeDeclaration.cpython-312.pyc +0 -0
  280. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ServiceNeeds.cpython-312.pyc +0 -0
  281. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/SwcBswMapping.cpython-312.pyc +0 -0
  282. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/TriggerDeclaration.cpython-312.pyc +0 -0
  283. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  284. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/DiagnosticContribution.cpython-312.pyc +0 -0
  285. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/__init__.cpython-312.pyc +0 -0
  286. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/HwElementCategory.cpython-312.pyc +0 -0
  287. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  288. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ARPackage.cpython-312.pyc +0 -0
  289. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ArObject.cpython-312.pyc +0 -0
  290. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ElementCollection.cpython-312.pyc +0 -0
  291. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/EngineeringObject.cpython-312.pyc +0 -0
  292. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/Identifiable.cpython-312.pyc +0 -0
  293. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/PrimitiveTypes.cpython-312.pyc +0 -0
  294. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/__init__.cpython-312.pyc +0 -0
  295. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/AbstractStructure.cpython-312.pyc +0 -0
  296. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/LifeCycles.cpython-312.pyc +0 -0
  297. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  298. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  299. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/__init__.cpython-312.pyc +0 -0
  300. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  301. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/__init__.cpython-312.pyc +0 -0
  302. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/DataPrototypes.cpython-312.pyc +0 -0
  303. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/Datatypes.cpython-312.pyc +0 -0
  304. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/__init__.cpython-312.pyc +0 -0
  305. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  306. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/__init__.cpython-312.pyc +0 -0
  307. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AccessCount.cpython-312.pyc +0 -0
  308. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AutosarVariableRef.cpython-312.pyc +0 -0
  309. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/DataElements.cpython-312.pyc +0 -0
  310. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/IncludedDataTypes.cpython-312.pyc +0 -0
  311. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/InstanceRefsUsage.cpython-312.pyc +0 -0
  312. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ModeDeclarationGroup.cpython-312.pyc +0 -0
  313. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PerInstanceMemory.cpython-312.pyc +0 -0
  314. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PortAPIOptions.cpython-312.pyc +0 -0
  315. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/RTEEvents.cpython-312.pyc +0 -0
  316. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServerCall.cpython-312.pyc +0 -0
  317. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServiceMapping.cpython-312.pyc +0 -0
  318. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/Trigger.cpython-312.pyc +0 -0
  319. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/__init__.cpython-312.pyc +0 -0
  320. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/Communication.cpython-312.pyc +0 -0
  321. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/EndToEndProtection.cpython-312.pyc +0 -0
  322. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/RPTScenario.cpython-312.pyc +0 -0
  323. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/SwcImplementation.cpython-312.pyc +0 -0
  324. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  325. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanCommunication.cpython-312.pyc +0 -0
  326. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanTopology.cpython-312.pyc +0 -0
  327. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/__init__.cpython-312.pyc +0 -0
  328. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetCommunication.cpython-312.pyc +0 -0
  329. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetFrame.cpython-312.pyc +0 -0
  330. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetTopology.cpython-312.pyc +0 -0
  331. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/NetworkEndpoint.cpython-312.pyc +0 -0
  332. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/ServiceInstances.cpython-312.pyc +0 -0
  333. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/__init__.cpython-312.pyc +0 -0
  334. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayCommunication.cpython-312.pyc +0 -0
  335. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayTopology.cpython-312.pyc +0 -0
  336. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/__init__.cpython-312.pyc +0 -0
  337. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinCommunication.cpython-312.pyc +0 -0
  338. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinTopology.cpython-312.pyc +0 -0
  339. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/__init__.cpython-312.pyc +0 -0
  340. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreCommunication.cpython-312.pyc +0 -0
  341. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreTopology.cpython-312.pyc +0 -0
  342. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/EcuInstance.cpython-312.pyc +0 -0
  343. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/Timing.cpython-312.pyc +0 -0
  344. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/__init__.cpython-312.pyc +0 -0
  345. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/Fibex4Multiplatform.cpython-312.pyc +0 -0
  346. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/__init__.cpython-312.pyc +0 -0
  347. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__pycache__/__init__.cpython-312.pyc +0 -0
  348. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DataMapping.cpython-312.pyc +0 -0
  349. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DiagnosticConnection.cpython-312.pyc +0 -0
  350. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DoIp.cpython-312.pyc +0 -0
  351. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/EcuResourceMapping.cpython-312.pyc +0 -0
  352. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  353. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/NetworkManagement.cpython-312.pyc +0 -0
  354. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/RteEventToOsTaskMapping.cpython-312.pyc +0 -0
  355. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SWmapping.cpython-312.pyc +0 -0
  356. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SecureCommunication.cpython-312.pyc +0 -0
  357. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/TransportProtocols.cpython-312.pyc +0 -0
  358. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  359. armodel/models/M2/AUTOSARTemplates/__pycache__/AutosarTopLevelStructure.cpython-312.pyc +0 -0
  360. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCDescriptionTemplate.cpython-312.pyc +0 -0
  361. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCParameterDefTemplate.cpython-312.pyc +0 -0
  362. armodel/models/M2/AUTOSARTemplates/__pycache__/__init__.cpython-312.pyc +0 -0
  363. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/GlobalConstraints.cpython-312.pyc +0 -0
  364. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/__init__.cpython-312.pyc +0 -0
  365. armodel/models/M2/MSR/AsamHdo/__pycache__/AdminData.cpython-312.pyc +0 -0
  366. armodel/models/M2/MSR/AsamHdo/__pycache__/BaseTypes.cpython-312.pyc +0 -0
  367. armodel/models/M2/MSR/AsamHdo/__pycache__/ComputationMethod.cpython-312.pyc +0 -0
  368. armodel/models/M2/MSR/AsamHdo/__pycache__/SpecialData.cpython-312.pyc +0 -0
  369. armodel/models/M2/MSR/AsamHdo/__pycache__/Units.cpython-312.pyc +0 -0
  370. armodel/models/M2/MSR/AsamHdo/__pycache__/__init__.cpython-312.pyc +0 -0
  371. armodel/models/M2/MSR/CalibrationData/__pycache__/CalibrationValue.cpython-312.pyc +0 -0
  372. armodel/models/M2/MSR/CalibrationData/__pycache__/__init__.cpython-312.pyc +0 -0
  373. armodel/models/M2/MSR/DataDictionary/__pycache__/AuxillaryObjects.cpython-312.pyc +0 -0
  374. armodel/models/M2/MSR/DataDictionary/__pycache__/Axis.cpython-312.pyc +0 -0
  375. armodel/models/M2/MSR/DataDictionary/__pycache__/CalibrationParameter.cpython-312.pyc +0 -0
  376. armodel/models/M2/MSR/DataDictionary/__pycache__/DataDefProperties.cpython-312.pyc +0 -0
  377. armodel/models/M2/MSR/DataDictionary/__pycache__/RecordLayout.cpython-312.pyc +0 -0
  378. armodel/models/M2/MSR/DataDictionary/__pycache__/ServiceProcessTask.cpython-312.pyc +0 -0
  379. armodel/models/M2/MSR/DataDictionary/__pycache__/__init__.cpython-312.pyc +0 -0
  380. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/Figure.cpython-312.pyc +0 -0
  381. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  382. armodel/models/M2/MSR/Documentation/BlockElements.py +0 -18
  383. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/ListElements.cpython-312.pyc +0 -0
  384. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/PaginationAndView.cpython-312.pyc +0 -0
  385. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  386. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/LanguageDataModel.cpython-312.pyc +0 -0
  387. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/MultilanguageData.cpython-312.pyc +0 -0
  388. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/__init__.cpython-312.pyc +0 -0
  389. armodel/models/M2/MSR/Documentation/__pycache__/Annotation.cpython-312.pyc +0 -0
  390. armodel/models/M2/MSR/Documentation/__pycache__/__init__.cpython-312.pyc +0 -0
  391. armodel/models/M2/MSR/__pycache__/__init__.cpython-312.pyc +0 -0
  392. armodel/models/M2/__pycache__/__init__.cpython-312.pyc +0 -0
  393. armodel/models/__pycache__/__init__.cpython-312.pyc +0 -0
  394. armodel/models/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  395. armodel/models/utils/__pycache__/uuid_mgr.cpython-312.pyc +0 -0
  396. armodel/parser/__pycache__/__init__.cpython-312.pyc +0 -0
  397. armodel/parser/__pycache__/abstract_arxml_parser.cpython-312.pyc +0 -0
  398. armodel/parser/__pycache__/arxml_parser.cpython-312.pyc +0 -0
  399. armodel/parser/__pycache__/file_parser.cpython-312.pyc +0 -0
  400. armodel/tests/__init__.py +0 -0
  401. armodel/tests/test_armodel/__init__.py +0 -0
  402. armodel/tests/test_armodel/models/__init__.py +0 -0
  403. armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +0 -116
  404. armodel/tests/test_armodel/models/test_Identifiable.py +0 -85
  405. armodel/tests/test_armodel/models/test_ar_object.py +0 -154
  406. armodel/tests/test_armodel/models/test_ar_package.py +0 -304
  407. armodel/tests/test_armodel/models/test_ar_ref.py +0 -81
  408. armodel/tests/test_armodel/models/test_bsw_module_template.py +0 -52
  409. armodel/tests/test_armodel/models/test_common_structure.py +0 -82
  410. armodel/tests/test_armodel/models/test_data_dictionary.py +0 -30
  411. armodel/tests/test_armodel/models/test_data_prototype.py +0 -93
  412. armodel/tests/test_armodel/models/test_datatype.py +0 -251
  413. armodel/tests/test_armodel/models/test_general_structure.py +0 -56
  414. armodel/tests/test_armodel/models/test_implementation.py +0 -27
  415. armodel/tests/test_armodel/models/test_m2_msr.py +0 -79
  416. armodel/tests/test_armodel/models/test_port_interface.py +0 -202
  417. armodel/tests/test_armodel/models/test_port_prototype.py +0 -15
  418. armodel/tests/test_armodel/parser/__init__.py +0 -0
  419. armodel/tests/test_armodel/parser/test_arxml_parser.py +0 -53
  420. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +0 -218
  421. armodel/tests/test_armodel/parser/test_implementation_data_type.py +0 -247
  422. armodel/tests/test_armodel/parser/test_parse_bswmd.py +0 -202
  423. armodel/tests/test_armodel/parser/test_rte_event.py +0 -142
  424. armodel/tests/test_armodel/parser/test_runnable_entity.py +0 -135
  425. armodel/tests/test_armodel/parser/test_sw_components.py +0 -484
  426. armodel/tests/test_armodel/parser/test_system.py +0 -23
  427. armodel/writer/__pycache__/__init__.cpython-312.pyc +0 -0
  428. armodel/writer/__pycache__/abstract_arxml_writer.cpython-312.pyc +0 -0
  429. armodel/writer/__pycache__/arxml_writer.cpython-312.pyc +0 -0
  430. armodel-1.8.6.dist-info/RECORD +0 -360
  431. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/top_level.txt +0 -0
@@ -1,793 +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 ExecutableEntity
6
- from ....M2.AUTOSARTemplates.CommonStructure.InternalBehavior import InternalBehavior
7
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
8
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean, AREnum, ARFloat, ARNumerical, Boolean
9
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger, String, TimeValue
10
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
11
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
12
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Referrable
13
- from ....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import VariableDataPrototype
14
- from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTypes import IncludedDataTypeSet
15
- from ....M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import IncludedModeDeclarationGroupSet
16
-
17
-
18
- class BswModuleCallPoint(Referrable):
19
- def __init__(self, parent: ARObject, short_name: str):
20
- super().__init__(parent, short_name)
21
-
22
- self.contextLimitationRefs = [] # type: List[RefType]
23
-
24
- def getContextLimitationRefs(self):
25
- return self.contextLimitationRefs
26
-
27
- def addContextLimitationRef(self, value):
28
- self.contextLimitationRefs.append(value)
29
- return self
30
-
31
-
32
- class BswAsynchronousServerCallPoint(BswModuleCallPoint):
33
- def __init__(self, parent: ARObject, short_name: str):
34
- super().__init__(parent, short_name)
35
-
36
- self.calledEntryRef = None # type: RefType
37
-
38
- def getCalledEntryRef(self):
39
- return self.calledEntryRef
40
-
41
- def setCalledEntryRef(self, value):
42
- if value is not None:
43
- self.calledEntryRef = value
44
- return self
45
-
46
-
47
- class BswDirectCallPoint(BswModuleCallPoint):
48
- def __init__(self, parent: ARObject, short_name: str):
49
- super().__init__(parent, short_name)
50
-
51
- self.calledEntryRef = None # type: RefType
52
- self.calledFromWithinExclusiveAreaRef = None # type: RefType
53
-
54
- def getCalledEntryRef(self):
55
- return self.calledEntryRef
56
-
57
- def setCalledEntryRef(self, value):
58
- if value is not None:
59
- self.calledEntryRef = value
60
- return self
61
-
62
- def getCalledFromWithinExclusiveAreaRef(self):
63
- return self.calledFromWithinExclusiveAreaRef
64
-
65
- def setCalledFromWithinExclusiveAreaRef(self, value):
66
- if value is not None:
67
- self.calledFromWithinExclusiveAreaRef = value
68
- return self
69
-
70
-
71
- class BswSynchronousServerCallPoint(BswModuleCallPoint):
72
- def __init__(self, parent: ARObject, short_name: str):
73
- super().__init__(parent, short_name)
74
-
75
- self.calledEntryRef = None # type: RefType
76
- self.calledFromWithinExclusiveAreaRef = None # type: RefType
77
-
78
- def getCalledEntryRef(self):
79
- return self.calledEntryRef
80
-
81
- def setCalledEntryRef(self, value):
82
- if value is not None:
83
- self.calledEntryRef = value
84
- return self
85
-
86
- def getCalledFromWithinExclusiveAreaRef(self):
87
- return self.calledFromWithinExclusiveAreaRef
88
-
89
- def setCalledFromWithinExclusiveAreaRef(self, value):
90
- if value is not None:
91
- self.calledFromWithinExclusiveAreaRef = value
92
- return self
93
-
94
-
95
- class BswAsynchronousServerCallResultPoint(BswModuleCallPoint):
96
- def __init__(self, parent: ARObject, short_name: str):
97
- super().__init__(parent, short_name)
98
-
99
- self.asynchronousServerCallPointRef = None # type: RefType
100
-
101
-
102
- class BswVariableAccess(Referrable):
103
- def __init__(self, parent: ARObject, short_name: str):
104
- super().__init__(parent, short_name)
105
-
106
- self.accessedVariableRef = None # type: RefType
107
- self.contextLimitationRefs = [] # type: List[RefType]
108
-
109
- def getAccessedVariableRef(self):
110
- return self.accessedVariableRef
111
-
112
- def setAccessedVariableRef(self, value):
113
- self.accessedVariableRef = value
114
- return self
115
-
116
- def getContextLimitationRefs(self):
117
- return self.contextLimitationRefs
118
-
119
- def addContextLimitationRef(self, value):
120
- self.contextLimitationRefs.append(value)
121
- return self
122
-
123
-
124
- class BswModuleEntity(ExecutableEntity, metaclass=ABCMeta):
125
- def __init__(self, parent: ARObject, short_name: str):
126
- if type(self) is BswModuleEntity:
127
- raise NotImplementedError("BswModuleEntity is an abstract class.")
128
- super().__init__(parent, short_name)
129
-
130
- self.accessedModeGroupRefs = [] # type: List[RefType]
131
- self.activationPointRefs = [] # type: List[RefType]
132
- self.callPoints = [] # type: List[BswModuleCallPoint]
133
- self.dataReceivePoints = [] # type: List[BswVariableAccess]
134
- self.dataSendPoints = [] # type: List[BswVariableAccess]
135
- self.implementedEntryRef = None # type: RefType
136
- self.issuedTriggerRefs = [] # type: List[RefType]
137
- self.managedModeGroupRefs = [] # type: List[RefType]
138
- self.schedulerNamePrefixRef = None # type: List[RefType]
139
-
140
- def getAccessedModeGroupRefs(self):
141
- return self.accessedModeGroupRefs
142
-
143
- def addAccessedModeGroupRef(self, value):
144
- if value is not None:
145
- self.accessedModeGroupRefs.append(value)
146
- return self
147
-
148
- def getActivationPointRefs(self):
149
- return self.activationPointRefs
150
-
151
- def addActivationPointRef(self, value):
152
- if value is not None:
153
- self.activationPointRefs.append(value)
154
- return self
155
-
156
- def getCallPoints(self):
157
- return self.callPoints
158
-
159
- def createBswAsynchronousServerCallPoint(self, short_name):
160
- if (not self.IsElementExists(short_name)):
161
- access = BswAsynchronousServerCallPoint(self, short_name)
162
- self.addElement(access)
163
- self.callPoints.append(access)
164
- return self.getElement(short_name)
165
-
166
- def createBswSynchronousServerCallPoint(self, short_name):
167
- if (not self.IsElementExists(short_name)):
168
- access = BswSynchronousServerCallPoint(self, short_name)
169
- self.addElement(access)
170
- self.callPoints.append(access)
171
- return self.getElement(short_name)
172
-
173
- def getDataReceivePoints(self):
174
- return self.dataReceivePoints
175
-
176
- def createDataReceivePoint(self, short_name: str) -> BswVariableAccess:
177
- if (not self.IsElementExists(short_name)):
178
- access = BswVariableAccess(self, short_name)
179
- self.addElement(access)
180
- self.dataReceivePoints.append(access)
181
- return self.getElement(short_name, BswVariableAccess)
182
-
183
- def getDataSendPoints(self):
184
- return self.dataSendPoints
185
-
186
- def createDataSendPoint(self, short_name: str) -> BswVariableAccess:
187
- if (not self.IsElementExists(short_name)):
188
- access = BswVariableAccess(self, short_name)
189
- self.addElement(access)
190
- self.dataSendPoints.append(access)
191
- return self.getElement(short_name, BswVariableAccess)
192
-
193
- def getImplementedEntryRef(self):
194
- return self.implementedEntryRef
195
-
196
- def setImplementedEntryRef(self, value):
197
- if value is not None:
198
- self.implementedEntryRef = value
199
- return self
200
-
201
- def getIssuedTriggerRefs(self):
202
- return self.issuedTriggerRefs
203
-
204
- def addIssuedTriggerRef(self, value):
205
- if value is not None:
206
- self.issuedTriggerRefs.append(value)
207
- return self
208
-
209
- def getManagedModeGroupRefs(self):
210
- return self.managedModeGroupRefs
211
-
212
- def addManagedModeGroupRef(self, value):
213
- if value is not None:
214
- self.managedModeGroupRefs.append(value)
215
- return self
216
-
217
- def getSchedulerNamePrefixRef(self):
218
- return self.schedulerNamePrefixRef
219
-
220
- def setSchedulerNamePrefixRef(self, value):
221
- if value is not None:
222
- self.schedulerNamePrefixRef = value
223
- return self
224
-
225
-
226
- class BswCalledEntity(BswModuleEntity):
227
- def __init__(self, parent: ARObject, short_name: str):
228
- super().__init__(parent, short_name)
229
-
230
-
231
- class BswSchedulableEntity(BswModuleEntity):
232
- def __init__(self, parent: ARObject, short_name: str):
233
- super().__init__(parent, short_name)
234
-
235
-
236
- class BswInterruptCategory(AREnum):
237
- CAT1 = "cat1"
238
- CAT2 = "cat2"
239
-
240
- def __init__(self):
241
- super().__init__((
242
- BswInterruptCategory.CAT1,
243
- BswInterruptCategory.CAT2,
244
- ))
245
-
246
-
247
- class BswInterruptEntity(BswModuleEntity):
248
- def __init__(self, parent: ARObject, short_name: str):
249
- super().__init__(parent, short_name)
250
-
251
- self.interruptCategory = None # type: BswInterruptCategory
252
- self.interruptSource = None # type: String
253
-
254
- def getInterruptCategory(self):
255
- return self.interruptCategory
256
-
257
- def setInterruptCategory(self, value):
258
- self.interruptCategory = value
259
- return self
260
-
261
- def getInterruptSource(self):
262
- return self.interruptSource
263
-
264
- def setInterruptSource(self, value):
265
- self.interruptSource = value
266
- return self
267
-
268
-
269
- class BswEvent(Identifiable, metaclass=ABCMeta):
270
- def __init__(self, parent: ARObject, short_name: str):
271
- if type(self) is BswEvent:
272
- raise NotImplementedError("BswEvent is an abstract class.")
273
- super().__init__(parent, short_name)
274
-
275
- self.startsOnEventRef = None # type: RefType
276
-
277
- def getStartsOnEventRef(self):
278
- return self.startsOnEventRef
279
-
280
- def setStartsOnEventRef(self, value):
281
- self.startsOnEventRef = value
282
- return self
283
-
284
-
285
- class BswOperationInvokedEvent(BswEvent):
286
- def __init__(self, parent: ARObject, short_name: str):
287
- super().__init__(parent, short_name)
288
-
289
- self.entryRef = None # type: RefType
290
-
291
- def getEntryRef(self):
292
- return self.entryRef
293
-
294
- def setEntryRef(self, value):
295
- if value is not None:
296
- self.entryRef = value
297
- return self
298
-
299
-
300
- class BswScheduleEvent(BswEvent, metaclass=ABCMeta):
301
- def __init__(self, parent: ARObject, short_name: str):
302
- if type(self) is BswScheduleEvent:
303
- raise NotImplementedError("BswScheduleEvent is an abstract class.")
304
- super().__init__(parent, short_name)
305
-
306
-
307
- class BswModeSwitchEvent(BswScheduleEvent):
308
- def __init__(self, parent: ARObject, short_name: str):
309
- super().__init__(parent, short_name)
310
-
311
- self.activation = None
312
-
313
- def getActivation(self):
314
- return self.activation
315
-
316
- def setActivation(self, value):
317
- self.activation = value
318
- return self
319
-
320
-
321
- class BswTimingEvent(BswScheduleEvent):
322
- def __init__(self, parent: ARObject, short_name: str):
323
- super().__init__(parent, short_name)
324
-
325
- self.period = None # type: TimeValue
326
-
327
- def getPeriod(self):
328
- return self.period
329
-
330
- def setPeriod(self, value):
331
- if not (value is None and self.period is not None):
332
- self.period = value
333
- return self
334
-
335
- @property
336
- def periodMs(self) -> int:
337
- if self.period is not None:
338
- return int(self.period.value * 1000)
339
- return None
340
-
341
-
342
- class BswDataReceivedEvent(BswScheduleEvent):
343
- def __init__(self, parent: ARObject, short_name: str):
344
- super().__init__(parent, short_name)
345
-
346
- self.dataRef = None # type: RefType
347
-
348
- def getDataRef(self):
349
- return self.dataRef
350
-
351
- def setDataRef(self, value):
352
- self.dataRef = value
353
- return self
354
-
355
-
356
- class BswInternalTriggerOccurredEvent(BswScheduleEvent):
357
- def __init__(self, parent: ARObject, short_name: str):
358
- super().__init__(parent, short_name)
359
-
360
- self.eventSourceRef = None # type: RefType
361
-
362
- def getEventSourceRef(self):
363
- return self.eventSourceRef
364
-
365
- def setEventSourceRef(self, value):
366
- self.eventSourceRef = value
367
- return self
368
-
369
-
370
- class BswModeSwitchAckRequest(ARObject):
371
- def __init__(self):
372
- super().__init__()
373
-
374
- self.timeout = None # type: ARFloat
375
-
376
- def getTimeout(self):
377
- return self.timeout
378
-
379
- def setTimeout(self, value):
380
- self.timeout = value
381
- return self
382
-
383
-
384
- class BswModeSenderPolicy(ARObject):
385
- def __init__(self):
386
- super().__init__()
387
-
388
- self.ack_request = None # type: BswModeSwitchAckRequest
389
- self.enhanced_mode_api = None # type: ARBoolean
390
- self._provided_mode_group_ref = None # type: RefType
391
- self._queue_length = None # type: ARNumerical
392
-
393
- def setProvidedModeGroupRef(self, ref: RefType):
394
- self._provided_mode_group_ref = ref
395
- return self
396
-
397
- def getProvidedModeGroupRef(self) -> RefType:
398
- return self._provided_mode_group_ref
399
-
400
- def setQueueLength(self, length: any):
401
- if isinstance(length, ARNumerical):
402
- self._queue_length = length
403
- elif isinstance(length, int):
404
- self._queue_length = ARNumerical()
405
- self._queue_length.setValue(length)
406
- else:
407
- raise ValueError("Unsupported type <%s>" % type(length))
408
-
409
- def getQueueLength(self) -> ARNumerical:
410
- return self._queue_length
411
-
412
-
413
- class BswBackgroundEvent(BswScheduleEvent):
414
- def __init__(self, parent, short_name):
415
- super().__init__(parent, short_name)
416
-
417
-
418
- class BswOsTaskExecutionEvent(BswScheduleEvent):
419
- def __init__(self, parent, short_name):
420
- super().__init__(parent, short_name)
421
-
422
-
423
- class BswExternalTriggerOccurredEvent(BswScheduleEvent):
424
- def __init__(self, parent, short_name):
425
- super().__init__(parent, short_name)
426
-
427
- self.triggerRef = None # type: RefType
428
-
429
- def getTriggerRef(self):
430
- return self.triggerRef
431
-
432
- def setTriggerRef(self, value):
433
- if value is not None:
434
- self.triggerRef = value
435
- return self
436
-
437
-
438
- class BswApiOptions(ARObject, metaclass=ABCMeta):
439
- def __init__(self):
440
- if type(self) is BswApiOptions:
441
- raise NotImplementedError("BswApiOptions is an abstract class.")
442
-
443
- super().__init__()
444
-
445
- self.enableTakeAddress = None # type: Boolean
446
-
447
- def getEnableTakeAddress(self):
448
- return self.enableTakeAddress
449
-
450
- def setEnableTakeAddress(self, value):
451
- if value is not None:
452
- self.enableTakeAddress = value
453
- return self
454
-
455
-
456
- class BswDataReceptionPolicy(BswApiOptions, metaclass=ABCMeta):
457
- def __init__(self):
458
- if type(self) is BswDataReceptionPolicy:
459
- raise NotImplementedError("BswDataReceptionPolicy is an abstract class.")
460
-
461
- super().__init__()
462
-
463
- self.receivedDataRef = None # type: RefType
464
-
465
- def getReceivedDataRef(self):
466
- return self.receivedDataRef
467
-
468
- def setReceivedDataRef(self, value):
469
- if value is not None:
470
- self.receivedDataRef = value
471
- return self
472
-
473
-
474
- class BswQueuedDataReceptionPolicy(BswDataReceptionPolicy):
475
- def __init__(self):
476
- super().__init__()
477
-
478
- self.queueLength = None # type: PositiveInteger
479
-
480
- def getQueueLength(self):
481
- return self.queueLength
482
-
483
- def setQueueLength(self, value):
484
- if value is not None:
485
- self.queueLength = value
486
- return self
487
-
488
-
489
- class BswInternalTriggeringPoint(Identifiable):
490
- def __init__(self, parent: ARObject, short_name: str):
491
- super().__init__(parent, short_name)
492
-
493
- self.swImplPolicy = None # type: SwImplPolicyEnum
494
-
495
- def getSwImplPolicy(self):
496
- return self.swImplPolicy
497
-
498
- def setSwImplPolicy(self, value):
499
- if value is not None:
500
- self.swImplPolicy = value
501
- return self
502
-
503
-
504
- class BswInternalBehavior(InternalBehavior):
505
- def __init__(self, parent: ARObject, short_name: str):
506
- super().__init__(parent, short_name)
507
-
508
- self.arTypedPerInstanceMemories = [] # type: List[VariableDataPrototype]
509
- self.bswPerInstanceMemoryPolicies = [] # type: List[BswPerInstanceMemoryPolicy]
510
- self.clientPolicies = [] # type: List[BswClientPolicy]
511
- self.distinguishedPartitions = [] # type: List[BswDistinguishedPartition]
512
- self.entities = [] # type: List[BswModuleEntity]
513
- self.events = [] # type: List[BswEvent]
514
- self.exclusiveAreaPolicies = [] # type: List[BswExclusiveAreaPolicy]
515
- self.includedDataTypeSets = [] # type: List[IncludedDataTypeSet]
516
- self.includedModeDeclarationGroupSets = [] # type: List[IncludedModeDeclarationGroupSet]
517
- self.internalTriggeringPoints = [] # type: List[BswInternalTriggeringPoint]
518
- self.internalTriggeringPointPolicies = [] # type: List[BswInternalTriggeringPointPolicy]
519
- self.modeReceiverPolicies = [] # type: List[BswModeReceiverPolicy]
520
- self.modeSenderPolicies = [] # type: List[BswModeSenderPolicy]
521
- self.parameterPolicies = [] # type: List[BswParameterPolicy]
522
- self.perInstanceParameters = [] # type: List[ParameterDataPrototype]
523
- self.receptionPolicies = [] # type: List[BswDataReceptionPolicy]
524
- self.releasedTriggerPolicies = [] # type: List[BswReleasedTriggerPolicy]
525
- self.schedulerNamePrefixes = [] # type: List[BswSchedulerNamePrefix]
526
- self.sendPolicies = [] # type: List[BswDataSendPolicy]
527
- self.serviceDependencies = [] # type: List[BswServiceDependency]
528
- self.triggerDirectImplementations = [] # type: List[BswTriggerDirectImplementation]
529
- self.variationPointProxies = [] # type: List[VariationPointProxy]
530
-
531
- def getArTypedPerInstanceMemories(self):
532
- return self.arTypedPerInstanceMemories
533
-
534
- def setArTypedPerInstanceMemories(self, value):
535
- if value is not None:
536
- self.arTypedPerInstanceMemories = value
537
- return self
538
-
539
- def getBswPerInstanceMemoryPolicies(self):
540
- return self.bswPerInstanceMemoryPolicies
541
-
542
- def setBswPerInstanceMemoryPolicies(self, value):
543
- if value is not None:
544
- self.bswPerInstanceMemoryPolicies = value
545
- return self
546
-
547
- def getClientPolicies(self):
548
- return self.clientPolicies
549
-
550
- def setClientPolicies(self, value):
551
- if value is not None:
552
- self.clientPolicies = value
553
- return self
554
-
555
- def getDistinguishedPartitions(self):
556
- return self.distinguishedPartitions
557
-
558
- def setDistinguishedPartitions(self, value):
559
- if value is not None:
560
- self.distinguishedPartitions = value
561
- return self
562
-
563
- def getExclusiveAreaPolicies(self):
564
- return self.exclusiveAreaPolicies
565
-
566
- def setExclusiveAreaPolicies(self, value):
567
- if value is not None:
568
- self.exclusiveAreaPolicies = value
569
- return self
570
-
571
- def getInternalTriggeringPoints(self):
572
- return self.internalTriggeringPoints
573
-
574
- def createBswInternalTriggeringPoint(self, short_name: str) -> BswInternalTriggeringPoint:
575
- if not self.IsElementExists(short_name):
576
- entity = BswInternalTriggeringPoint(self, short_name)
577
- self.addElement(entity)
578
- self.internalTriggeringPoints.append(entity)
579
- return self.getElement(short_name)
580
-
581
- def getInternalTriggeringPointPolicies(self):
582
- return self.internalTriggeringPointPolicies
583
-
584
- def setInternalTriggeringPointPolicies(self, value):
585
- if value is not None:
586
- self.internalTriggeringPointPolicies = value
587
- return self
588
-
589
- def getModeReceiverPolicies(self):
590
- return self.modeReceiverPolicies
591
-
592
- def setModeSenderPolicies(self, value):
593
- if value is not None:
594
- self.modeSenderPolicies = value
595
- return self
596
-
597
- def getParameterPolicies(self):
598
- return self.parameterPolicies
599
-
600
- def setParameterPolicies(self, value):
601
- if value is not None:
602
- self.parameterPolicies = value
603
- return self
604
-
605
- def getPerInstanceParameters(self):
606
- return self.perInstanceParameters
607
-
608
- def setPerInstanceParameters(self, value):
609
- if value is not None:
610
- self.perInstanceParameters = value
611
- return self
612
-
613
- def getReceptionPolicies(self):
614
- return self.receptionPolicies
615
-
616
- def addReceptionPolicy(self, value):
617
- if value is not None:
618
- self.receptionPolicies.append(value)
619
- return self
620
-
621
- def getReleasedTriggerPolicies(self):
622
- return self.releasedTriggerPolicies
623
-
624
- def setReleasedTriggerPolicies(self, value):
625
- if value is not None:
626
- self.releasedTriggerPolicies = value
627
- return self
628
-
629
- def getSchedulerNamePrefixes(self):
630
- return self.schedulerNamePrefixes
631
-
632
- def setSchedulerNamePrefixes(self, value):
633
- if value is not None:
634
- self.schedulerNamePrefixes = value
635
- return self
636
-
637
- def getSendPolicies(self):
638
- return self.sendPolicies
639
-
640
- def setSendPolicies(self, value):
641
- if value is not None:
642
- self.sendPolicies = value
643
- return self
644
-
645
- def getServiceDependencies(self):
646
- return self.serviceDependencies
647
-
648
- def setServiceDependencies(self, value):
649
- if value is not None:
650
- self.serviceDependencies = value
651
- return self
652
-
653
- def getTriggerDirectImplementations(self):
654
- return self.triggerDirectImplementations
655
-
656
- def setTriggerDirectImplementations(self, value):
657
- if value is not None:
658
- self.triggerDirectImplementations = value
659
- return self
660
-
661
- def getVariationPointProxies(self):
662
- return self.variationPointProxies
663
-
664
- def setVariationPointProxies(self, value):
665
- if value is not None:
666
- self.variationPointProxies = value
667
- return self
668
-
669
- def addModeSenderPolicy(self, policy: BswModeSenderPolicy):
670
- self.modeReceiverPolicies.append(policy)
671
-
672
- def getModeSenderPolicies(self) -> List[BswModeSenderPolicy]:
673
- return self.modeReceiverPolicies
674
-
675
- def createBswCalledEntity(self, short_name: str) -> BswCalledEntity:
676
- if not self.IsElementExists(short_name):
677
- entity = BswCalledEntity(self, short_name)
678
- self.addElement(entity)
679
- self.entities.append(entity)
680
- return self.getElement(short_name)
681
-
682
- def getBswCalledEntities(self) -> List[BswCalledEntity]:
683
- return list(filter(lambda a: isinstance(a, BswCalledEntity), self.elements))
684
-
685
- def createBswSchedulableEntity(self, short_name: str) -> BswSchedulableEntity:
686
- if not self.IsElementExists(short_name):
687
- entity = BswSchedulableEntity(self, short_name)
688
- self.addElement(entity)
689
- self.entities.append(entity)
690
- return self.getElement(short_name)
691
-
692
- def getBswSchedulableEntities(self) -> List[BswSchedulableEntity]:
693
- return list(filter(lambda a: isinstance(a, BswSchedulableEntity), self.elements))
694
-
695
- def createBswInterruptEntity(self, short_name: str) -> BswInterruptEntity:
696
- if not self.IsElementExists(short_name):
697
- entity = BswInterruptEntity(self, short_name)
698
- self.addElement(entity)
699
- self.entities.append(entity)
700
- return self.getElement(short_name)
701
-
702
- def getBswInterruptEntities(self) -> List[BswInterruptEntity]:
703
- return list(filter(lambda a: isinstance(a, BswInterruptEntity), self.elements))
704
-
705
- def getBswModuleEntities(self) -> List[BswModuleEntity]:
706
- return list(filter(lambda a: isinstance(a, BswModuleEntity), self.elements))
707
-
708
- def createBswModeSwitchEvent(self, short_name: str) -> BswModeSwitchEvent:
709
- if not self.IsElementExists(short_name):
710
- event = BswModeSwitchEvent(self, short_name)
711
- self.addElement(event)
712
- self.events.append(event)
713
- return self.getElement(short_name)
714
-
715
- def getBswModeSwitchEvents(self) -> List[BswModeSwitchEvent]:
716
- return list(filter(lambda a: isinstance(a, BswModeSwitchEvent), self.elements))
717
-
718
- def createBswTimingEvent(self, short_name: str) -> BswTimingEvent:
719
- if not self.IsElementExists(short_name):
720
- event = BswTimingEvent(self, short_name)
721
- self.addElement(event)
722
- self.events.append(event)
723
- return self.getElement(short_name)
724
-
725
- def getBswTimingEvents(self) -> List[BswTimingEvent]:
726
- return list(filter(lambda a: isinstance(a, BswTimingEvent), self.elements))
727
-
728
- def createBswDataReceivedEvent(self, short_name: str) -> BswDataReceivedEvent:
729
- if not self.IsElementExists(short_name):
730
- event = BswDataReceivedEvent(self, short_name)
731
- self.addElement(event)
732
- self.events.append(event)
733
- return self.getElement(short_name)
734
-
735
- def getBswDataReceivedEvents(self) -> List[BswDataReceivedEvent]:
736
- return list(filter(lambda a: isinstance(a, BswDataReceivedEvent), self.elements))
737
-
738
- def createBswInternalTriggerOccurredEvent(self, short_name: str) -> BswInternalTriggerOccurredEvent:
739
- if not self.IsElementExists(short_name):
740
- event = BswInternalTriggerOccurredEvent(self, short_name)
741
- self.addElement(event)
742
- self.events.append(event)
743
- return self.getElement(short_name)
744
-
745
- def getBswInternalTriggerOccurredEvents(self) -> List[BswInternalTriggerOccurredEvent]:
746
- return list(filter(lambda a: isinstance(a, BswInternalTriggerOccurredEvent), self.elements))
747
-
748
- def createBswExternalTriggerOccurredEvent(self, short_name: str) -> BswExternalTriggerOccurredEvent:
749
- if not self.IsElementExists(short_name):
750
- event = BswExternalTriggerOccurredEvent(self, short_name)
751
- self.addElement(event)
752
- self.events.append(event)
753
- return self.getElement(short_name)
754
-
755
- def getBswOperationInvokedEvents(self) -> List[BswOperationInvokedEvent]:
756
- return list(filter(lambda a: isinstance(a, BswOperationInvokedEvent), self.elements))
757
-
758
- def createBswOperationInvokedEvent(self, short_name: str) -> BswOperationInvokedEvent:
759
- if not self.IsElementExists(short_name):
760
- event = BswOperationInvokedEvent(self, short_name)
761
- self.addElement(event)
762
- self.events.append(event)
763
- return self.getElement(short_name)
764
-
765
- def getBswExternalTriggerOccurredEvents(self) -> List[BswExternalTriggerOccurredEvent]:
766
- return list(filter(lambda a: isinstance(a, BswExternalTriggerOccurredEvent), self.elements))
767
-
768
- def createBswBackgroundEvent(self, short_name: str) -> BswBackgroundEvent:
769
- if not self.IsElementExists(short_name):
770
- event = BswBackgroundEvent(self, short_name)
771
- self.addElement(event)
772
- self.events.append(event)
773
- return self.getElement(short_name)
774
-
775
- def getBswBackgroundEvents(self) -> List[BswBackgroundEvent]:
776
- return list(filter(lambda a: isinstance(a, BswBackgroundEvent), self.elements))
777
-
778
- def getBswEvents(self) -> List[BswEvent]:
779
- return list(filter(lambda a: isinstance(a, BswEvent), self.elements))
780
-
781
- def addIncludedModeDeclarationGroupSet(self, group_set: IncludedModeDeclarationGroupSet):
782
- self.includedModeDeclarationGroupSets.append(group_set)
783
-
784
- def getIncludedModeDeclarationGroupSets(self) -> List[IncludedModeDeclarationGroupSet]:
785
- return self.includedModeDeclarationGroupSets
786
-
787
- def addIncludedDataTypeSet(self, type_set: IncludedDataTypeSet):
788
- self.includedDataTypeSets.append(type_set)
789
-
790
- def getIncludedDataTypeSets(self) -> List[IncludedDataTypeSet]:
791
- return self.includedDataTypeSets
792
-
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
+
793
2224