armodel 1.8.7__py3-none-any.whl → 1.9.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. armodel/__init__.py +18 -3
  2. armodel/cli/arxml_dump_cli.py +196 -197
  3. armodel/cli/arxml_format_cli.py +84 -84
  4. armodel/cli/connector2xlsx_cli.py +71 -73
  5. armodel/cli/connector_update_cli.py +71 -73
  6. armodel/cli/file_list_cli.py +69 -69
  7. armodel/cli/format_xml_cli.py +62 -62
  8. armodel/cli/memory_section_cli.py +72 -75
  9. armodel/cli/swc_list_cli.py +77 -79
  10. armodel/cli/system_signal_cli.py +71 -73
  11. armodel/cli/uuid_checker_cli.py +95 -95
  12. armodel/data_models/sw_connector.py +21 -21
  13. armodel/lib/__init__.py +3 -4
  14. armodel/lib/cli_args_parser.py +36 -35
  15. armodel/lib/sw_component.py +34 -35
  16. armodel/lib/system_signal.py +36 -36
  17. armodel/models/M2/AUTOSARTemplates/AbstractPlatform/ApplicationDeferredDataType.py +21 -0
  18. armodel/models/M2/AUTOSARTemplates/AbstractPlatform/ApplicationInterface.py +79 -0
  19. armodel/models/M2/AUTOSARTemplates/AbstractPlatform/__init__.py +2 -0
  20. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/ApplicationDesign/PortInterface/Field.py +52 -0
  21. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/ApplicationDesign/PortInterface/__init__.py +1 -0
  22. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/AdaptiveModule/PlatformModuleEthernetEndpointConfiguration.py +63 -0
  23. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/AdaptiveModule/__init__.py +3 -0
  24. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/CryptoDeployment/CryptoKeySlot.py +128 -0
  25. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/CryptoDeployment/CryptoKeySlotContent.py +19 -0
  26. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/CryptoDeployment/__init__.py +4 -0
  27. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRule.py +62 -0
  28. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRuleProps.py +83 -0
  29. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/StateDependentFirewall.py +62 -0
  30. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/__init__.py +5 -0
  31. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/IntrusionDetectionSystem/IdsPlatformInstantiation.py +52 -0
  32. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/IntrusionDetectionSystem/IdsmModuleInstantiation.py +19 -0
  33. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/IntrusionDetectionSystem/__init__.py +4 -0
  34. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/__init__.py +25 -0
  35. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/__init__.py +3 -0
  36. armodel/models/M2/AUTOSARTemplates/{AutosarTopLevelStructure.py → AutosarTopLevelStructure/__init__.py} +320 -318
  37. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswAsynchronousServerCallReturnsEvent.py +27 -0
  38. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswExclusiveAreaPolicy.py +22 -0
  39. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswInterruptEvent.py +18 -0
  40. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeManagerErrorEvent.py +18 -0
  41. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeReceiverPolicy.py +22 -0
  42. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswSchedulerNamePrefix.py +26 -0
  43. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswServiceDependency.py +27 -0
  44. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswTriggerDirectImplementation.py +21 -0
  45. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/RoleBasedBswModuleEntryAssignment.py +35 -0
  46. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2223 -791
  47. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +180 -60
  48. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationship.py +26 -0
  49. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipEnum.py +24 -0
  50. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipSet.py +24 -0
  51. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +586 -200
  52. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/InstanceRefs/ModeInBswModuleDescriptionInstanceRef.py +61 -0
  53. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/InstanceRefs/__init__.py +3 -0
  54. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/__init__.py +445 -0
  55. armodel/models/M2/AUTOSARTemplates/CommonStructure/Constants/__init__.py +670 -0
  56. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +243 -96
  57. armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +273 -69
  58. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +756 -243
  59. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +336 -170
  60. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +430 -136
  61. armodel/models/M2/AUTOSARTemplates/CommonStructure/McGroups.py +53 -0
  62. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/ImplementationElementInParameterInstanceRef.py +15 -0
  63. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataAccessDetails.py +60 -0
  64. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataInstance.py +62 -0
  65. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McFunction.py +62 -0
  66. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McParameterElementGroup.py +39 -0
  67. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSupportData.py +62 -0
  68. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSwEmulationMethodSupport.py +37 -0
  69. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RoleBasedMcDataAssignment.py +61 -0
  70. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/McFunctionDataRefSet.py +39 -0
  71. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptAccessEnum.py +12 -0
  72. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptComponent.py +60 -0
  73. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptEnablerImplTypeEnum.py +11 -0
  74. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntity.py +62 -0
  75. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntityEvent.py +62 -0
  76. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionContext.py +38 -0
  77. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionControlEnum.py +11 -0
  78. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptPreparationEnum.py +11 -0
  79. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptServicePoint.py +62 -0
  80. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSupportData.py +111 -0
  81. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSwPrototypingAccess.py +62 -0
  82. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/__init__.py +27 -0
  83. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/__init__.py +19 -0
  84. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +424 -148
  85. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclarationExtra.py +73 -0
  86. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/ExecutionTime/__init__.py +132 -0
  87. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +93 -32
  88. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +78 -10
  89. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +239 -81
  90. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +68 -23
  91. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +274 -92
  92. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +135 -53
  93. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +2955 -839
  94. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationControlEnum.py +11 -0
  95. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationElementProps.py +37 -0
  96. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationEventProps.py +37 -0
  97. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationProps.py +38 -0
  98. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationPropsSet.py +38 -0
  99. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/__init__.py +13 -0
  100. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/AtpBlueprint.py +32 -0
  101. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/__init__.py +7 -0
  102. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +186 -73
  103. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +10 -0
  104. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/BlueprintGenerator.py +37 -0
  105. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/__init__.py +3 -0
  106. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/BlueprintMappingSet.py +38 -0
  107. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/__init__.py +3 -0
  108. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +126 -45
  109. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +5 -0
  110. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +290 -77
  111. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TDLETZoneClock.py +61 -0
  112. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClock.py +60 -0
  113. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClockSyncAccuracy.py +60 -0
  114. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/__init__.py +5 -0
  115. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInBswInstanceRef.py +14 -0
  116. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInSwcInstanceRef.py +14 -0
  117. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingCondition.py +61 -0
  118. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingConditionFormula.py +37 -0
  119. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingExtensionResource.py +60 -0
  120. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingModeInstance.py +61 -0
  121. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/__init__.py +15 -0
  122. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/AgeConstraint.py +57 -0
  123. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/EventTriggeringConstraint.py +203 -0
  124. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +193 -45
  125. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionTimeConstraint.py +101 -0
  126. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/LatencyTimingConstraint.py +100 -0
  127. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/OffsetConstraint.py +56 -0
  128. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationPointConstraint.py +57 -0
  129. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationTiming.py +117 -0
  130. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +59 -24
  131. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +69 -32
  132. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__init__.py +48 -0
  133. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/Traceable.py +11 -0
  134. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__init__.py +16 -0
  135. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +147 -52
  136. armodel/models/M2/AUTOSARTemplates/CommonStructure/__init__.py +17 -205
  137. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticCommonElement.py +11 -0
  138. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +137 -47
  139. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +10 -0
  140. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +285 -346
  141. armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1561 -1249
  142. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwAttributeValue.py +117 -0
  143. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +176 -59
  144. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementConnector.py +73 -0
  145. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +401 -145
  146. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +293 -92
  147. armodel/models/M2/AUTOSARTemplates/GenericStructure/DocumentationOnM1/__init__.py +39 -0
  148. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +1314 -816
  149. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/AnyInstanceRef.py +88 -0
  150. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +37 -17
  151. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +197 -74
  152. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +129 -51
  153. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Enumerations.py +16 -0
  154. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +599 -236
  155. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +902 -594
  156. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +395 -155
  157. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/AtpDefinition.py +36 -0
  158. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/__init__.py +7 -0
  159. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/AttributeValueVariationPoints/__init__.py +36 -0
  160. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/__init__.py +182 -0
  161. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/ApplicationAttributes/__init__.py +97 -0
  162. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +782 -712
  163. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py +186 -179
  164. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +363 -463
  165. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py +160 -154
  166. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +160 -100
  167. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +145 -145
  168. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +137 -131
  169. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +191 -184
  170. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/InstanceRefs.py +45 -39
  171. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +647 -641
  172. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py +21 -17
  173. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +84 -80
  174. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwComponentType.py +76 -0
  175. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +37 -34
  176. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +26 -21
  177. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +39 -34
  178. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +57 -52
  179. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +32 -24
  180. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +160 -155
  181. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +68 -63
  182. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py +46 -40
  183. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +91 -86
  184. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +219 -206
  185. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py +33 -26
  186. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +148 -137
  187. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +54 -49
  188. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +473 -489
  189. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +334 -259
  190. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +62 -58
  191. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +48 -29
  192. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{EcuResourceMapping.py → ECUResourceMapping.py} +48 -45
  193. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py +139 -122
  194. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +628 -344
  195. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__init__.py +2 -0
  196. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +267 -244
  197. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +30 -16
  198. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +750 -685
  199. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +375 -327
  200. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +924 -975
  201. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +92 -76
  202. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +669 -654
  203. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +193 -149
  204. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +110 -92
  205. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +205 -205
  206. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +1376 -1232
  207. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +800 -662
  208. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +269 -270
  209. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +172 -172
  210. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +90 -87
  211. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +899 -789
  212. armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +43 -35
  213. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +65 -52
  214. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +105 -83
  215. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +574 -524
  216. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +739 -658
  217. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +493 -458
  218. armodel/models/M2/MSR/AsamHdo/AdminData.py +150 -136
  219. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +95 -76
  220. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +367 -329
  221. armodel/models/M2/MSR/AsamHdo/Constraints/GlobalConstraints.py +58 -41
  222. armodel/models/M2/MSR/AsamHdo/SpecialData.py +99 -87
  223. armodel/models/M2/MSR/AsamHdo/Units.py +159 -105
  224. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +55 -57
  225. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +40 -41
  226. armodel/models/M2/MSR/DataDictionary/Axis.py +142 -144
  227. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +35 -36
  228. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +383 -351
  229. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +207 -209
  230. armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +31 -33
  231. armodel/models/M2/MSR/DataDictionary/SystemConstant.py +32 -0
  232. armodel/models/M2/MSR/Documentation/Annotation.py +40 -41
  233. armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +162 -163
  234. armodel/models/M2/MSR/Documentation/BlockElements/Formula/__init__.py +26 -0
  235. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +55 -56
  236. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +35 -30
  237. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +110 -110
  238. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +57 -44
  239. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +59 -58
  240. armodel/models/M2/MSR/Documentation/__init__.py +3 -3
  241. armodel/models/M2/MSR/documentation/__init__.py +3 -0
  242. armodel/models/__init__.py +155 -86
  243. armodel/models/utils/uuid_mgr.py +28 -29
  244. armodel/parser/__init__.py +2 -2
  245. armodel/parser/abstract_arxml_parser.py +323 -325
  246. armodel/parser/arxml_parser.py +5832 -5830
  247. armodel/parser/connector_xlsx_parser.py +192 -193
  248. armodel/parser/excel_parser.py +17 -17
  249. armodel/parser/file_parser.py +46 -46
  250. armodel/report/__init__.py +1 -1
  251. armodel/report/connector_xls_report.py +76 -77
  252. armodel/report/excel_report.py +41 -41
  253. armodel/transformer/abstract.py +6 -6
  254. armodel/transformer/admin_data.py +31 -31
  255. armodel/writer/__init__.py +1 -1
  256. armodel/writer/abstract_arxml_writer.py +146 -147
  257. armodel/writer/arxml_writer.py +5969 -5965
  258. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/METADATA +850 -662
  259. armodel-1.9.2.dist-info/RECORD +286 -0
  260. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/WHEEL +1 -1
  261. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/entry_points.txt +0 -1
  262. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info/licenses}/LICENSE +21 -21
  263. armodel/__pycache__/__init__.cpython-312.pyc +0 -0
  264. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +0 -179
  265. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswBehavior.cpython-312.pyc +0 -0
  266. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswImplementation.cpython-312.pyc +0 -0
  267. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswInterfaces.cpython-312.pyc +0 -0
  268. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswOverview.cpython-312.pyc +0 -0
  269. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  270. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HardwareConfiguration.cpython-312.pyc +0 -0
  271. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HeapUsage.cpython-312.pyc +0 -0
  272. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/MemorySectionUsage.cpython-312.pyc +0 -0
  273. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/SoftwareContext.cpython-312.pyc +0 -0
  274. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/StackUsage.cpython-312.pyc +0 -0
  275. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/__init__.cpython-312.pyc +0 -0
  276. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/PortPrototypeBlueprint.cpython-312.pyc +0 -0
  277. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/__init__.cpython-312.pyc +0 -0
  278. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/Keyword.cpython-312.pyc +0 -0
  279. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  280. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +0 -24
  281. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +0 -0
  282. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/ExecutionOrderConstraint.cpython-312.pyc +0 -0
  283. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingConstraint.cpython-312.pyc +0 -0
  284. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingExtensions.cpython-312.pyc +0 -0
  285. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/__init__.cpython-312.pyc +0 -0
  286. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__pycache__/__init__.cpython-312.pyc +0 -0
  287. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Filter.cpython-312.pyc +0 -0
  288. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/FlatMap.cpython-312.pyc +0 -0
  289. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Implementation.cpython-312.pyc +0 -0
  290. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ImplementationDataTypes.cpython-312.pyc +0 -0
  291. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/InternalBehavior.cpython-312.pyc +0 -0
  292. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ModeDeclaration.cpython-312.pyc +0 -0
  293. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ServiceNeeds.cpython-312.pyc +0 -0
  294. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/SwcBswMapping.cpython-312.pyc +0 -0
  295. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/TriggerDeclaration.cpython-312.pyc +0 -0
  296. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  297. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/DiagnosticContribution.cpython-312.pyc +0 -0
  298. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/__init__.cpython-312.pyc +0 -0
  299. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/HwElementCategory.cpython-312.pyc +0 -0
  300. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  301. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ARPackage.cpython-312.pyc +0 -0
  302. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ArObject.cpython-312.pyc +0 -0
  303. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ElementCollection.cpython-312.pyc +0 -0
  304. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/EngineeringObject.cpython-312.pyc +0 -0
  305. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/Identifiable.cpython-312.pyc +0 -0
  306. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/PrimitiveTypes.cpython-312.pyc +0 -0
  307. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/__init__.cpython-312.pyc +0 -0
  308. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/AbstractStructure.cpython-312.pyc +0 -0
  309. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/LifeCycles.cpython-312.pyc +0 -0
  310. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  311. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  312. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/__init__.cpython-312.pyc +0 -0
  313. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  314. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/__init__.cpython-312.pyc +0 -0
  315. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/DataPrototypes.cpython-312.pyc +0 -0
  316. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/Datatypes.cpython-312.pyc +0 -0
  317. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/__init__.cpython-312.pyc +0 -0
  318. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  319. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/__init__.cpython-312.pyc +0 -0
  320. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AccessCount.cpython-312.pyc +0 -0
  321. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AutosarVariableRef.cpython-312.pyc +0 -0
  322. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/DataElements.cpython-312.pyc +0 -0
  323. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/IncludedDataTypes.cpython-312.pyc +0 -0
  324. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/InstanceRefsUsage.cpython-312.pyc +0 -0
  325. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ModeDeclarationGroup.cpython-312.pyc +0 -0
  326. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PerInstanceMemory.cpython-312.pyc +0 -0
  327. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PortAPIOptions.cpython-312.pyc +0 -0
  328. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/RTEEvents.cpython-312.pyc +0 -0
  329. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServerCall.cpython-312.pyc +0 -0
  330. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServiceMapping.cpython-312.pyc +0 -0
  331. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/Trigger.cpython-312.pyc +0 -0
  332. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/__init__.cpython-312.pyc +0 -0
  333. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/Communication.cpython-312.pyc +0 -0
  334. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/EndToEndProtection.cpython-312.pyc +0 -0
  335. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/RPTScenario.cpython-312.pyc +0 -0
  336. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/SwcImplementation.cpython-312.pyc +0 -0
  337. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  338. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanCommunication.cpython-312.pyc +0 -0
  339. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanTopology.cpython-312.pyc +0 -0
  340. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/__init__.cpython-312.pyc +0 -0
  341. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetCommunication.cpython-312.pyc +0 -0
  342. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetFrame.cpython-312.pyc +0 -0
  343. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetTopology.cpython-312.pyc +0 -0
  344. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/NetworkEndpoint.cpython-312.pyc +0 -0
  345. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/ServiceInstances.cpython-312.pyc +0 -0
  346. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/__init__.cpython-312.pyc +0 -0
  347. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayCommunication.cpython-312.pyc +0 -0
  348. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayTopology.cpython-312.pyc +0 -0
  349. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/__init__.cpython-312.pyc +0 -0
  350. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinCommunication.cpython-312.pyc +0 -0
  351. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinTopology.cpython-312.pyc +0 -0
  352. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/__init__.cpython-312.pyc +0 -0
  353. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreCommunication.cpython-312.pyc +0 -0
  354. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreTopology.cpython-312.pyc +0 -0
  355. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/EcuInstance.cpython-312.pyc +0 -0
  356. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/Timing.cpython-312.pyc +0 -0
  357. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/__init__.cpython-312.pyc +0 -0
  358. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/Fibex4Multiplatform.cpython-312.pyc +0 -0
  359. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/__init__.cpython-312.pyc +0 -0
  360. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__pycache__/__init__.cpython-312.pyc +0 -0
  361. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DataMapping.cpython-312.pyc +0 -0
  362. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DiagnosticConnection.cpython-312.pyc +0 -0
  363. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DoIp.cpython-312.pyc +0 -0
  364. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/EcuResourceMapping.cpython-312.pyc +0 -0
  365. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  366. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/NetworkManagement.cpython-312.pyc +0 -0
  367. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/RteEventToOsTaskMapping.cpython-312.pyc +0 -0
  368. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SWmapping.cpython-312.pyc +0 -0
  369. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SecureCommunication.cpython-312.pyc +0 -0
  370. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/TransportProtocols.cpython-312.pyc +0 -0
  371. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  372. armodel/models/M2/AUTOSARTemplates/__pycache__/AutosarTopLevelStructure.cpython-312.pyc +0 -0
  373. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCDescriptionTemplate.cpython-312.pyc +0 -0
  374. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCParameterDefTemplate.cpython-312.pyc +0 -0
  375. armodel/models/M2/AUTOSARTemplates/__pycache__/__init__.cpython-312.pyc +0 -0
  376. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/GlobalConstraints.cpython-312.pyc +0 -0
  377. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/__init__.cpython-312.pyc +0 -0
  378. armodel/models/M2/MSR/AsamHdo/__pycache__/AdminData.cpython-312.pyc +0 -0
  379. armodel/models/M2/MSR/AsamHdo/__pycache__/BaseTypes.cpython-312.pyc +0 -0
  380. armodel/models/M2/MSR/AsamHdo/__pycache__/ComputationMethod.cpython-312.pyc +0 -0
  381. armodel/models/M2/MSR/AsamHdo/__pycache__/SpecialData.cpython-312.pyc +0 -0
  382. armodel/models/M2/MSR/AsamHdo/__pycache__/Units.cpython-312.pyc +0 -0
  383. armodel/models/M2/MSR/AsamHdo/__pycache__/__init__.cpython-312.pyc +0 -0
  384. armodel/models/M2/MSR/CalibrationData/__pycache__/CalibrationValue.cpython-312.pyc +0 -0
  385. armodel/models/M2/MSR/CalibrationData/__pycache__/__init__.cpython-312.pyc +0 -0
  386. armodel/models/M2/MSR/DataDictionary/__pycache__/AuxillaryObjects.cpython-312.pyc +0 -0
  387. armodel/models/M2/MSR/DataDictionary/__pycache__/Axis.cpython-312.pyc +0 -0
  388. armodel/models/M2/MSR/DataDictionary/__pycache__/CalibrationParameter.cpython-312.pyc +0 -0
  389. armodel/models/M2/MSR/DataDictionary/__pycache__/DataDefProperties.cpython-312.pyc +0 -0
  390. armodel/models/M2/MSR/DataDictionary/__pycache__/RecordLayout.cpython-312.pyc +0 -0
  391. armodel/models/M2/MSR/DataDictionary/__pycache__/ServiceProcessTask.cpython-312.pyc +0 -0
  392. armodel/models/M2/MSR/DataDictionary/__pycache__/__init__.cpython-312.pyc +0 -0
  393. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/Figure.cpython-312.pyc +0 -0
  394. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  395. armodel/models/M2/MSR/Documentation/BlockElements.py +0 -18
  396. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/ListElements.cpython-312.pyc +0 -0
  397. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/PaginationAndView.cpython-312.pyc +0 -0
  398. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  399. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/LanguageDataModel.cpython-312.pyc +0 -0
  400. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/MultilanguageData.cpython-312.pyc +0 -0
  401. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/__init__.cpython-312.pyc +0 -0
  402. armodel/models/M2/MSR/Documentation/__pycache__/Annotation.cpython-312.pyc +0 -0
  403. armodel/models/M2/MSR/Documentation/__pycache__/__init__.cpython-312.pyc +0 -0
  404. armodel/models/M2/MSR/__pycache__/__init__.cpython-312.pyc +0 -0
  405. armodel/models/M2/__pycache__/__init__.cpython-312.pyc +0 -0
  406. armodel/models/__pycache__/__init__.cpython-312.pyc +0 -0
  407. armodel/models/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  408. armodel/models/utils/__pycache__/uuid_mgr.cpython-312.pyc +0 -0
  409. armodel/parser/__pycache__/__init__.cpython-312.pyc +0 -0
  410. armodel/parser/__pycache__/abstract_arxml_parser.cpython-312.pyc +0 -0
  411. armodel/parser/__pycache__/arxml_parser.cpython-312.pyc +0 -0
  412. armodel/parser/__pycache__/file_parser.cpython-312.pyc +0 -0
  413. armodel/tests/__init__.py +0 -0
  414. armodel/tests/test_armodel/__init__.py +0 -0
  415. armodel/tests/test_armodel/models/__init__.py +0 -0
  416. armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +0 -116
  417. armodel/tests/test_armodel/models/test_Identifiable.py +0 -85
  418. armodel/tests/test_armodel/models/test_ar_object.py +0 -154
  419. armodel/tests/test_armodel/models/test_ar_package.py +0 -304
  420. armodel/tests/test_armodel/models/test_ar_ref.py +0 -81
  421. armodel/tests/test_armodel/models/test_bsw_module_template.py +0 -52
  422. armodel/tests/test_armodel/models/test_common_structure.py +0 -82
  423. armodel/tests/test_armodel/models/test_data_dictionary.py +0 -30
  424. armodel/tests/test_armodel/models/test_data_prototype.py +0 -93
  425. armodel/tests/test_armodel/models/test_datatype.py +0 -251
  426. armodel/tests/test_armodel/models/test_general_structure.py +0 -56
  427. armodel/tests/test_armodel/models/test_implementation.py +0 -27
  428. armodel/tests/test_armodel/models/test_m2_msr.py +0 -79
  429. armodel/tests/test_armodel/models/test_port_interface.py +0 -202
  430. armodel/tests/test_armodel/models/test_port_prototype.py +0 -15
  431. armodel/tests/test_armodel/parser/__init__.py +0 -0
  432. armodel/tests/test_armodel/parser/test_arxml_parser.py +0 -53
  433. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +0 -218
  434. armodel/tests/test_armodel/parser/test_implementation_data_type.py +0 -247
  435. armodel/tests/test_armodel/parser/test_parse_bswmd.py +0 -202
  436. armodel/tests/test_armodel/parser/test_rte_event.py +0 -142
  437. armodel/tests/test_armodel/parser/test_runnable_entity.py +0 -135
  438. armodel/tests/test_armodel/parser/test_sw_components.py +0 -484
  439. armodel/tests/test_armodel/parser/test_system.py +0 -23
  440. armodel/writer/__pycache__/__init__.cpython-312.pyc +0 -0
  441. armodel/writer/__pycache__/abstract_arxml_writer.cpython-312.pyc +0 -0
  442. armodel/writer/__pycache__/arxml_writer.cpython-312.pyc +0 -0
  443. armodel-1.8.7.dist-info/RECORD +0 -360
  444. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/top_level.txt +0 -0
@@ -1,790 +1,900 @@
1
- from abc import ABCMeta
2
- from typing import List
3
- from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import RxIdentifierRange
4
- from ....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
5
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
6
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, Boolean, Integer, PositiveInteger, RefType, ARBoolean, TimeValue
7
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
8
-
9
- class NmClusterCoupling(ARObject, metaclass = ABCMeta):
10
- def __init__(self):
11
- if type(self) == NmClusterCoupling:
12
- raise NotImplementedError("NmClusterCoupling is an abstract class.")
13
-
14
- super().__init__()
15
-
16
- class CanNmClusterCoupling(NmClusterCoupling):
17
- def __init__(self):
18
- super().__init__()
19
-
20
- self.coupledClusterRefs = []
21
- self.nmBusloadReductionEnabled = None
22
- self.nmImmediateRestartEnabled = None
23
-
24
- def getCoupledClusterRefs(self):
25
- return self.coupledClusterRefs
26
-
27
- def addCoupledClusterRef(self, value):
28
- self.coupledClusterRefs.append(value)
29
- return self
30
-
31
- def getNmBusloadReductionEnabled(self):
32
- return self.nmBusloadReductionEnabled
33
-
34
- def setNmBusloadReductionEnabled(self, value):
35
- self.nmBusloadReductionEnabled = value
36
- return self
37
-
38
- def getNmImmediateRestartEnabled(self):
39
- return self.nmImmediateRestartEnabled
40
-
41
- def setNmImmediateRestartEnabled(self, value):
42
- self.nmImmediateRestartEnabled = value
43
- return self
44
-
45
- class FlexrayNmClusterCoupling(NmClusterCoupling):
46
- def __init__(self):
47
- super().__init__()
48
-
49
- self.coupledClusterRefs = []
50
- self.nmScheduleVariant = None
51
-
52
- def getCoupledClusterRefs(self):
53
- return self.coupledClusterRefs
54
-
55
- def addCoupledClusterRef(self, value):
56
- self.coupledClusterRefs.append(value)
57
- return self
58
-
59
- def getNmScheduleVariant(self):
60
- return self.nmScheduleVariant
61
-
62
- def setNmScheduleVariant(self, value):
63
- self.nmScheduleVariant = value
64
- return self
65
-
66
-
67
- class NmNode(Identifiable, metaclass = ABCMeta):
68
- def __init__(self, parent: ARObject, short_name: str):
69
- if type(self) == NmNode:
70
- raise NotImplementedError("NmNode is an abstract class.")
71
-
72
- super().__init__(parent, short_name)
73
-
74
- self.controllerRef = None
75
- self.nmCoordCluster = None
76
- self.nmCoordinatorRole = None
77
- self.nmIfEcuRef = None
78
- self.nmNodeId = None
79
- self.nmPassiveModeEnabled = None
80
- self.rxNmPduRefs = []
81
- self.TxNmPduRefs = []
82
-
83
- def getControllerRef(self) -> RefType:
84
- return self.controllerRef
85
-
86
- def setControllerRef(self, value):
87
- self.controllerRef = value
88
- return self
89
-
90
- def getNmCoordCluster(self) -> ARNumerical:
91
- return self.nmCoordCluster
92
-
93
- def setNmCoordCluster(self, value: ARNumerical):
94
- self.nmCoordCluster = value
95
- return self
96
-
97
- def getNmCoordinatorRole(self) -> ARLiteral:
98
- return self.nmCoordinatorRole
99
-
100
- def setNmCoordinatorRole(self, value: ARLiteral):
101
- self.nmCoordinatorRole = value
102
- return self
103
-
104
- def getNmIfEcuRef(self) -> RefType:
105
- return self.nmIfEcuRef
106
-
107
- def setNmIfEcuRef(self, value):
108
- self.nmIfEcuRef = value
109
- return self
110
-
111
- def getNmNodeId(self) -> ARNumerical:
112
- return self.nmNodeId
113
-
114
- def setNmNodeId(self, value: ARNumerical):
115
- self.nmNodeId = value
116
- return self
117
-
118
- def getNmPassiveModeEnabled(self) -> ARBoolean:
119
- return self.nmPassiveModeEnabled
120
-
121
- def setNmPassiveModeEnabled(self, value: ARBoolean):
122
- self.nmPassiveModeEnabled = value
123
- return self
124
-
125
- def addRxNmPduRef(self, ref: RefType):
126
- self.rxNmPduRefs.append(ref)
127
- return self
128
-
129
- def getRxNmPduRefs(self) -> List[RefType]:
130
- return self.rxNmPduRefs
131
-
132
- def addTxNmPduRefs(self, ref: RefType):
133
- self.TxNmPduRefs.append(ref)
134
- return self
135
-
136
- def getTxNmPduRefs(self) -> List[RefType]:
137
- return self.TxNmPduRefs
138
-
139
- class CanNmNode(NmNode):
140
- def __init__(self, parent: ARObject, short_name: str):
141
- super().__init__(parent, short_name)
142
-
143
- self.allNmMessagesKeepAwake = None
144
- self.nmCarWakeUpFilterEnabled = None
145
- self.nmCarWakeUpRxEnabled = None
146
- self.nmMsgCycleOffset = None
147
- self.nmMsgReducedTime = None
148
- self.nmRangeConfig = None
149
-
150
- def getAllNmMessagesKeepAwake(self):
151
- return self.allNmMessagesKeepAwake
152
-
153
- def setAllNmMessagesKeepAwake(self, value):
154
- self.allNmMessagesKeepAwake = value
155
- return self
156
-
157
- def getNmCarWakeUpFilterEnabled(self):
158
- return self.nmCarWakeUpFilterEnabled
159
-
160
- def setNmCarWakeUpFilterEnabled(self, value):
161
- self.nmCarWakeUpFilterEnabled = value
162
- return self
163
-
164
- def getNmCarWakeUpRxEnabled(self):
165
- return self.nmCarWakeUpRxEnabled
166
-
167
- def setNmCarWakeUpRxEnabled(self, value):
168
- self.nmCarWakeUpRxEnabled = value
169
- return self
170
-
171
- def getNmMsgCycleOffset(self):
172
- return self.nmMsgCycleOffset
173
-
174
- def setNmMsgCycleOffset(self, value):
175
- self.nmMsgCycleOffset = value
176
- return self
177
-
178
- def getNmMsgReducedTime(self):
179
- return self.nmMsgReducedTime
180
-
181
- def setNmMsgReducedTime(self, value):
182
- self.nmMsgReducedTime = value
183
- return self
184
-
185
- def getNmRangeConfig(self) -> RxIdentifierRange:
186
- return self.nmRangeConfig
187
-
188
- def setNmRangeConfig(self, value: RxIdentifierRange):
189
- self.nmRangeConfig = value
190
-
191
- class FlexrayNmNode(NmNode):
192
- def __init__(self, parent: ARObject, short_name: str):
193
- super().__init__(parent, short_name)
194
-
195
- class J1939NmNode(NmNode):
196
- def __init__(self, parent: ARObject, short_name: str):
197
- super().__init__(parent, short_name)
198
-
199
- class UdpNmNode(NmNode):
200
- def __init__(self, parent: ARObject, short_name: str):
201
- super().__init__(parent, short_name)
202
-
203
- self.allNmMessagesKeepAwake = None # type: Boolean
204
- self.nmMsgCycleOffset = None # type: TimeValue
205
-
206
- def getAllNmMessagesKeepAwake(self):
207
- return self.allNmMessagesKeepAwake
208
-
209
- def setAllNmMessagesKeepAwake(self, value):
210
- if value is not None:
211
- self.allNmMessagesKeepAwake = value
212
- return self
213
-
214
- def getNmMsgCycleOffset(self):
215
- return self.nmMsgCycleOffset
216
-
217
- def setNmMsgCycleOffset(self, value):
218
- if value is not None:
219
- self.nmMsgCycleOffset = value
220
- return self
221
-
222
- class BusspecificNmEcu(ARObject, metaclass = ABCMeta):
223
- def __init__(self):
224
- super().__init__()
225
-
226
- class CanNmEcu(BusspecificNmEcu):
227
- def __init__(self):
228
- super().__init__()
229
-
230
- class FlexrayNmEcu(BusspecificNmEcu):
231
- def __init__(self):
232
- super().__init__()
233
-
234
- class J1939NmEcu(BusspecificNmEcu):
235
- def __init__(self):
236
- super().__init__()
237
-
238
- class UdpNmEcu(BusspecificNmEcu):
239
- def __init__(self):
240
- super().__init__()
241
-
242
- self.nmSynchronizationPointEnabled = None # type: Boolean ## Only AR 4.3.1
243
-
244
- def getNmSynchronizationPointEnabled(self):
245
- return self.nmSynchronizationPointEnabled
246
-
247
- def setNmSynchronizationPointEnabled(self, value):
248
- if value is not None:
249
- self.nmSynchronizationPointEnabled = value
250
- return self
251
-
252
-
253
- class NmEcu(Identifiable):
254
- def __init__(self, parent: ARObject, short_name: str):
255
- super().__init__(parent, short_name)
256
-
257
- self.busDependentNmEcus = [] # type: List[BusspecificNmEcu]
258
- self.ecuInstanceRef = None # type: RefType
259
- self.nmBusSynchronizationEnabled = None # type: Boolean
260
- self.nmComControlEnabled = None # type: Boolean
261
- self.nmCoordinator = None # type: NmCoordinator
262
- self.nmCycletimeMainFunction = None # type: TimeValue
263
- self.nmNodeDetectionEnabled = None # type: Boolean
264
- self.nmNodeIdEnabled = None # type: Boolean
265
- self.nmPduRxIndicationEnabled = None # type: Boolean
266
- self.nmRemoteSleepIndEnabled = None # type: Boolean
267
- self.nmRepeatMsgIndEnabled = None # type: Boolean
268
- self.nmStateChangeIndEnabled = None # type: Boolean
269
- self.nmUserDataEnabled = None # type: Boolean
270
-
271
- def getBusDependentNmEcus(self):
272
- return self.busDependentNmEcus
273
-
274
- def addBusDependentNmEcu(self, value):
275
- if value is not None:
276
- self.busDependentNmEcus.append(value)
277
- return self
278
-
279
- def getEcuInstanceRef(self):
280
- return self.ecuInstanceRef
281
-
282
- def setEcuInstanceRef(self, value):
283
- if value is not None:
284
- self.ecuInstanceRef = value
285
- return self
286
-
287
- def getNmBusSynchronizationEnabled(self):
288
- return self.nmBusSynchronizationEnabled
289
-
290
- def setNmBusSynchronizationEnabled(self, value):
291
- if value is not None:
292
- self.nmBusSynchronizationEnabled = value
293
- return self
294
-
295
- def getNmComControlEnabled(self):
296
- return self.nmComControlEnabled
297
-
298
- def setNmComControlEnabled(self, value):
299
- if value is not None:
300
- self.nmComControlEnabled = value
301
- return self
302
-
303
- def getNmCoordinator(self):
304
- return self.nmCoordinator
305
-
306
- def setNmCoordinator(self, value):
307
- if value is not None:
308
- self.nmCoordinator = value
309
- return self
310
-
311
- def getNmCycletimeMainFunction(self):
312
- return self.nmCycletimeMainFunction
313
-
314
- def setNmCycletimeMainFunction(self, value):
315
- if value is not None:
316
- self.nmCycletimeMainFunction = value
317
- return self
318
-
319
- def getNmNodeDetectionEnabled(self):
320
- return self.nmNodeDetectionEnabled
321
-
322
- def setNmNodeDetectionEnabled(self, value):
323
- if value is not None:
324
- self.nmNodeDetectionEnabled = value
325
- return self
326
-
327
- def getNmNodeIdEnabled(self):
328
- return self.nmNodeIdEnabled
329
-
330
- def setNmNodeIdEnabled(self, value):
331
- if value is not None:
332
- self.nmNodeIdEnabled = value
333
- return self
334
-
335
- def getNmPduRxIndicationEnabled(self):
336
- return self.nmPduRxIndicationEnabled
337
-
338
- def setNmPduRxIndicationEnabled(self, value):
339
- if value is not None:
340
- self.nmPduRxIndicationEnabled = value
341
- return self
342
-
343
- def getNmRemoteSleepIndEnabled(self):
344
- return self.nmRemoteSleepIndEnabled
345
-
346
- def setNmRemoteSleepIndEnabled(self, value):
347
- if value is not None:
348
- self.nmRemoteSleepIndEnabled = value
349
- return self
350
-
351
- def getNmRepeatMsgIndEnabled(self):
352
- return self.nmRepeatMsgIndEnabled
353
-
354
- def setNmRepeatMsgIndEnabled(self, value):
355
- if value is not None:
356
- self.nmRepeatMsgIndEnabled = value
357
- return self
358
-
359
- def getNmStateChangeIndEnabled(self):
360
- return self.nmStateChangeIndEnabled
361
-
362
- def setNmStateChangeIndEnabled(self, value):
363
- if value is not None:
364
- self.nmStateChangeIndEnabled = value
365
- return self
366
-
367
- def getNmUserDataEnabled(self):
368
- return self.nmUserDataEnabled
369
-
370
- def setNmUserDataEnabled(self, value):
371
- if value is not None:
372
- self.nmUserDataEnabled = value
373
- return self
374
-
375
- class NmConfig(FibexElement):
376
- def __init__(self, parent: ARObject, short_name: str):
377
- super().__init__(parent, short_name)
378
-
379
- self.nmClusterCouplings = [] # type: List[NmClusterCoupling]
380
- self.nmIfEcus = [] # type: List[NmEcu]
381
-
382
- def createCanNmCluster(self, short_name: str): # type: (str) -> CanNmCluster
383
- if (short_name not in self.elements):
384
- cluster = CanNmCluster(self, short_name)
385
- self.addElement(cluster)
386
- return self.getElement(short_name)
387
-
388
- def createUdpNmCluster(self, short_name: str): # type: (str) -> UdpNmCluster
389
- if (short_name not in self.elements):
390
- cluster = UdpNmCluster(self, short_name)
391
- self.addElement(cluster)
392
- return self.getElement(short_name)
393
-
394
- def getCanNmClusters(self): # type: () -> List[CanNmCluster]
395
- return list(sorted(filter(lambda a: isinstance(a, CanNmCluster), self.elements), key= lambda o:o.short_name))
396
-
397
- def getUdpNmClusters(self): # type: () -> List[UdpNmCluster]
398
- return list(sorted(filter(lambda a: isinstance(a, UdpNmCluster), self.elements), key= lambda o:o.short_name))
399
-
400
- def getNmClusters(self): # type: () -> List[NmCluster]
401
- return list(sorted(filter(lambda a: isinstance(a, NmCluster), self.elements), key= lambda o:o.short_name))
402
-
403
- def getNmClusterCouplings(self):
404
- return self.nmClusterCouplings
405
-
406
- def addNmClusterCouplings(self, value):
407
- self.nmClusterCouplings.append(value)
408
- return self
409
-
410
- def getNmIfEcus(self):
411
- return self.nmIfEcus
412
-
413
- def createNmEcu(self, short_name: str) -> NmEcu:
414
- if (short_name not in self.elements):
415
- cluster = NmEcu(self, short_name)
416
- self.addElement(cluster)
417
- self.nmIfEcus.append(cluster)
418
- return self.getElement(short_name)
419
-
420
- class NmCluster(Identifiable, metaclass=ABCMeta):
421
- def __init__(self, parent: ARObject, short_name: str):
422
- super().__init__(parent, short_name)
423
-
424
- self.communicationClusterRef = None
425
- self.nmChannelId = None
426
- self.nmChannelSleepMaster = None
427
- self.nmNodes = [] # type: List[NmNode]
428
- self.nmNodeDetectionEnabled = None
429
- self.nmNodeIdEnabled = None
430
- self.nmPncParticipation = None
431
- self.nmRepeatMsgIndEnabled = None
432
- self._nmSynchronizingNetwork = None
433
-
434
- def getCommunicationClusterRef(self):
435
- return self.communicationClusterRef
436
-
437
- def setCommunicationClusterRef(self, value):
438
- self.communicationClusterRef = value
439
- return self
440
-
441
- def getNmChannelId(self):
442
- return self.nmChannelId
443
-
444
- def setNmChannelId(self, value):
445
- self.nmChannelId = value
446
- return self
447
-
448
- def getNmChannelSleepMaster(self):
449
- return self.nmChannelSleepMaster
450
-
451
- def setNmChannelSleepMaster(self, value):
452
- self.nmChannelSleepMaster = value
453
- return self
454
-
455
- def createCanNmNode(self, short_name: str) -> CanNmNode:
456
- if (short_name not in self.elements):
457
- node = CanNmNode(self, short_name)
458
- self.addElement(node)
459
- self.nmNodes.append(node)
460
- return self.getElement(short_name)
461
-
462
- def readUdpNmNode(self, short_name: str) -> UdpNmNode:
463
- if (short_name not in self.elements):
464
- node = UdpNmNode(self, short_name)
465
- self.addElement(node)
466
- self.nmNodes.append(node)
467
- return self.getElement(short_name)
468
-
469
- def getCanNmNodes(self) -> List[CanNmNode]:
470
- return list(sorted(filter(lambda a: isinstance(a, CanNmNode), self.elements), key= lambda o:o.short_name))
471
-
472
- def getUdpNmNodes(self) -> List[UdpNmNode]:
473
- return list(sorted(filter(lambda a: isinstance(a, UdpNmNode), self.elements), key= lambda o:o.short_name))
474
-
475
- def getNmNodes(self) -> List[NmNode]:
476
- return list(sorted(filter(lambda a: isinstance(a, NmNode), self.elements), key= lambda o:o.short_name))
477
-
478
- def getNmNodeDetectionEnabled(self):
479
- return self.nmNodeDetectionEnabled
480
-
481
- def setNmNodeDetectionEnabled(self, value):
482
- self.nmNodeDetectionEnabled = value
483
- return self
484
-
485
- def getNmNodeIdEnabled(self):
486
- return self.nmNodeIdEnabled
487
-
488
- def setNmNodeIdEnabled(self, value):
489
- self.nmNodeIdEnabled = value
490
- return self
491
-
492
- def getNmPncParticipation(self):
493
- return self.nmPncParticipation
494
-
495
- def setNmPncParticipation(self, value):
496
- self.nmPncParticipation = value
497
- return self
498
-
499
- def getNmRepeatMsgIndEnabled(self):
500
- return self.nmRepeatMsgIndEnabled
501
-
502
- def setNmRepeatMsgIndEnabled(self, value):
503
- self.nmRepeatMsgIndEnabled = value
504
- return self
505
-
506
- def getNmSynchronizingNetwork(self):
507
- return self._nmSynchronizingNetwork
508
-
509
- def setNmSynchronizingNetwork(self, value):
510
- self._nmSynchronizingNetwork = value
511
- return self
512
-
513
- class CanNmCluster(NmCluster):
514
- def __init__(self, parent: ARObject, short_name: str):
515
- super().__init__(parent, short_name)
516
-
517
- self.nmBusloadReductionActive = None
518
- self.nmCarWakeUpBitPosition = None
519
- self.nmCarWakeUpFilterNodeId = None
520
- self.nmCarWakeUpRxEnabled = None
521
- self.nmCbvPosition = None
522
- self.nmChannelActive = None
523
- self.nmImmediateNmCycleTime = None
524
- self.nmImmediateNmTransmissions = None
525
- self.nmMessageTimeoutTime = None
526
- self.nmMsgCycleTime = None
527
- self.nmNetworkTimeout = None
528
- self.nmNidPosition = None
529
- self.nmRemoteSleepIndicationTime = None
530
- self.nmRepeatMessageTime = None
531
- self.nmUserDataLength = None
532
- self.nmWaitBusSleepTime = None
533
-
534
- def getNmBusloadReductionActive(self):
535
- return self.nmBusloadReductionActive
536
-
537
- def setNmBusloadReductionActive(self, value):
538
- self.nmBusloadReductionActive = value
539
- return self
540
-
541
- def getNmCarWakeUpBitPosition(self):
542
- return self.nmCarWakeUpBitPosition
543
-
544
- def setNmCarWakeUpBitPosition(self, value):
545
- self.nmCarWakeUpBitPosition = value
546
- return self
547
-
548
- def getNmCarWakeUpFilterNodeId(self):
549
- return self.nmCarWakeUpFilterNodeId
550
-
551
- def setNmCarWakeUpFilterNodeId(self, value):
552
- self.nmCarWakeUpFilterNodeId = value
553
- return self
554
-
555
- def getNmCarWakeUpRxEnabled(self):
556
- return self.nmCarWakeUpRxEnabled
557
-
558
- def setNmCarWakeUpRxEnabled(self, value):
559
- self.nmCarWakeUpRxEnabled = value
560
- return self
561
-
562
- def getNmCbvPosition(self):
563
- return self.nmCbvPosition
564
-
565
- def setNmCbvPosition(self, value):
566
- self.nmCbvPosition = value
567
- return self
568
-
569
- def getNmChannelActive(self):
570
- return self.nmChannelActive
571
-
572
- def setNmChannelActive(self, value):
573
- self.nmChannelActive = value
574
- return self
575
-
576
- def getNmImmediateNmCycleTime(self):
577
- return self.nmImmediateNmCycleTime
578
-
579
- def setNmImmediateNmCycleTime(self, value):
580
- self.nmImmediateNmCycleTime = value
581
- return self
582
-
583
- def getNmImmediateNmTransmissions(self):
584
- return self.nmImmediateNmTransmissions
585
-
586
- def setNmImmediateNmTransmissions(self, value):
587
- self.nmImmediateNmTransmissions = value
588
- return self
589
-
590
- def getNmMessageTimeoutTime(self):
591
- return self.nmMessageTimeoutTime
592
-
593
- def setNmMessageTimeoutTime(self, value):
594
- self.nmMessageTimeoutTime = value
595
- return self
596
-
597
- def getNmMsgCycleTime(self):
598
- return self.nmMsgCycleTime
599
-
600
- def setNmMsgCycleTime(self, value):
601
- self.nmMsgCycleTime = value
602
- return self
603
-
604
- def getNmNetworkTimeout(self):
605
- return self.nmNetworkTimeout
606
-
607
- def setNmNetworkTimeout(self, value):
608
- self.nmNetworkTimeout = value
609
- return self
610
-
611
- def getNmNidPosition(self):
612
- return self.nmNidPosition
613
-
614
- def setNmNidPosition(self, value):
615
- self.nmNidPosition = value
616
- return self
617
-
618
- def getNmRemoteSleepIndicationTime(self):
619
- return self.nmRemoteSleepIndicationTime
620
-
621
- def setNmRemoteSleepIndicationTime(self, value):
622
- self.nmRemoteSleepIndicationTime = value
623
- return self
624
-
625
- def getNmRepeatMessageTime(self):
626
- return self.nmRepeatMessageTime
627
-
628
- def setNmRepeatMessageTime(self, value):
629
- self.nmRepeatMessageTime = value
630
- return self
631
-
632
- def getNmUserDataLength(self):
633
- return self.nmUserDataLength
634
-
635
- def setNmUserDataLength(self, value):
636
- self.nmUserDataLength = value
637
- return self
638
-
639
- def getNmWaitBusSleepTime(self):
640
- return self.nmWaitBusSleepTime
641
-
642
- def setNmWaitBusSleepTime(self, value):
643
- self.nmWaitBusSleepTime = value
644
- return self
645
-
646
- class FlexrayNmCluster(NmCluster):
647
- def __init__(self, parent: ARObject, short_name: str):
648
- super().__init__(parent, short_name)
649
-
650
- class J1939NmCluster(NmCluster):
651
- def __init__(self, parent: ARObject, short_name: str):
652
- super().__init__(parent, short_name)
653
-
654
- class UdpNmClusterCoupling(NmClusterCoupling):
655
- def __init__(self):
656
- super().__init__()
657
-
658
- self.coupledClusterRefs = [] # type: List[RefType]
659
- self.nmImmediateRestartEnabled = None # type: Boolean
660
-
661
- def getCoupledClusterRefs(self):
662
- return self.coupledClusterRefs
663
-
664
- def addCoupledClusterRef(self, value):
665
- if value is not None:
666
- self.coupledClusterRefs.append(value)
667
- return self
668
-
669
- def getNmImmediateRestartEnabled(self):
670
- return self.nmImmediateRestartEnabled
671
-
672
- def setNmImmediateRestartEnabled(self, value):
673
- if value is not None:
674
- self.nmImmediateRestartEnabled = value
675
- return self
676
-
677
-
678
- class UdpNmCluster(NmCluster):
679
- def __init__(self, parent: ARObject, short_name: str):
680
- super().__init__(parent, short_name)
681
-
682
- self.nmCbvPosition = None # type: Integer
683
- self.nmChannelActive = None # type: Boolean
684
- self.nmImmediateNmCycleTime = None # type: TimeValue
685
- self.nmImmediateNmTransmissions = None # type: PositiveInteger
686
- self.nmMessageTimeoutTime = None # type: TimeValue
687
- self.nmMsgCycleTime = None # type: TimeValue
688
- self.nmNetworkTimeout = None # type: TimeValue
689
- self.nmNidPosition = None # type: Integer
690
- self.nmRemoteSleepIndicationTime = None # type: TimeValue
691
- self.nmRepeatMessageTime = None # type: TimeValue
692
- self.nmWaitBusSleepTime = None # type: TimeValue
693
- self.vlanRef = None # type: RefType
694
-
695
- def getNmCbvPosition(self):
696
- return self.nmCbvPosition
697
-
698
- def setNmCbvPosition(self, value):
699
- if value is not None:
700
- self.nmCbvPosition = value
701
- return self
702
-
703
- def getNmChannelActive(self):
704
- return self.nmChannelActive
705
-
706
- def setNmChannelActive(self, value):
707
- if value is not None:
708
- self.nmChannelActive = value
709
- return self
710
-
711
-
712
- def getNmImmediateNmCycleTime(self):
713
- return self.nmImmediateNmCycleTime
714
-
715
- def setNmImmediateNmCycleTime(self, value):
716
- if value is not None:
717
- self.nmImmediateNmCycleTime = value
718
- return self
719
-
720
- def getNmImmediateNmTransmissions(self):
721
- return self.nmImmediateNmTransmissions
722
-
723
- def setNmImmediateNmTransmissions(self, value):
724
- if value is not None:
725
- self.nmImmediateNmTransmissions = value
726
- return self
727
-
728
- def getNmMessageTimeoutTime(self):
729
- return self.nmMessageTimeoutTime
730
-
731
- def setNmMessageTimeoutTime(self, value):
732
- if value is not None:
733
- self.nmMessageTimeoutTime = value
734
- return self
735
-
736
- def getNmMsgCycleTime(self):
737
- return self.nmMsgCycleTime
738
-
739
- def setNmMsgCycleTime(self, value):
740
- if value is not None:
741
- self.nmMsgCycleTime = value
742
- return self
743
-
744
- def getNmNetworkTimeout(self):
745
- return self.nmNetworkTimeout
746
-
747
- def setNmNetworkTimeout(self, value):
748
- if value is not None:
749
- self.nmNetworkTimeout = value
750
- return self
751
-
752
- def getNmNidPosition(self):
753
- return self.nmNidPosition
754
-
755
- def setNmNidPosition(self, value):
756
- if value is not None:
757
- self.nmNidPosition = value
758
- return self
759
-
760
- def getNmRemoteSleepIndicationTime(self):
761
- return self.nmRemoteSleepIndicationTime
762
-
763
- def setNmRemoteSleepIndicationTime(self, value):
764
- if value is not None:
765
- self.nmRemoteSleepIndicationTime = value
766
- return self
767
-
768
- def getNmRepeatMessageTime(self):
769
- return self.nmRepeatMessageTime
770
-
771
- def setNmRepeatMessageTime(self, value):
772
- if value is not None:
773
- self.nmRepeatMessageTime = value
774
- return self
775
-
776
- def getNmWaitBusSleepTime(self):
777
- return self.nmWaitBusSleepTime
778
-
779
- def setNmWaitBusSleepTime(self, value):
780
- if value is not None:
781
- self.nmWaitBusSleepTime = value
782
- return self
783
-
784
- def getVlanRef(self):
785
- return self.vlanRef
786
-
787
- def setVlanRef(self, value):
788
- if value is not None:
789
- self.vlanRef = value
1
+ # This module contains AUTOSAR System Template classes for network management
2
+ # It defines CAN, FlexRay, J1939, and UDP network management configurations
3
+
4
+ from abc import ABC
5
+ from typing import List
6
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import RxIdentifierRange
7
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
8
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
9
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, Boolean, Integer, PositiveInteger, RefType, ARBoolean, TimeValue
10
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
11
+
12
+ class NmClusterCoupling(ARObject, ABC):
13
+ """
14
+ Abstract base class for network management cluster coupling,
15
+ defining common properties for connecting different types of
16
+ network management clusters for coordinated network management.
17
+ """
18
+ def __init__(self):
19
+ if type(self) == NmClusterCoupling:
20
+ raise TypeError("NmClusterCoupling is an abstract class.")
21
+
22
+ super().__init__()
23
+
24
+ class CanNmClusterCoupling(NmClusterCoupling):
25
+ """
26
+ Defines coupling properties for CAN network management clusters,
27
+ specifying coupled cluster references and CAN-specific NM features
28
+ like busload reduction and immediate restart capabilities.
29
+ """
30
+ def __init__(self):
31
+ super().__init__()
32
+
33
+ self.coupledClusterRefs = []
34
+ self.nmBusloadReductionEnabled = None
35
+ self.nmImmediateRestartEnabled = None
36
+
37
+ def getCoupledClusterRefs(self):
38
+ return self.coupledClusterRefs
39
+
40
+ def addCoupledClusterRef(self, value):
41
+ self.coupledClusterRefs.append(value)
42
+ return self
43
+
44
+ def getNmBusloadReductionEnabled(self):
45
+ return self.nmBusloadReductionEnabled
46
+
47
+ def setNmBusloadReductionEnabled(self, value):
48
+ self.nmBusloadReductionEnabled = value
49
+ return self
50
+
51
+ def getNmImmediateRestartEnabled(self):
52
+ return self.nmImmediateRestartEnabled
53
+
54
+ def setNmImmediateRestartEnabled(self, value):
55
+ self.nmImmediateRestartEnabled = value
56
+ return self
57
+
58
+ class FlexrayNmClusterCoupling(NmClusterCoupling):
59
+ """
60
+ Defines coupling properties for FlexRay network management clusters,
61
+ specifying coupled cluster references and FlexRay-specific NM
62
+ schedule variant configurations.
63
+ """
64
+ def __init__(self):
65
+ super().__init__()
66
+
67
+ self.coupledClusterRefs = []
68
+ self.nmScheduleVariant = None
69
+
70
+ def getCoupledClusterRefs(self):
71
+ return self.coupledClusterRefs
72
+
73
+ def addCoupledClusterRef(self, value):
74
+ self.coupledClusterRefs.append(value)
75
+ return self
76
+
77
+ def getNmScheduleVariant(self):
78
+ return self.nmScheduleVariant
79
+
80
+ def setNmScheduleVariant(self, value):
81
+ self.nmScheduleVariant = value
82
+ return self
83
+
84
+
85
+ class NmNode(Identifiable, ABC):
86
+ """
87
+ Abstract base class for network management nodes, defining
88
+ common properties for different types of NM nodes including
89
+ controller references, node IDs, and communication properties.
90
+ """
91
+ def __init__(self, parent: ARObject, short_name: str):
92
+ if type(self) == NmNode:
93
+ raise TypeError("NmNode is an abstract class.")
94
+
95
+ super().__init__(parent, short_name)
96
+
97
+ self.controllerRef: RefType = None
98
+ self.nmCoordCluster: ARNumerical = None
99
+ self.nmCoordinatorRole: ARLiteral = None
100
+ self.nmIfEcuRef: RefType = None
101
+ self.nmNodeId: ARNumerical = None
102
+ self.nmPassiveModeEnabled: ARBoolean = None
103
+ self.rxNmPduRefs: List[RefType] = []
104
+ self.TxNmPduRefs: List[RefType] = []
105
+
106
+ def getControllerRef(self) -> RefType:
107
+ return self.controllerRef
108
+
109
+ def setControllerRef(self, value):
110
+ self.controllerRef = value
111
+ return self
112
+
113
+ def getNmCoordCluster(self) -> ARNumerical:
114
+ return self.nmCoordCluster
115
+
116
+ def setNmCoordCluster(self, value: ARNumerical):
117
+ self.nmCoordCluster = value
118
+ return self
119
+
120
+ def getNmCoordinatorRole(self) -> ARLiteral:
121
+ return self.nmCoordinatorRole
122
+
123
+ def setNmCoordinatorRole(self, value: ARLiteral):
124
+ self.nmCoordinatorRole = value
125
+ return self
126
+
127
+ def getNmIfEcuRef(self) -> RefType:
128
+ return self.nmIfEcuRef
129
+
130
+ def setNmIfEcuRef(self, value):
131
+ self.nmIfEcuRef = value
132
+ return self
133
+
134
+ def getNmNodeId(self) -> ARNumerical:
135
+ return self.nmNodeId
136
+
137
+ def setNmNodeId(self, value: ARNumerical):
138
+ self.nmNodeId = value
139
+ return self
140
+
141
+ def getNmPassiveModeEnabled(self) -> ARBoolean:
142
+ return self.nmPassiveModeEnabled
143
+
144
+ def setNmPassiveModeEnabled(self, value: ARBoolean):
145
+ self.nmPassiveModeEnabled = value
146
+ return self
147
+
148
+ def addRxNmPduRef(self, ref: RefType):
149
+ self.rxNmPduRefs.append(ref)
150
+ return self
151
+
152
+ def getRxNmPduRefs(self) -> List[RefType]:
153
+ return self.rxNmPduRefs
154
+
155
+ def addTxNmPduRefs(self, ref: RefType):
156
+ self.TxNmPduRefs.append(ref)
157
+ return self
158
+
159
+ def getTxNmPduRefs(self) -> List[RefType]:
160
+ return self.TxNmPduRefs
161
+
162
+ class CanNmNode(NmNode):
163
+ """
164
+ Represents a CAN network management node in the system,
165
+ defining CAN-specific NM properties including message
166
+ cycle offsets, timing configurations, and range settings.
167
+ """
168
+ def __init__(self, parent: ARObject, short_name: str):
169
+ super().__init__(parent, short_name)
170
+
171
+ self.allNmMessagesKeepAwake = None
172
+ self.nmCarWakeUpFilterEnabled = None
173
+ self.nmCarWakeUpRxEnabled = None
174
+ self.nmMsgCycleOffset = None
175
+ self.nmMsgReducedTime = None
176
+ self.nmRangeConfig: RxIdentifierRange = None
177
+
178
+ def getAllNmMessagesKeepAwake(self):
179
+ return self.allNmMessagesKeepAwake
180
+
181
+ def setAllNmMessagesKeepAwake(self, value):
182
+ self.allNmMessagesKeepAwake = value
183
+ return self
184
+
185
+ def getNmCarWakeUpFilterEnabled(self):
186
+ return self.nmCarWakeUpFilterEnabled
187
+
188
+ def setNmCarWakeUpFilterEnabled(self, value):
189
+ self.nmCarWakeUpFilterEnabled = value
190
+ return self
191
+
192
+ def getNmCarWakeUpRxEnabled(self):
193
+ return self.nmCarWakeUpRxEnabled
194
+
195
+ def setNmCarWakeUpRxEnabled(self, value):
196
+ self.nmCarWakeUpRxEnabled = value
197
+ return self
198
+
199
+ def getNmMsgCycleOffset(self):
200
+ return self.nmMsgCycleOffset
201
+
202
+ def setNmMsgCycleOffset(self, value):
203
+ self.nmMsgCycleOffset = value
204
+ return self
205
+
206
+ def getNmMsgReducedTime(self):
207
+ return self.nmMsgReducedTime
208
+
209
+ def setNmMsgReducedTime(self, value):
210
+ self.nmMsgReducedTime = value
211
+ return self
212
+
213
+ def getNmRangeConfig(self) -> RxIdentifierRange:
214
+ return self.nmRangeConfig
215
+
216
+ def setNmRangeConfig(self, value: RxIdentifierRange):
217
+ self.nmRangeConfig = value
218
+
219
+ class FlexrayNmNode(NmNode):
220
+ """
221
+ Represents a FlexRay network management node in the system,
222
+ defining FlexRay-specific NM properties for time-triggered
223
+ network management communication.
224
+ """
225
+ def __init__(self, parent: ARObject, short_name: str):
226
+ super().__init__(parent, short_name)
227
+
228
+ class J1939NmNode(NmNode):
229
+ """
230
+ Represents a J1939 network management node in the system,
231
+ defining J1939-specific NM properties for heavy-duty
232
+ vehicle network management communication.
233
+ """
234
+ def __init__(self, parent: ARObject, short_name: str):
235
+ super().__init__(parent, short_name)
236
+
237
+ class UdpNmNode(NmNode):
238
+ """
239
+ Represents a UDP network management node in the system,
240
+ defining UDP-specific NM properties including message
241
+ timing and wake-up capabilities.
242
+ """
243
+ def __init__(self, parent: ARObject, short_name: str):
244
+ super().__init__(parent, short_name)
245
+
246
+ self.allNmMessagesKeepAwake: Boolean = None
247
+ self.nmMsgCycleOffset: TimeValue = None
248
+
249
+ def getAllNmMessagesKeepAwake(self):
250
+ return self.allNmMessagesKeepAwake
251
+
252
+ def setAllNmMessagesKeepAwake(self, value):
253
+ if value is not None:
254
+ self.allNmMessagesKeepAwake = value
255
+ return self
256
+
257
+ def getNmMsgCycleOffset(self):
258
+ return self.nmMsgCycleOffset
259
+
260
+ def setNmMsgCycleOffset(self, value):
261
+ if value is not None:
262
+ self.nmMsgCycleOffset = value
263
+ return self
264
+
265
+ class BusspecificNmEcu(ARObject, ABC):
266
+ """
267
+ Abstract base class for bus-specific network management ECU
268
+ configurations, defining common properties for different
269
+ types of bus-specific NM implementations.
270
+ """
271
+ def __init__(self):
272
+ if type(self) is BusspecificNmEcu:
273
+ raise TypeError("BusspecificNmEcu is an abstract class.")
274
+ super().__init__()
275
+
276
+ class CanNmEcu(BusspecificNmEcu):
277
+ """
278
+ Defines CAN-specific network management ECU properties,
279
+ implementing bus-specific NM features for CAN communication.
280
+ """
281
+ def __init__(self):
282
+ super().__init__()
283
+
284
+ class FlexrayNmEcu(BusspecificNmEcu):
285
+ """
286
+ Defines FlexRay-specific network management ECU properties,
287
+ implementing bus-specific NM features for FlexRay communication.
288
+ """
289
+ def __init__(self):
290
+ super().__init__()
291
+
292
+ class J1939NmEcu(BusspecificNmEcu):
293
+ """
294
+ Defines J1939-specific network management ECU properties,
295
+ implementing bus-specific NM features for J1939 communication.
296
+ """
297
+ def __init__(self):
298
+ super().__init__()
299
+
300
+ class UdpNmEcu(BusspecificNmEcu):
301
+ """
302
+ Defines UDP-specific network management ECU properties,
303
+ implementing bus-specific NM features for UDP communication
304
+ including synchronization point capabilities.
305
+ """
306
+ def __init__(self):
307
+ super().__init__()
308
+
309
+ self.nmSynchronizationPointEnabled: Boolean = None
310
+
311
+ def getNmSynchronizationPointEnabled(self):
312
+ return self.nmSynchronizationPointEnabled
313
+
314
+ def setNmSynchronizationPointEnabled(self, value):
315
+ if value is not None:
316
+ self.nmSynchronizationPointEnabled = value
317
+ return self
318
+
319
+
320
+ class NmEcu(Identifiable):
321
+ """
322
+ Represents a network management ECU in the system,
323
+ defining properties for NM coordination, node detection,
324
+ and communication control across different bus types.
325
+ """
326
+ def __init__(self, parent: ARObject, short_name: str):
327
+ super().__init__(parent, short_name)
328
+
329
+ self.busDependentNmEcus: List[BusspecificNmEcu] = []
330
+ self.ecuInstanceRef: RefType = None
331
+ self.nmBusSynchronizationEnabled: Boolean = None
332
+ self.nmComControlEnabled: Boolean = None
333
+ self.nmCoordinator = None
334
+ self.nmCycletimeMainFunction: TimeValue = None
335
+ self.nmNodeDetectionEnabled: Boolean = None
336
+ self.nmNodeIdEnabled: Boolean = None
337
+ self.nmPduRxIndicationEnabled: Boolean = None
338
+ self.nmRemoteSleepIndEnabled: Boolean = None
339
+ self.nmRepeatMsgIndEnabled: Boolean = None
340
+ self.nmStateChangeIndEnabled: Boolean = None
341
+ self.nmUserDataEnabled: Boolean = None
342
+
343
+ def getBusDependentNmEcus(self):
344
+ return self.busDependentNmEcus
345
+
346
+ def addBusDependentNmEcu(self, value):
347
+ if value is not None:
348
+ self.busDependentNmEcus.append(value)
349
+ return self
350
+
351
+ def getEcuInstanceRef(self):
352
+ return self.ecuInstanceRef
353
+
354
+ def setEcuInstanceRef(self, value):
355
+ if value is not None:
356
+ self.ecuInstanceRef = value
357
+ return self
358
+
359
+ def getNmBusSynchronizationEnabled(self):
360
+ return self.nmBusSynchronizationEnabled
361
+
362
+ def setNmBusSynchronizationEnabled(self, value):
363
+ if value is not None:
364
+ self.nmBusSynchronizationEnabled = value
365
+ return self
366
+
367
+ def getNmComControlEnabled(self):
368
+ return self.nmComControlEnabled
369
+
370
+ def setNmComControlEnabled(self, value):
371
+ if value is not None:
372
+ self.nmComControlEnabled = value
373
+ return self
374
+
375
+ def getNmCoordinator(self):
376
+ return self.nmCoordinator
377
+
378
+ def setNmCoordinator(self, value):
379
+ if value is not None:
380
+ self.nmCoordinator = value
381
+ return self
382
+
383
+ def getNmCycletimeMainFunction(self):
384
+ return self.nmCycletimeMainFunction
385
+
386
+ def setNmCycletimeMainFunction(self, value):
387
+ if value is not None:
388
+ self.nmCycletimeMainFunction = value
389
+ return self
390
+
391
+ def getNmNodeDetectionEnabled(self):
392
+ return self.nmNodeDetectionEnabled
393
+
394
+ def setNmNodeDetectionEnabled(self, value):
395
+ if value is not None:
396
+ self.nmNodeDetectionEnabled = value
397
+ return self
398
+
399
+ def getNmNodeIdEnabled(self):
400
+ return self.nmNodeIdEnabled
401
+
402
+ def setNmNodeIdEnabled(self, value):
403
+ if value is not None:
404
+ self.nmNodeIdEnabled = value
405
+ return self
406
+
407
+ def getNmPduRxIndicationEnabled(self):
408
+ return self.nmPduRxIndicationEnabled
409
+
410
+ def setNmPduRxIndicationEnabled(self, value):
411
+ if value is not None:
412
+ self.nmPduRxIndicationEnabled = value
413
+ return self
414
+
415
+ def getNmRemoteSleepIndEnabled(self):
416
+ return self.nmRemoteSleepIndEnabled
417
+
418
+ def setNmRemoteSleepIndEnabled(self, value):
419
+ if value is not None:
420
+ self.nmRemoteSleepIndEnabled = value
421
+ return self
422
+
423
+ def getNmRepeatMsgIndEnabled(self):
424
+ return self.nmRepeatMsgIndEnabled
425
+
426
+ def setNmRepeatMsgIndEnabled(self, value):
427
+ if value is not None:
428
+ self.nmRepeatMsgIndEnabled = value
429
+ return self
430
+
431
+ def getNmStateChangeIndEnabled(self):
432
+ return self.nmStateChangeIndEnabled
433
+
434
+ def setNmStateChangeIndEnabled(self, value):
435
+ if value is not None:
436
+ self.nmStateChangeIndEnabled = value
437
+ return self
438
+
439
+ def getNmUserDataEnabled(self):
440
+ return self.nmUserDataEnabled
441
+
442
+ def setNmUserDataEnabled(self, value):
443
+ if value is not None:
444
+ self.nmUserDataEnabled = value
445
+ return self
446
+
447
+ class NmConfig(FibexElement):
448
+ """
449
+ Represents network management configuration in the system,
450
+ defining cluster couplings and ECU configurations for
451
+ comprehensive network management setup.
452
+ """
453
+ def __init__(self, parent: ARObject, short_name: str):
454
+ super().__init__(parent, short_name)
455
+
456
+ self.nmClusterCouplings: List[NmClusterCoupling] = []
457
+ self.nmIfEcus: List[NmEcu] = []
458
+
459
+ def createCanNmCluster(self, short_name: str): # type: (str) -> CanNmCluster
460
+ if (short_name not in self.elements):
461
+ cluster = CanNmCluster(self, short_name)
462
+ self.addElement(cluster)
463
+ return self.getElement(short_name)
464
+
465
+ def createUdpNmCluster(self, short_name: str): # type: (str) -> UdpNmCluster
466
+ if (short_name not in self.elements):
467
+ cluster = UdpNmCluster(self, short_name)
468
+ self.addElement(cluster)
469
+ return self.getElement(short_name)
470
+
471
+ def getCanNmClusters(self): # type: () -> List[CanNmCluster]
472
+ return list(sorted(filter(lambda a: isinstance(a, CanNmCluster), self.elements), key= lambda o:o.short_name))
473
+
474
+ def getUdpNmClusters(self): # type: () -> List[UdpNmCluster]
475
+ return list(sorted(filter(lambda a: isinstance(a, UdpNmCluster), self.elements), key= lambda o:o.short_name))
476
+
477
+ def getNmClusters(self): # type: () -> List[NmCluster]
478
+ return list(sorted(filter(lambda a: isinstance(a, NmCluster), self.elements), key= lambda o:o.short_name))
479
+
480
+ def getNmClusterCouplings(self):
481
+ return self.nmClusterCouplings
482
+
483
+ def addNmClusterCouplings(self, value):
484
+ self.nmClusterCouplings.append(value)
485
+ return self
486
+
487
+ def getNmIfEcus(self):
488
+ return self.nmIfEcus
489
+
490
+ def createNmEcu(self, short_name: str) -> NmEcu:
491
+ if (short_name not in self.elements):
492
+ cluster = NmEcu(self, short_name)
493
+ self.addElement(cluster)
494
+ self.nmIfEcus.append(cluster)
495
+ return self.getElement(short_name)
496
+
497
+ class NmCluster(Identifiable, ABC):
498
+ """
499
+ Abstract base class for network management clusters,
500
+ defining common properties for different types of
501
+ NM clusters including communication cluster references
502
+ and node management capabilities.
503
+ """
504
+ def __init__(self, parent: ARObject, short_name: str):
505
+ if type(self) is NmCluster:
506
+ raise TypeError("NmCluster is an abstract class.")
507
+ super().__init__(parent, short_name)
508
+
509
+ self.communicationClusterRef = None # type: RefType
510
+ self.nmChannelId = None
511
+ self.nmChannelSleepMaster = None
512
+ self.nmNodes = [] # type: List[NmNode]
513
+ self.nmNodeDetectionEnabled = None
514
+ self.nmNodeIdEnabled = None
515
+ self.nmPncParticipation = None
516
+ self.nmRepeatMsgIndEnabled = None
517
+ self._nmSynchronizingNetwork = None
518
+
519
+ def getCommunicationClusterRef(self):
520
+ return self.communicationClusterRef
521
+
522
+ def setCommunicationClusterRef(self, value):
523
+ self.communicationClusterRef = value
524
+ return self
525
+
526
+ def getNmChannelId(self):
527
+ return self.nmChannelId
528
+
529
+ def setNmChannelId(self, value):
530
+ self.nmChannelId = value
531
+ return self
532
+
533
+ def getNmChannelSleepMaster(self):
534
+ return self.nmChannelSleepMaster
535
+
536
+ def setNmChannelSleepMaster(self, value):
537
+ self.nmChannelSleepMaster = value
538
+ return self
539
+
540
+ def createCanNmNode(self, short_name: str) -> CanNmNode:
541
+ if (short_name not in self.elements):
542
+ node = CanNmNode(self, short_name)
543
+ self.addElement(node)
544
+ self.nmNodes.append(node)
545
+ return self.getElement(short_name)
546
+
547
+ def readUdpNmNode(self, short_name: str) -> UdpNmNode:
548
+ if (short_name not in self.elements):
549
+ node = UdpNmNode(self, short_name)
550
+ self.addElement(node)
551
+ self.nmNodes.append(node)
552
+ return self.getElement(short_name)
553
+
554
+ def getCanNmNodes(self) -> List[CanNmNode]:
555
+ return list(sorted(filter(lambda a: isinstance(a, CanNmNode), self.elements), key= lambda o:o.short_name))
556
+
557
+ def getUdpNmNodes(self) -> List[UdpNmNode]:
558
+ return list(sorted(filter(lambda a: isinstance(a, UdpNmNode), self.elements), key= lambda o:o.short_name))
559
+
560
+ def getNmNodes(self) -> List[NmNode]:
561
+ return list(sorted(filter(lambda a: isinstance(a, NmNode), self.elements), key= lambda o:o.short_name))
562
+
563
+ def getNmNodeDetectionEnabled(self):
564
+ return self.nmNodeDetectionEnabled
565
+
566
+ def setNmNodeDetectionEnabled(self, value):
567
+ self.nmNodeDetectionEnabled = value
568
+ return self
569
+
570
+ def getNmNodeIdEnabled(self):
571
+ return self.nmNodeIdEnabled
572
+
573
+ def setNmNodeIdEnabled(self, value):
574
+ self.nmNodeIdEnabled = value
575
+ return self
576
+
577
+ def getNmPncParticipation(self):
578
+ return self.nmPncParticipation
579
+
580
+ def setNmPncParticipation(self, value):
581
+ self.nmPncParticipation = value
582
+ return self
583
+
584
+ def getNmRepeatMsgIndEnabled(self):
585
+ return self.nmRepeatMsgIndEnabled
586
+
587
+ def setNmRepeatMsgIndEnabled(self, value):
588
+ self.nmRepeatMsgIndEnabled = value
589
+ return self
590
+
591
+ def getNmSynchronizingNetwork(self):
592
+ return self._nmSynchronizingNetwork
593
+
594
+ def setNmSynchronizingNetwork(self, value):
595
+ self._nmSynchronizingNetwork = value
596
+ return self
597
+
598
+ class CanNmCluster(NmCluster):
599
+ """
600
+ Represents a CAN network management cluster in the system,
601
+ defining CAN-specific NM properties including busload
602
+ reduction, wake-up configurations, and message timing.
603
+ """
604
+ def __init__(self, parent: ARObject, short_name: str):
605
+ super().__init__(parent, short_name)
606
+
607
+ self.nmBusloadReductionActive = None
608
+ self.nmCarWakeUpBitPosition = None
609
+ self.nmCarWakeUpFilterNodeId = None
610
+ self.nmCarWakeUpRxEnabled = None
611
+ self.nmCbvPosition = None
612
+ self.nmChannelActive = None
613
+ self.nmImmediateNmCycleTime = None
614
+ self.nmImmediateNmTransmissions = None
615
+ self.nmMessageTimeoutTime = None
616
+ self.nmMsgCycleTime = None
617
+ self.nmNetworkTimeout = None
618
+ self.nmNidPosition = None
619
+ self.nmRemoteSleepIndicationTime = None
620
+ self.nmRepeatMessageTime = None
621
+ self.nmUserDataLength = None
622
+ self.nmWaitBusSleepTime = None
623
+
624
+ def getNmBusloadReductionActive(self):
625
+ return self.nmBusloadReductionActive
626
+
627
+ def setNmBusloadReductionActive(self, value):
628
+ self.nmBusloadReductionActive = value
629
+ return self
630
+
631
+ def getNmCarWakeUpBitPosition(self):
632
+ return self.nmCarWakeUpBitPosition
633
+
634
+ def setNmCarWakeUpBitPosition(self, value):
635
+ self.nmCarWakeUpBitPosition = value
636
+ return self
637
+
638
+ def getNmCarWakeUpFilterNodeId(self):
639
+ return self.nmCarWakeUpFilterNodeId
640
+
641
+ def setNmCarWakeUpFilterNodeId(self, value):
642
+ self.nmCarWakeUpFilterNodeId = value
643
+ return self
644
+
645
+ def getNmCarWakeUpRxEnabled(self):
646
+ return self.nmCarWakeUpRxEnabled
647
+
648
+ def setNmCarWakeUpRxEnabled(self, value):
649
+ self.nmCarWakeUpRxEnabled = value
650
+ return self
651
+
652
+ def getNmCbvPosition(self):
653
+ return self.nmCbvPosition
654
+
655
+ def setNmCbvPosition(self, value):
656
+ self.nmCbvPosition = value
657
+ return self
658
+
659
+ def getNmChannelActive(self):
660
+ return self.nmChannelActive
661
+
662
+ def setNmChannelActive(self, value):
663
+ self.nmChannelActive = value
664
+ return self
665
+
666
+ def getNmImmediateNmCycleTime(self):
667
+ return self.nmImmediateNmCycleTime
668
+
669
+ def setNmImmediateNmCycleTime(self, value):
670
+ self.nmImmediateNmCycleTime = value
671
+ return self
672
+
673
+ def getNmImmediateNmTransmissions(self):
674
+ return self.nmImmediateNmTransmissions
675
+
676
+ def setNmImmediateNmTransmissions(self, value):
677
+ self.nmImmediateNmTransmissions = value
678
+ return self
679
+
680
+ def getNmMessageTimeoutTime(self):
681
+ return self.nmMessageTimeoutTime
682
+
683
+ def setNmMessageTimeoutTime(self, value):
684
+ self.nmMessageTimeoutTime = value
685
+ return self
686
+
687
+ def getNmMsgCycleTime(self):
688
+ return self.nmMsgCycleTime
689
+
690
+ def setNmMsgCycleTime(self, value):
691
+ self.nmMsgCycleTime = value
692
+ return self
693
+
694
+ def getNmNetworkTimeout(self):
695
+ return self.nmNetworkTimeout
696
+
697
+ def setNmNetworkTimeout(self, value):
698
+ self.nmNetworkTimeout = value
699
+ return self
700
+
701
+ def getNmNidPosition(self):
702
+ return self.nmNidPosition
703
+
704
+ def setNmNidPosition(self, value):
705
+ self.nmNidPosition = value
706
+ return self
707
+
708
+ def getNmRemoteSleepIndicationTime(self):
709
+ return self.nmRemoteSleepIndicationTime
710
+
711
+ def setNmRemoteSleepIndicationTime(self, value):
712
+ self.nmRemoteSleepIndicationTime = value
713
+ return self
714
+
715
+ def getNmRepeatMessageTime(self):
716
+ return self.nmRepeatMessageTime
717
+
718
+ def setNmRepeatMessageTime(self, value):
719
+ self.nmRepeatMessageTime = value
720
+ return self
721
+
722
+ def getNmUserDataLength(self):
723
+ return self.nmUserDataLength
724
+
725
+ def setNmUserDataLength(self, value):
726
+ self.nmUserDataLength = value
727
+ return self
728
+
729
+ def getNmWaitBusSleepTime(self):
730
+ return self.nmWaitBusSleepTime
731
+
732
+ def setNmWaitBusSleepTime(self, value):
733
+ self.nmWaitBusSleepTime = value
734
+ return self
735
+
736
+ class FlexrayNmCluster(NmCluster):
737
+ """
738
+ Represents a FlexRay network management cluster in the system,
739
+ defining FlexRay-specific NM properties for time-triggered
740
+ network management in FlexRay communication networks.
741
+ """
742
+ def __init__(self, parent: ARObject, short_name: str):
743
+ super().__init__(parent, short_name)
744
+
745
+ class J1939NmCluster(NmCluster):
746
+ """
747
+ Represents a J1939 network management cluster in the system,
748
+ defining J1939-specific NM properties for heavy-duty vehicle
749
+ network management communication.
750
+ """
751
+ def __init__(self, parent: ARObject, short_name: str):
752
+ super().__init__(parent, short_name)
753
+
754
+ class UdpNmClusterCoupling(NmClusterCoupling):
755
+ """
756
+ Defines coupling properties for UDP network management clusters,
757
+ specifying coupled cluster references and UDP-specific NM
758
+ immediate restart capabilities.
759
+ """
760
+ def __init__(self):
761
+ super().__init__()
762
+
763
+ self.coupledClusterRefs: List[RefType] = []
764
+ self.nmImmediateRestartEnabled: Boolean = None
765
+
766
+ def getCoupledClusterRefs(self):
767
+ return self.coupledClusterRefs
768
+
769
+ def addCoupledClusterRef(self, value):
770
+ if value is not None:
771
+ self.coupledClusterRefs.append(value)
772
+ return self
773
+
774
+ def getNmImmediateRestartEnabled(self):
775
+ return self.nmImmediateRestartEnabled
776
+
777
+ def setNmImmediateRestartEnabled(self, value):
778
+ if value is not None:
779
+ self.nmImmediateRestartEnabled = value
780
+ return self
781
+
782
+
783
+ class UdpNmCluster(NmCluster):
784
+ """
785
+ Represents a UDP network management cluster in the system,
786
+ defining UDP-specific NM properties including message timing,
787
+ CBV (Common Bit Vector) position, and VLAN references.
788
+ """
789
+ def __init__(self, parent: ARObject, short_name: str):
790
+ super().__init__(parent, short_name)
791
+
792
+ self.nmCbvPosition: Integer = None
793
+ self.nmChannelActive: Boolean = None
794
+ self.nmImmediateNmCycleTime: TimeValue = None
795
+ self.nmImmediateNmTransmissions: PositiveInteger = None
796
+ self.nmMessageTimeoutTime: TimeValue = None
797
+ self.nmMsgCycleTime: TimeValue = None
798
+ self.nmNetworkTimeout: TimeValue = None
799
+ self.nmNidPosition: Integer = None
800
+ self.nmRemoteSleepIndicationTime: TimeValue = None
801
+ self.nmRepeatMessageTime: TimeValue = None
802
+ self.nmWaitBusSleepTime: TimeValue = None
803
+ self.vlanRef: RefType = None
804
+
805
+ def getNmCbvPosition(self):
806
+ return self.nmCbvPosition
807
+
808
+ def setNmCbvPosition(self, value):
809
+ if value is not None:
810
+ self.nmCbvPosition = value
811
+ return self
812
+
813
+ def getNmChannelActive(self):
814
+ return self.nmChannelActive
815
+
816
+ def setNmChannelActive(self, value):
817
+ if value is not None:
818
+ self.nmChannelActive = value
819
+ return self
820
+
821
+
822
+ def getNmImmediateNmCycleTime(self):
823
+ return self.nmImmediateNmCycleTime
824
+
825
+ def setNmImmediateNmCycleTime(self, value):
826
+ if value is not None:
827
+ self.nmImmediateNmCycleTime = value
828
+ return self
829
+
830
+ def getNmImmediateNmTransmissions(self):
831
+ return self.nmImmediateNmTransmissions
832
+
833
+ def setNmImmediateNmTransmissions(self, value):
834
+ if value is not None:
835
+ self.nmImmediateNmTransmissions = value
836
+ return self
837
+
838
+ def getNmMessageTimeoutTime(self):
839
+ return self.nmMessageTimeoutTime
840
+
841
+ def setNmMessageTimeoutTime(self, value):
842
+ if value is not None:
843
+ self.nmMessageTimeoutTime = value
844
+ return self
845
+
846
+ def getNmMsgCycleTime(self):
847
+ return self.nmMsgCycleTime
848
+
849
+ def setNmMsgCycleTime(self, value):
850
+ if value is not None:
851
+ self.nmMsgCycleTime = value
852
+ return self
853
+
854
+ def getNmNetworkTimeout(self):
855
+ return self.nmNetworkTimeout
856
+
857
+ def setNmNetworkTimeout(self, value):
858
+ if value is not None:
859
+ self.nmNetworkTimeout = value
860
+ return self
861
+
862
+ def getNmNidPosition(self):
863
+ return self.nmNidPosition
864
+
865
+ def setNmNidPosition(self, value):
866
+ if value is not None:
867
+ self.nmNidPosition = value
868
+ return self
869
+
870
+ def getNmRemoteSleepIndicationTime(self):
871
+ return self.nmRemoteSleepIndicationTime
872
+
873
+ def setNmRemoteSleepIndicationTime(self, value):
874
+ if value is not None:
875
+ self.nmRemoteSleepIndicationTime = value
876
+ return self
877
+
878
+ def getNmRepeatMessageTime(self):
879
+ return self.nmRepeatMessageTime
880
+
881
+ def setNmRepeatMessageTime(self, value):
882
+ if value is not None:
883
+ self.nmRepeatMessageTime = value
884
+ return self
885
+
886
+ def getNmWaitBusSleepTime(self):
887
+ return self.nmWaitBusSleepTime
888
+
889
+ def setNmWaitBusSleepTime(self, value):
890
+ if value is not None:
891
+ self.nmWaitBusSleepTime = value
892
+ return self
893
+
894
+ def getVlanRef(self):
895
+ return self.vlanRef
896
+
897
+ def setVlanRef(self, value):
898
+ if value is not None:
899
+ self.vlanRef = value
790
900
  return self