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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. armodel/__init__.py +19 -3
  2. armodel/cli/arxml_dump_cli.py +196 -197
  3. armodel/cli/arxml_format_cli.py +84 -84
  4. armodel/cli/connector2xlsx_cli.py +73 -73
  5. armodel/cli/connector_update_cli.py +73 -73
  6. armodel/cli/file_list_cli.py +69 -69
  7. armodel/cli/format_xml_cli.py +62 -62
  8. armodel/cli/memory_section_cli.py +74 -75
  9. armodel/cli/swc_list_cli.py +79 -79
  10. armodel/cli/system_signal_cli.py +73 -73
  11. armodel/cli/uuid_checker_cli.py +95 -95
  12. armodel/data_models/sw_connector.py +21 -21
  13. armodel/lib/__init__.py +4 -4
  14. armodel/lib/cli_args_parser.py +36 -35
  15. armodel/lib/sw_component.py +34 -35
  16. armodel/lib/system_signal.py +36 -36
  17. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRule.py +62 -0
  18. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRuleProps.py +83 -0
  19. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/StateDependentFirewall.py +62 -0
  20. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/__init__.py +5 -0
  21. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/__init__.py +3 -0
  22. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/__init__.py +3 -0
  23. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure/__init__.py +320 -0
  24. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +315 -318
  25. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswAsynchronousServerCallReturnsEvent.py +27 -0
  26. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswExclusiveAreaPolicy.py +22 -0
  27. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswInterruptEvent.py +18 -0
  28. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeManagerErrorEvent.py +18 -0
  29. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeReceiverPolicy.py +22 -0
  30. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswSchedulerNamePrefix.py +26 -0
  31. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswServiceDependency.py +27 -0
  32. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswTriggerDirectImplementation.py +21 -0
  33. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/RoleBasedBswModuleEntryAssignment.py +35 -0
  34. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2223 -791
  35. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +180 -60
  36. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationship.py +26 -0
  37. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipEnum.py +24 -0
  38. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipSet.py +24 -0
  39. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +586 -200
  40. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/ModeInBswModuleDescriptionInstanceRef.py +17 -0
  41. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +445 -179
  42. armodel/models/M2/AUTOSARTemplates/CommonStructure/Constants/__init__.py +670 -0
  43. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +243 -96
  44. armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +273 -69
  45. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +756 -243
  46. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +336 -170
  47. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +430 -136
  48. armodel/models/M2/AUTOSARTemplates/CommonStructure/McGroups.py +53 -0
  49. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/ImplementationElementInParameterInstanceRef.py +15 -0
  50. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataAccessDetails.py +60 -0
  51. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataInstance.py +62 -0
  52. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McFunction.py +62 -0
  53. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McParameterElementGroup.py +39 -0
  54. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSupportData.py +62 -0
  55. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSwEmulationMethodSupport.py +37 -0
  56. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RoleBasedMcDataAssignment.py +61 -0
  57. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/McFunctionDataRefSet.py +39 -0
  58. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptAccessEnum.py +12 -0
  59. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptComponent.py +60 -0
  60. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptEnablerImplTypeEnum.py +11 -0
  61. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntity.py +62 -0
  62. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntityEvent.py +62 -0
  63. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionContext.py +38 -0
  64. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionControlEnum.py +11 -0
  65. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptPreparationEnum.py +11 -0
  66. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptServicePoint.py +62 -0
  67. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSupportData.py +111 -0
  68. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSwPrototypingAccess.py +62 -0
  69. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/__init__.py +27 -0
  70. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/__init__.py +19 -0
  71. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +424 -148
  72. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclarationExtra.py +73 -0
  73. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/ExecutionTime/__init__.py +132 -0
  74. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +93 -32
  75. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +78 -10
  76. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +239 -81
  77. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +68 -23
  78. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +274 -92
  79. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +135 -53
  80. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +2955 -839
  81. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationControlEnum.py +11 -0
  82. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationElementProps.py +37 -0
  83. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationEventProps.py +37 -0
  84. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationProps.py +38 -0
  85. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationPropsSet.py +38 -0
  86. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/__init__.py +13 -0
  87. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/AtpBlueprint.py +32 -0
  88. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/__init__.py +7 -0
  89. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +186 -73
  90. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +10 -0
  91. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/BlueprintGenerator.py +37 -0
  92. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/__init__.py +3 -0
  93. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/BlueprintMappingSet.py +38 -0
  94. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/__init__.py +3 -0
  95. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +126 -45
  96. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +5 -0
  97. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +290 -77
  98. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TDLETZoneClock.py +61 -0
  99. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClock.py +60 -0
  100. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClockSyncAccuracy.py +60 -0
  101. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/__init__.py +5 -0
  102. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInBswInstanceRef.py +14 -0
  103. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInSwcInstanceRef.py +14 -0
  104. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingCondition.py +61 -0
  105. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingConditionFormula.py +37 -0
  106. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingExtensionResource.py +60 -0
  107. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingModeInstance.py +61 -0
  108. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/__init__.py +15 -0
  109. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/AgeConstraint.py +57 -0
  110. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/EventTriggeringConstraint.py +203 -0
  111. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +193 -45
  112. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionTimeConstraint.py +101 -0
  113. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/LatencyTimingConstraint.py +100 -0
  114. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/OffsetConstraint.py +56 -0
  115. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationPointConstraint.py +57 -0
  116. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationTiming.py +117 -0
  117. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +59 -24
  118. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +69 -32
  119. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__init__.py +48 -0
  120. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/Traceable.py +11 -0
  121. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__init__.py +16 -0
  122. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +147 -52
  123. armodel/models/M2/AUTOSARTemplates/CommonStructure/__init__.py +17 -205
  124. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticCommonElement.py +11 -0
  125. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +137 -47
  126. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +10 -0
  127. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +285 -346
  128. armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1561 -1249
  129. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwAttributeValue.py +117 -0
  130. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +176 -59
  131. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementConnector.py +73 -0
  132. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +401 -145
  133. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +293 -92
  134. armodel/models/M2/AUTOSARTemplates/GenericStructure/DocumentationOnM1/__init__.py +39 -0
  135. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +1314 -816
  136. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/AnyInstanceRef.py +88 -0
  137. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +37 -17
  138. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +197 -74
  139. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +129 -51
  140. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Enumerations.py +16 -0
  141. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +599 -236
  142. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +902 -594
  143. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +395 -155
  144. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/AtpDefinition.py +36 -0
  145. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/__init__.py +7 -0
  146. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/AttributeValueVariationPoints/__init__.py +36 -0
  147. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/__init__.py +182 -0
  148. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/ApplicationAttributes/__init__.py +97 -0
  149. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +784 -712
  150. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py +186 -179
  151. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +363 -463
  152. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py +160 -154
  153. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +160 -100
  154. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +145 -145
  155. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +137 -131
  156. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +191 -184
  157. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/InstanceRefs.py +45 -39
  158. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +647 -641
  159. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py +21 -17
  160. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +84 -80
  161. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwComponentType.py +76 -0
  162. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +37 -34
  163. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +26 -21
  164. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +39 -34
  165. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +57 -52
  166. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +32 -24
  167. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +160 -155
  168. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +68 -63
  169. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py +46 -40
  170. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +91 -86
  171. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +219 -206
  172. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py +33 -26
  173. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +148 -137
  174. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +54 -49
  175. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +488 -489
  176. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +334 -259
  177. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +62 -58
  178. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +48 -29
  179. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{EcuResourceMapping.py → ECUResourceMapping.py} +48 -45
  180. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py +139 -122
  181. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +628 -344
  182. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__init__.py +2 -0
  183. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +267 -244
  184. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +30 -16
  185. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +750 -685
  186. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +375 -327
  187. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +924 -975
  188. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +92 -76
  189. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +669 -654
  190. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +193 -149
  191. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +110 -92
  192. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +205 -205
  193. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +1376 -1232
  194. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +800 -662
  195. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +269 -270
  196. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +172 -172
  197. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +90 -87
  198. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +899 -789
  199. armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +43 -35
  200. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +65 -52
  201. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +105 -83
  202. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +574 -524
  203. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +739 -658
  204. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +493 -458
  205. armodel/models/M2/MSR/AsamHdo/AdminData.py +150 -136
  206. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +95 -76
  207. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +367 -329
  208. armodel/models/M2/MSR/AsamHdo/Constraints/GlobalConstraints.py +58 -41
  209. armodel/models/M2/MSR/AsamHdo/SpecialData.py +99 -87
  210. armodel/models/M2/MSR/AsamHdo/Units.py +159 -105
  211. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +55 -57
  212. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +40 -41
  213. armodel/models/M2/MSR/DataDictionary/Axis.py +142 -144
  214. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +35 -36
  215. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +383 -351
  216. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +207 -209
  217. armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +31 -33
  218. armodel/models/M2/MSR/DataDictionary/SystemConstant.py +32 -0
  219. armodel/models/M2/MSR/Documentation/Annotation.py +40 -41
  220. armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +162 -163
  221. armodel/models/M2/MSR/Documentation/BlockElements/Formula/__init__.py +26 -0
  222. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +55 -56
  223. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +35 -30
  224. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +110 -110
  225. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +57 -44
  226. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +59 -58
  227. armodel/models/M2/MSR/Documentation/__init__.py +3 -3
  228. armodel/models/M2/MSR/documentation/__init__.py +3 -0
  229. armodel/models/__init__.py +86 -86
  230. armodel/models/utils/uuid_mgr.py +28 -29
  231. armodel/parser/__init__.py +2 -2
  232. armodel/parser/abstract_arxml_parser.py +323 -325
  233. armodel/parser/arxml_parser.py +5832 -5830
  234. armodel/parser/connector_xlsx_parser.py +192 -193
  235. armodel/parser/excel_parser.py +17 -17
  236. armodel/parser/file_parser.py +46 -46
  237. armodel/report/__init__.py +1 -1
  238. armodel/report/connector_xls_report.py +76 -77
  239. armodel/report/excel_report.py +41 -41
  240. armodel/transformer/abstract.py +6 -6
  241. armodel/transformer/admin_data.py +31 -31
  242. armodel/writer/__init__.py +1 -1
  243. armodel/writer/abstract_arxml_writer.py +146 -147
  244. armodel/writer/arxml_writer.py +5969 -5965
  245. {armodel-1.8.7.dist-info → armodel-1.9.1.dist-info}/METADATA +850 -662
  246. armodel-1.9.1.dist-info/RECORD +273 -0
  247. {armodel-1.8.7.dist-info → armodel-1.9.1.dist-info}/WHEEL +1 -1
  248. {armodel-1.8.7.dist-info → armodel-1.9.1.dist-info}/entry_points.txt +0 -1
  249. {armodel-1.8.7.dist-info → armodel-1.9.1.dist-info/licenses}/LICENSE +21 -21
  250. armodel/__pycache__/__init__.cpython-312.pyc +0 -0
  251. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswBehavior.cpython-312.pyc +0 -0
  252. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswImplementation.cpython-312.pyc +0 -0
  253. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswInterfaces.cpython-312.pyc +0 -0
  254. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswOverview.cpython-312.pyc +0 -0
  255. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  256. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HardwareConfiguration.cpython-312.pyc +0 -0
  257. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HeapUsage.cpython-312.pyc +0 -0
  258. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/MemorySectionUsage.cpython-312.pyc +0 -0
  259. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/SoftwareContext.cpython-312.pyc +0 -0
  260. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/StackUsage.cpython-312.pyc +0 -0
  261. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/__init__.cpython-312.pyc +0 -0
  262. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/PortPrototypeBlueprint.cpython-312.pyc +0 -0
  263. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/__init__.cpython-312.pyc +0 -0
  264. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/Keyword.cpython-312.pyc +0 -0
  265. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  266. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +0 -24
  267. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +0 -0
  268. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/ExecutionOrderConstraint.cpython-312.pyc +0 -0
  269. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingConstraint.cpython-312.pyc +0 -0
  270. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingExtensions.cpython-312.pyc +0 -0
  271. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/__init__.cpython-312.pyc +0 -0
  272. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__pycache__/__init__.cpython-312.pyc +0 -0
  273. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Filter.cpython-312.pyc +0 -0
  274. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/FlatMap.cpython-312.pyc +0 -0
  275. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Implementation.cpython-312.pyc +0 -0
  276. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ImplementationDataTypes.cpython-312.pyc +0 -0
  277. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/InternalBehavior.cpython-312.pyc +0 -0
  278. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ModeDeclaration.cpython-312.pyc +0 -0
  279. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ServiceNeeds.cpython-312.pyc +0 -0
  280. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/SwcBswMapping.cpython-312.pyc +0 -0
  281. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/TriggerDeclaration.cpython-312.pyc +0 -0
  282. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  283. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/DiagnosticContribution.cpython-312.pyc +0 -0
  284. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/__init__.cpython-312.pyc +0 -0
  285. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/HwElementCategory.cpython-312.pyc +0 -0
  286. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  287. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ARPackage.cpython-312.pyc +0 -0
  288. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ArObject.cpython-312.pyc +0 -0
  289. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ElementCollection.cpython-312.pyc +0 -0
  290. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/EngineeringObject.cpython-312.pyc +0 -0
  291. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/Identifiable.cpython-312.pyc +0 -0
  292. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/PrimitiveTypes.cpython-312.pyc +0 -0
  293. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/__init__.cpython-312.pyc +0 -0
  294. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/AbstractStructure.cpython-312.pyc +0 -0
  295. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/LifeCycles.cpython-312.pyc +0 -0
  296. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  297. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  298. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/__init__.cpython-312.pyc +0 -0
  299. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  300. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/__init__.cpython-312.pyc +0 -0
  301. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/DataPrototypes.cpython-312.pyc +0 -0
  302. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/Datatypes.cpython-312.pyc +0 -0
  303. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/__init__.cpython-312.pyc +0 -0
  304. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  305. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/__init__.cpython-312.pyc +0 -0
  306. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AccessCount.cpython-312.pyc +0 -0
  307. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AutosarVariableRef.cpython-312.pyc +0 -0
  308. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/DataElements.cpython-312.pyc +0 -0
  309. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/IncludedDataTypes.cpython-312.pyc +0 -0
  310. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/InstanceRefsUsage.cpython-312.pyc +0 -0
  311. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ModeDeclarationGroup.cpython-312.pyc +0 -0
  312. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PerInstanceMemory.cpython-312.pyc +0 -0
  313. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PortAPIOptions.cpython-312.pyc +0 -0
  314. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/RTEEvents.cpython-312.pyc +0 -0
  315. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServerCall.cpython-312.pyc +0 -0
  316. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServiceMapping.cpython-312.pyc +0 -0
  317. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/Trigger.cpython-312.pyc +0 -0
  318. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/__init__.cpython-312.pyc +0 -0
  319. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/Communication.cpython-312.pyc +0 -0
  320. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/EndToEndProtection.cpython-312.pyc +0 -0
  321. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/RPTScenario.cpython-312.pyc +0 -0
  322. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/SwcImplementation.cpython-312.pyc +0 -0
  323. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  324. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanCommunication.cpython-312.pyc +0 -0
  325. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanTopology.cpython-312.pyc +0 -0
  326. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/__init__.cpython-312.pyc +0 -0
  327. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetCommunication.cpython-312.pyc +0 -0
  328. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetFrame.cpython-312.pyc +0 -0
  329. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetTopology.cpython-312.pyc +0 -0
  330. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/NetworkEndpoint.cpython-312.pyc +0 -0
  331. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/ServiceInstances.cpython-312.pyc +0 -0
  332. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/__init__.cpython-312.pyc +0 -0
  333. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayCommunication.cpython-312.pyc +0 -0
  334. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayTopology.cpython-312.pyc +0 -0
  335. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/__init__.cpython-312.pyc +0 -0
  336. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinCommunication.cpython-312.pyc +0 -0
  337. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinTopology.cpython-312.pyc +0 -0
  338. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/__init__.cpython-312.pyc +0 -0
  339. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreCommunication.cpython-312.pyc +0 -0
  340. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreTopology.cpython-312.pyc +0 -0
  341. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/EcuInstance.cpython-312.pyc +0 -0
  342. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/Timing.cpython-312.pyc +0 -0
  343. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/__init__.cpython-312.pyc +0 -0
  344. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/Fibex4Multiplatform.cpython-312.pyc +0 -0
  345. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/__init__.cpython-312.pyc +0 -0
  346. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__pycache__/__init__.cpython-312.pyc +0 -0
  347. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DataMapping.cpython-312.pyc +0 -0
  348. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DiagnosticConnection.cpython-312.pyc +0 -0
  349. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DoIp.cpython-312.pyc +0 -0
  350. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/EcuResourceMapping.cpython-312.pyc +0 -0
  351. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  352. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/NetworkManagement.cpython-312.pyc +0 -0
  353. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/RteEventToOsTaskMapping.cpython-312.pyc +0 -0
  354. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SWmapping.cpython-312.pyc +0 -0
  355. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SecureCommunication.cpython-312.pyc +0 -0
  356. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/TransportProtocols.cpython-312.pyc +0 -0
  357. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  358. armodel/models/M2/AUTOSARTemplates/__pycache__/AutosarTopLevelStructure.cpython-312.pyc +0 -0
  359. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCDescriptionTemplate.cpython-312.pyc +0 -0
  360. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCParameterDefTemplate.cpython-312.pyc +0 -0
  361. armodel/models/M2/AUTOSARTemplates/__pycache__/__init__.cpython-312.pyc +0 -0
  362. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/GlobalConstraints.cpython-312.pyc +0 -0
  363. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/__init__.cpython-312.pyc +0 -0
  364. armodel/models/M2/MSR/AsamHdo/__pycache__/AdminData.cpython-312.pyc +0 -0
  365. armodel/models/M2/MSR/AsamHdo/__pycache__/BaseTypes.cpython-312.pyc +0 -0
  366. armodel/models/M2/MSR/AsamHdo/__pycache__/ComputationMethod.cpython-312.pyc +0 -0
  367. armodel/models/M2/MSR/AsamHdo/__pycache__/SpecialData.cpython-312.pyc +0 -0
  368. armodel/models/M2/MSR/AsamHdo/__pycache__/Units.cpython-312.pyc +0 -0
  369. armodel/models/M2/MSR/AsamHdo/__pycache__/__init__.cpython-312.pyc +0 -0
  370. armodel/models/M2/MSR/CalibrationData/__pycache__/CalibrationValue.cpython-312.pyc +0 -0
  371. armodel/models/M2/MSR/CalibrationData/__pycache__/__init__.cpython-312.pyc +0 -0
  372. armodel/models/M2/MSR/DataDictionary/__pycache__/AuxillaryObjects.cpython-312.pyc +0 -0
  373. armodel/models/M2/MSR/DataDictionary/__pycache__/Axis.cpython-312.pyc +0 -0
  374. armodel/models/M2/MSR/DataDictionary/__pycache__/CalibrationParameter.cpython-312.pyc +0 -0
  375. armodel/models/M2/MSR/DataDictionary/__pycache__/DataDefProperties.cpython-312.pyc +0 -0
  376. armodel/models/M2/MSR/DataDictionary/__pycache__/RecordLayout.cpython-312.pyc +0 -0
  377. armodel/models/M2/MSR/DataDictionary/__pycache__/ServiceProcessTask.cpython-312.pyc +0 -0
  378. armodel/models/M2/MSR/DataDictionary/__pycache__/__init__.cpython-312.pyc +0 -0
  379. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/Figure.cpython-312.pyc +0 -0
  380. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  381. armodel/models/M2/MSR/Documentation/BlockElements.py +0 -18
  382. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/ListElements.cpython-312.pyc +0 -0
  383. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/PaginationAndView.cpython-312.pyc +0 -0
  384. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  385. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/LanguageDataModel.cpython-312.pyc +0 -0
  386. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/MultilanguageData.cpython-312.pyc +0 -0
  387. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/__init__.cpython-312.pyc +0 -0
  388. armodel/models/M2/MSR/Documentation/__pycache__/Annotation.cpython-312.pyc +0 -0
  389. armodel/models/M2/MSR/Documentation/__pycache__/__init__.cpython-312.pyc +0 -0
  390. armodel/models/M2/MSR/__pycache__/__init__.cpython-312.pyc +0 -0
  391. armodel/models/M2/__pycache__/__init__.cpython-312.pyc +0 -0
  392. armodel/models/__pycache__/__init__.cpython-312.pyc +0 -0
  393. armodel/models/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  394. armodel/models/utils/__pycache__/uuid_mgr.cpython-312.pyc +0 -0
  395. armodel/parser/__pycache__/__init__.cpython-312.pyc +0 -0
  396. armodel/parser/__pycache__/abstract_arxml_parser.cpython-312.pyc +0 -0
  397. armodel/parser/__pycache__/arxml_parser.cpython-312.pyc +0 -0
  398. armodel/parser/__pycache__/file_parser.cpython-312.pyc +0 -0
  399. armodel/tests/__init__.py +0 -0
  400. armodel/tests/test_armodel/__init__.py +0 -0
  401. armodel/tests/test_armodel/models/__init__.py +0 -0
  402. armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +0 -116
  403. armodel/tests/test_armodel/models/test_Identifiable.py +0 -85
  404. armodel/tests/test_armodel/models/test_ar_object.py +0 -154
  405. armodel/tests/test_armodel/models/test_ar_package.py +0 -304
  406. armodel/tests/test_armodel/models/test_ar_ref.py +0 -81
  407. armodel/tests/test_armodel/models/test_bsw_module_template.py +0 -52
  408. armodel/tests/test_armodel/models/test_common_structure.py +0 -82
  409. armodel/tests/test_armodel/models/test_data_dictionary.py +0 -30
  410. armodel/tests/test_armodel/models/test_data_prototype.py +0 -93
  411. armodel/tests/test_armodel/models/test_datatype.py +0 -251
  412. armodel/tests/test_armodel/models/test_general_structure.py +0 -56
  413. armodel/tests/test_armodel/models/test_implementation.py +0 -27
  414. armodel/tests/test_armodel/models/test_m2_msr.py +0 -79
  415. armodel/tests/test_armodel/models/test_port_interface.py +0 -202
  416. armodel/tests/test_armodel/models/test_port_prototype.py +0 -15
  417. armodel/tests/test_armodel/parser/__init__.py +0 -0
  418. armodel/tests/test_armodel/parser/test_arxml_parser.py +0 -53
  419. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +0 -218
  420. armodel/tests/test_armodel/parser/test_implementation_data_type.py +0 -247
  421. armodel/tests/test_armodel/parser/test_parse_bswmd.py +0 -202
  422. armodel/tests/test_armodel/parser/test_rte_event.py +0 -142
  423. armodel/tests/test_armodel/parser/test_runnable_entity.py +0 -135
  424. armodel/tests/test_armodel/parser/test_sw_components.py +0 -484
  425. armodel/tests/test_armodel/parser/test_system.py +0 -23
  426. armodel/writer/__pycache__/__init__.cpython-312.pyc +0 -0
  427. armodel/writer/__pycache__/abstract_arxml_writer.cpython-312.pyc +0 -0
  428. armodel/writer/__pycache__/arxml_writer.cpython-312.pyc +0 -0
  429. armodel-1.8.7.dist-info/RECORD +0 -360
  430. {armodel-1.8.7.dist-info → armodel-1.9.1.dist-info}/top_level.txt +0 -0
@@ -1,662 +1,800 @@
1
- from abc import ABCMeta
2
- from enum import Enum
3
- from typing import List
4
-
5
- from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayCommunication import FlexrayFrameTriggering
6
- from ......M2.AUTOSARTemplates.CommonStructure.Filter import DataFilter
7
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
8
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
9
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, ARFloat, Boolean, Integer, PositiveInteger
10
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveUnlimitedInteger, RefType, ARLiteral, TimeValue
11
- from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
12
- from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering, LinScheduleTable
13
- from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import NetworkEndpoint
14
- from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement, FrameTriggering, ISignalTriggering, PduTriggering
15
-
16
-
17
- class CommunicationCycle(ARObject):
18
- def __init__(self):
19
- super().__init__()
20
-
21
-
22
- class CycleCounter(CommunicationCycle):
23
- def __init__(self):
24
- super().__init__()
25
-
26
- self.CycleCounter = None # type: Integer
27
-
28
- def getCycleCounter(self):
29
- return self.CycleCounter
30
-
31
- def setCycleCounter(self, value):
32
- if value is not None:
33
- self.CycleCounter = value
34
- return self
35
-
36
-
37
- class CycleRepetitionType(AREnum):
38
- def __init__(self):
39
- super().__init__([])
40
-
41
-
42
- class CycleRepetition(CommunicationCycle):
43
- def __init__(self):
44
- super().__init__()
45
-
46
- self.BaseCycle = None # type: Integer
47
- self.CycleRepetition = None # type: CycleRepetitionType
48
-
49
- def getBaseCycle(self):
50
- return self.BaseCycle
51
-
52
- def setBaseCycle(self, value):
53
- if value is not None:
54
- self.BaseCycle = value
55
- return self
56
-
57
- def getCycleRepetition(self):
58
- return self.CycleRepetition
59
-
60
- def setCycleRepetition(self, value):
61
- if value is not None:
62
- self.CycleRepetition = value
63
- return self
64
-
65
-
66
- class PhysicalChannel (Identifiable, metaclass=ABCMeta):
67
- def __init__(self, parent: ARObject, short_name: str):
68
- if type(self) is PhysicalChannel:
69
- raise NotImplementedError("PhysicalChannel is an abstract class.")
70
-
71
- super().__init__(parent, short_name)
72
-
73
- self.commConnectorRefs = [] # type: List[RefType]
74
- self.frameTriggerings = [] # type: List[FrameTriggering]
75
- self.managedPhysicalChannelRefs = [] # type: List[RefType]
76
-
77
- def getCommConnectorRefs(self):
78
- return self.commConnectorRefs
79
-
80
- def addCommConnectorRef(self, value):
81
- self.commConnectorRefs.append(value)
82
- return self
83
-
84
- def getFrameTriggerings(self) -> List[FrameTriggering]:
85
- return list(sorted(filter(lambda a: isinstance(a, FrameTriggering), self.elements), key=lambda o: o.getShortName()))
86
-
87
- def createCanFrameTriggering(self, short_name: str) -> CanFrameTriggering:
88
- if (short_name not in self.elements):
89
- triggering = CanFrameTriggering(self, short_name)
90
- self.addElement(triggering)
91
- self.frameTriggerings.append(triggering)
92
- return self.getElement(short_name)
93
-
94
- def createLinFrameTriggering(self, short_name: str) -> LinFrameTriggering:
95
- if (short_name not in self.elements):
96
- triggering = LinFrameTriggering(self, short_name)
97
- self.addElement(triggering)
98
- self.frameTriggerings.append(triggering)
99
- return self.getElement(short_name)
100
-
101
- def createFlexrayFrameTriggering(self, short_name: str) -> FlexrayFrameTriggering:
102
- if (short_name not in self.elements):
103
- triggering = FlexrayFrameTriggering(self, short_name)
104
- self.addElement(triggering)
105
- self.frameTriggerings.append(triggering)
106
- return self.getElement(short_name)
107
-
108
- def getISignalTriggerings(self) -> List[ISignalTriggering]:
109
- return list(sorted(filter(lambda a: isinstance(a, ISignalTriggering), self.elements), key=lambda o: o.getShortName()))
110
-
111
- def createISignalTriggering(self, short_name: str):
112
- if (short_name not in self.elements):
113
- triggering = ISignalTriggering(self, short_name)
114
- self.addElement(triggering)
115
- return self.getElement(short_name)
116
-
117
- def getManagedPhysicalChannelRefs(self):
118
- return self.managedPhysicalChannelRefs
119
-
120
- def addManagedPhysicalChannelRef(self, value):
121
- self.managedPhysicalChannelRefs.append(value)
122
- return self
123
-
124
- def getPduTriggerings(self) -> List[PduTriggering]:
125
- return list(sorted(filter(lambda a: isinstance(a, PduTriggering), self.elements), key=lambda o: o.getShortName()))
126
-
127
- def createPduTriggering(self, short_name: str):
128
- if (short_name not in self.elements):
129
- triggering = PduTriggering(self, short_name)
130
- self.addElement(triggering)
131
- return self.getElement(short_name)
132
-
133
-
134
- class AbstractCanPhysicalChannel(PhysicalChannel, metaclass=ABCMeta):
135
- def __init__(self, parent, short_name):
136
- if type(self) is AbstractCanPhysicalChannel:
137
- raise NotImplementedError("AbstractCanPhysicalChannel is an abstract class.")
138
-
139
- super().__init__(parent, short_name)
140
-
141
-
142
- class CanPhysicalChannel(AbstractCanPhysicalChannel):
143
- def __init__(self, parent, short_name):
144
- super().__init__(parent, short_name)
145
-
146
-
147
- class LinPhysicalChannel(PhysicalChannel):
148
- def __init__(self, parent: ARObject, short_name: str):
149
- super().__init__(parent, short_name)
150
-
151
- self.busIdleTimeoutPeriod = None # type: TimeValue
152
- # type: List[LinScheduleTable]
153
- self.scheduleTables = []
154
-
155
- def getBusIdleTimeoutPeriod(self):
156
- return self.busIdleTimeoutPeriod
157
-
158
- def setBusIdleTimeoutPeriod(self, value):
159
- if value is not None:
160
- self.busIdleTimeoutPeriod = value
161
- return self
162
-
163
- def getScheduleTables(self):
164
- return self.scheduleTables
165
-
166
- def createLinScheduleTable(self, short_name: str) -> LinScheduleTable:
167
- if (short_name not in self.elements):
168
- end_point = LinScheduleTable(self, short_name)
169
- self.addElement(end_point)
170
- self.scheduleTables.append(end_point)
171
- return self.getElement(short_name)
172
-
173
-
174
- class VlanConfig(Identifiable):
175
- def __init__(self, parent: ARObject, short_name: str):
176
- super().__init__(parent, short_name)
177
-
178
- self.vlanIdentifier = None # type: PositiveInteger
179
-
180
- def getVlanIdentifier(self):
181
- return self.vlanIdentifier
182
-
183
- def setVlanIdentifier(self, value):
184
- if value is not None:
185
- self.vlanIdentifier = value
186
- return self
187
-
188
-
189
- class EthernetPhysicalChannel(PhysicalChannel):
190
- def __init__(self, parent: ARObject, short_name: str):
191
- super().__init__(parent, short_name)
192
-
193
- self.networkEndpoints = [] # type: List[NetworkEndpoint]
194
- self.soAdConfig = None # type: SoAdConfig
195
- self.vlan = None # type: VlanConfig
196
-
197
- def getNetworkEndpoints(self):
198
- return self.networkEndpoints
199
-
200
- def createNetworkEndPoint(self, short_name: str) -> NetworkEndpoint:
201
- if (short_name not in self.elements):
202
- end_point = NetworkEndpoint(self, short_name)
203
- self.addElement(end_point)
204
- self.networkEndpoints.append(end_point)
205
- return self.getElement(short_name)
206
-
207
- def getSoAdConfig(self):
208
- return self.soAdConfig
209
-
210
- def setSoAdConfig(self, value):
211
- self.soAdConfig = value
212
- return self
213
-
214
- def getVlan(self):
215
- return self.vlan
216
-
217
- def createVlanConfig(self, short_name: str) -> VlanConfig:
218
- if (short_name not in self.elements):
219
- config = VlanConfig(self, short_name)
220
- self.vlan = config
221
- self.addElement(config)
222
- return self.getElement(short_name)
223
-
224
-
225
- class FlexrayChannelName(AREnum):
226
- CHANNEL_A = "channelA"
227
- channel_B = "channelB"
228
-
229
- def __init__(self):
230
- super().__init__([
231
- FlexrayChannelName.CHANNEL_A,
232
- FlexrayChannelName.channel_B
233
- ])
234
-
235
-
236
- class FlexrayPhysicalChannel(PhysicalChannel):
237
- def __init__(self, parent: ARObject, short_name: str):
238
- super().__init__(parent, short_name)
239
-
240
- self.channelName = None # type: FlexrayChannelName
241
-
242
- def getChannelName(self):
243
- return self.channelName
244
-
245
- def setChannelName(self, value):
246
- if value is not None:
247
- self.channelName = value
248
- return self
249
-
250
-
251
- class CommunicationCluster(FibexElement, metaclass=ABCMeta):
252
- def __init__(self, parent: ARObject, short_name: str):
253
- if type(self) is CommunicationCluster:
254
- raise NotImplementedError("CommunicationCluster is an abstract class.")
255
-
256
- super().__init__(parent, short_name)
257
-
258
- self.baudrate = None # type: ARFloat
259
- self.physicalChannel = [] # type: List[PhysicalChannel]
260
- self.protocolName = None # type: ARLiteral
261
- self.protocolVersion = None # type: ARLiteral
262
-
263
- def getBaudrate(self):
264
- return self.baudrate
265
-
266
- def setBaudrate(self, value):
267
- self.baudrate = value
268
- return self
269
-
270
- def getPhysicalChannels(self) -> List[PhysicalChannel]:
271
- return list(sorted(filter(lambda a: isinstance(a, PhysicalChannel), self.elements), key=lambda o: o.getShortName()))
272
-
273
- def getCanPhysicalChannels(self) -> List[CanPhysicalChannel]:
274
- return list(sorted(filter(lambda a: isinstance(a, CanPhysicalChannel), self.elements), key=lambda o: o.getShortName()))
275
-
276
- def getLinPhysicalChannels(self) -> List[LinPhysicalChannel]:
277
- return list(sorted(filter(lambda a: isinstance(a, LinPhysicalChannel), self.elements), key=lambda o: o.getShortName()))
278
-
279
- def getEthernetPhysicalChannels(self) -> List[EthernetPhysicalChannel]:
280
- return list(sorted(filter(lambda a: isinstance(a, EthernetPhysicalChannel), self.elements), key=lambda o: o.getShortName()))
281
-
282
- def createCanPhysicalChannel(self, short_name: str):
283
- if (short_name not in self.elements):
284
- channel = CanPhysicalChannel(self, short_name)
285
- self.addElement(channel)
286
- self.physicalChannel.append(channel)
287
- return self.getElement(short_name)
288
-
289
- def createLinPhysicalChannel(self, short_name: str):
290
- if (short_name not in self.elements):
291
- channel = LinPhysicalChannel(self, short_name)
292
- self.addElement(channel)
293
- self.physicalChannel.append(channel)
294
- return self.getElement(short_name)
295
-
296
- def createEthernetPhysicalChannel(self, short_name: str):
297
- if (short_name not in self.elements):
298
- channel = EthernetPhysicalChannel(self, short_name)
299
- self.addElement(channel)
300
- self.physicalChannel.append(channel)
301
- return self.getElement(short_name)
302
-
303
- def createFlexrayPhysicalChannel(self, short_name: str):
304
- if (short_name not in self.elements):
305
- channel = FlexrayPhysicalChannel(self, short_name)
306
- self.addElement(channel)
307
- self.physicalChannel.append(channel)
308
- return self.getElement(short_name)
309
-
310
- def getProtocolName(self):
311
- return self.protocolName
312
-
313
- def setProtocolName(self, value):
314
- self.protocolName = value
315
- return self
316
-
317
- def getProtocolVersion(self):
318
- return self.protocolVersion
319
-
320
- def setProtocolVersion(self, value):
321
- self.protocolVersion = value
322
- return self
323
-
324
-
325
- class CanClusterBusOffRecovery(ARObject):
326
- def __init__(self):
327
- super().__init__()
328
-
329
- self.borCounterL1ToL2 = None # type: PositiveInteger
330
- self.borTimeL1 = None # type: TimeValue
331
- self.borTimeL2 = None # type: TimeValue
332
- self.borTimeTxEnsured = None # type: TimeValue
333
- self.mainFunctionPeriod = None # type: TimeValue
334
-
335
- def getBorCounterL1ToL2(self):
336
- return self.borCounterL1ToL2
337
-
338
- def setBorCounterL1ToL2(self, value):
339
- if value is not None:
340
- self.borCounterL1ToL2 = value
341
- return self
342
-
343
- def getBorTimeL1(self):
344
- return self.borTimeL1
345
-
346
- def setBorTimeL1(self, value):
347
- if value is not None:
348
- self.borTimeL1 = value
349
- return self
350
-
351
- def getBorTimeL2(self):
352
- return self.borTimeL2
353
-
354
- def setBorTimeL2(self, value):
355
- if value is not None:
356
- self.borTimeL2 = value
357
- return self
358
-
359
- def getBorTimeTxEnsured(self):
360
- return self.borTimeTxEnsured
361
-
362
- def setBorTimeTxEnsured(self, value):
363
- if value is not None:
364
- self.borTimeTxEnsured = value
365
- return self
366
-
367
- def getMainFunctionPeriod(self):
368
- return self.mainFunctionPeriod
369
-
370
- def setMainFunctionPeriod(self, value):
371
- if value is not None:
372
- self.mainFunctionPeriod = value
373
- return self
374
-
375
-
376
- class AbstractCanCluster(CommunicationCluster, metaclass=ABCMeta):
377
- def __init__(self, parent: ARObject, short_name: str):
378
- if type(self) is AbstractCanCluster:
379
- raise NotImplementedError("AbstractCanCluster is an abstract class.")
380
-
381
- super().__init__(parent, short_name)
382
-
383
- self.busOffRecovery = None # type: CanClusterBusOffRecovery
384
- self.canFdBaudrate = None # type: PositiveUnlimitedInteger
385
- self.canXlBaudrate = None # type: PositiveUnlimitedInteger
386
- self.speed = None # type: PositiveUnlimitedInteger
387
-
388
- def getBusOffRecovery(self):
389
- return self.busOffRecovery
390
-
391
- def setBusOffRecovery(self, value):
392
- self.busOffRecovery = value
393
- return self
394
-
395
- def getCanFdBaudrate(self):
396
- return self.canFdBaudrate
397
-
398
- def setCanFdBaudrate(self, value):
399
- self.canFdBaudrate = value
400
- return self
401
-
402
- def getCanXlBaudrate(self):
403
- return self.canXlBaudrate
404
-
405
- def setCanXlBaudrate(self, value):
406
- self.canXlBaudrate = value
407
- return self
408
-
409
- def getSpeed(self):
410
- return self.speed
411
-
412
- def setSpeed(self, value):
413
- self.speed = value
414
- return self
415
-
416
-
417
- class CanCluster(AbstractCanCluster):
418
- def __init__(self, parent: ARObject, short_name: str):
419
- super().__init__(parent, short_name)
420
-
421
-
422
- class LinCluster(CommunicationCluster):
423
- def __init__(self, parent: ARObject, short_name: str):
424
- super().__init__(parent, short_name)
425
-
426
-
427
- class CommunicationController(Identifiable, metaclass=ABCMeta):
428
- def __init__(self, parent: ARObject, short_name: str):
429
- if type(self) is CommunicationController:
430
- raise NotImplementedError("CommunicationController is an abstract class.")
431
-
432
- super().__init__(parent, short_name)
433
-
434
- self.wakeUpByControllerSupported = None # type: Boolean
435
-
436
- def getWakeUpByControllerSupported(self):
437
- return self.wakeUpByControllerSupported
438
-
439
- def setWakeUpByControllerSupported(self, value):
440
- self.wakeUpByControllerSupported = value
441
- return self
442
-
443
-
444
- class PncGatewayTypeEnum(AREnum):
445
- ENUM_ACTIVE = "active"
446
- ENUM_NONE = "none"
447
- ENUM_PASSIVE = "passive"
448
-
449
- def __init__(self):
450
- super().__init__([])
451
-
452
-
453
- class CommunicationDirectionType(AREnum):
454
- ENUM_IN = "in"
455
- ENUM_OUT = "out"
456
-
457
- def __init__(self):
458
- super().__init__([])
459
-
460
-
461
- class CommConnectorPort(Identifiable, metaclass=ABCMeta):
462
- def __init__(self, parent: ARObject, short_name: str):
463
- if type(self) is CommConnectorPort:
464
- raise NotImplementedError("CommConnectorPort is an abstract class.")
465
-
466
- super().__init__(parent, short_name)
467
-
468
- self.communicationDirection = None # type: CommunicationDirectionType
469
-
470
- def getCommunicationDirection(self):
471
- return self.communicationDirection
472
-
473
- def setCommunicationDirection(self, value):
474
- if value is not None:
475
- self.communicationDirection = value
476
- return self
477
-
478
-
479
- class FramePort(CommConnectorPort):
480
- def __init__(self, parent: ARObject, short_name: str):
481
- super().__init__(parent, short_name)
482
-
483
-
484
- class IPduSignalProcessingEnum(Enum):
485
- ENUM_DEFERRED = "deferred"
486
- ENUM_IMMEDIATE = "immediate"
487
-
488
-
489
- class IPduPort(CommConnectorPort):
490
- def __init__(self, parent: ARObject, short_name: str):
491
- super().__init__(parent, short_name)
492
-
493
- self.iPduSignalProcessing = None # type: IPduSignalProcessingEnum
494
- self.keyId = None # type: PositiveInteger
495
- self.rxSecurityVerification = None # type: Boolean
496
- self.timestampRxAcceptanceWindow = None # type: TimeValue
497
- self.useAuthDataFreshness = None # type: Boolean
498
-
499
- def getIPduSignalProcessing(self):
500
- return self.iPduSignalProcessing
501
-
502
- def setIPduSignalProcessing(self, value):
503
- if value is not None:
504
- self.iPduSignalProcessing = value
505
- return self
506
-
507
- def getKeyId(self):
508
- return self.keyId
509
-
510
- def setKeyId(self, value):
511
- if value is not None:
512
- self.keyId = value
513
- return self
514
-
515
- def getRxSecurityVerification(self):
516
- return self.rxSecurityVerification
517
-
518
- def setRxSecurityVerification(self, value):
519
- if value is not None:
520
- self.rxSecurityVerification = value
521
- return self
522
-
523
- def getTimestampRxAcceptanceWindow(self):
524
- return self.timestampRxAcceptanceWindow
525
-
526
- def setTimestampRxAcceptanceWindow(self, value):
527
- if value is not None:
528
- self.timestampRxAcceptanceWindow = value
529
- return self
530
-
531
- def getUseAuthDataFreshness(self):
532
- return self.useAuthDataFreshness
533
-
534
- def setUseAuthDataFreshness(self, value):
535
- if value is not None:
536
- self.useAuthDataFreshness = value
537
- return self
538
-
539
-
540
- class ISignalPort(CommConnectorPort):
541
- def __init__(self, parent: ARObject, short_name: str):
542
- super().__init__(parent, short_name)
543
-
544
- self.dataFilter = None # type: DataFilter
545
- self.ddsQosProfileRef = None # type: RefType
546
- self.firstTimeout = None # type: TimeValue
547
- self.handleInvalid = None # type: HandleInvalidEnum
548
- self.timeout = None # type: TimeValue
549
-
550
- def getDataFilter(self):
551
- return self.dataFilter
552
-
553
- def setDataFilter(self, value):
554
- if value is not None:
555
- self.dataFilter = value
556
- return self
557
-
558
- def getDdsQosProfileRef(self):
559
- return self.ddsQosProfileRef
560
-
561
- def setDdsQosProfileRef(self, value):
562
- if value is not None:
563
- self.ddsQosProfileRef = value
564
- return self
565
-
566
- def getFirstTimeout(self):
567
- return self.firstTimeout
568
-
569
- def setFirstTimeout(self, value):
570
- if value is not None:
571
- self.firstTimeout = value
572
- return self
573
-
574
- def getHandleInvalid(self):
575
- return self.handleInvalid
576
-
577
- def setHandleInvalid(self, value):
578
- if value is not None:
579
- self.handleInvalid = value
580
- return self
581
-
582
- def getTimeout(self):
583
- return self.timeout
584
-
585
- def setTimeout(self, value):
586
- if value is not None:
587
- self.timeout = value
588
- return self
589
-
590
-
591
- class CommunicationConnector(Identifiable, metaclass=ABCMeta):
592
- def __init__(self, parent: ARObject, short_name: str):
593
- if type(self) is CommunicationConnector:
594
- raise NotImplementedError("CommunicationConnector is an abstract class.")
595
-
596
- super().__init__(parent, short_name)
597
-
598
- self.commControllerRef = None # type: RefType
599
- self.createEcuWakeupSource = None # type: Boolean
600
- self.dynamicPncToChannelMappingEnabled = None # type: Boolean
601
- self.ecuCommPortInstances = [] # type: List[CommConnectorPort]
602
- self.pncFilterArrayMasks = [] # type: List[PositiveInteger]
603
- self.pncGatewayType = None # type: PncGatewayTypeEnum
604
-
605
- def getCommControllerRef(self):
606
- return self.commControllerRef
607
-
608
- def setCommControllerRef(self, value):
609
- self.commControllerRef = value
610
- return self
611
-
612
- def getCreateEcuWakeupSource(self):
613
- return self.createEcuWakeupSource
614
-
615
- def setCreateEcuWakeupSource(self, value):
616
- self.createEcuWakeupSource = value
617
- return self
618
-
619
- def getDynamicPncToChannelMappingEnabled(self):
620
- return self.dynamicPncToChannelMappingEnabled
621
-
622
- def setDynamicPncToChannelMappingEnabled(self, value):
623
- self.dynamicPncToChannelMappingEnabled = value
624
- return self
625
-
626
- def getEcuCommPortInstances(self):
627
- return list(sorted(filter(lambda a: isinstance(a, CommConnectorPort), self.elements), key=lambda o: o.getShortName()))
628
-
629
- def createFramePort(self, short_name) -> FramePort:
630
- if short_name not in self.elements:
631
- port = FramePort(self, short_name)
632
- self.addElement(port)
633
- self.ecuCommPortInstances.append(port)
634
- return self.getElement(short_name)
635
-
636
- def createIPduPort(self, short_name) -> IPduPort:
637
- if short_name not in self.elements:
638
- port = IPduPort(self, short_name)
639
- self.addElement(port)
640
- self.ecuCommPortInstances.append(port)
641
- return self.getElement(short_name)
642
-
643
- def createISignalPort(self, short_name) -> ISignalPort:
644
- if short_name not in self.elements:
645
- port = ISignalPort(self, short_name)
646
- self.addElement(port)
647
- self.ecuCommPortInstances.append(port)
648
- return self.getElement(short_name)
649
-
650
- def getPncFilterArrayMasks(self):
651
- return self.pncFilterArrayMasks
652
-
653
- def addPncFilterArrayMask(self, value):
654
- self.pncFilterArrayMasks.append(value)
655
- return self
656
-
657
- def getPncGatewayType(self):
658
- return self.pncGatewayType
659
-
660
- def setPncGatewayType(self, value):
661
- self.pncGatewayType = value
662
- return self
1
+ from abc import ABC
2
+ from enum import Enum
3
+ from typing import List
4
+
5
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayCommunication import FlexrayFrameTriggering
6
+ from armodel.models.M2.AUTOSARTemplates.CommonStructure.Filter import DataFilter
7
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
8
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
9
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, Boolean, Integer, PositiveInteger
10
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveUnlimitedInteger, RefType, TimeValue
11
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
12
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering, LinScheduleTable
13
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import NetworkEndpoint
14
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement, FrameTriggering, ISignalTriggering, PduTriggering
15
+
16
+
17
+ class CommunicationCycle(ARObject, ABC):
18
+ """
19
+ Abstract base class for communication cycles, defining common
20
+ properties for different types of communication timing cycles
21
+ in the AUTOSAR communication system.
22
+ """
23
+
24
+ def __init__(self):
25
+ if type(self) is CommunicationCycle:
26
+ raise TypeError("CommunicationCycle is an abstract class.")
27
+ super().__init__()
28
+
29
+
30
+ class CycleCounter(CommunicationCycle):
31
+ """
32
+ Defines a counter for communication cycles, specifying the
33
+ count value for cycle tracking in timed communication systems.
34
+ """
35
+ def __init__(self):
36
+ super().__init__()
37
+
38
+ self.CycleCounter: Integer = None
39
+
40
+ def getCycleCounter(self):
41
+ return self.CycleCounter
42
+
43
+ def setCycleCounter(self, value):
44
+ if value is not None:
45
+ self.CycleCounter = value
46
+ return self
47
+
48
+
49
+ class CycleRepetitionType(AREnum):
50
+ """
51
+ Enumeration defining types of cycle repetitions in communication
52
+ scheduling, specifying how communication cycles are repeated
53
+ over time.
54
+ """
55
+ def __init__(self):
56
+ super().__init__([])
57
+
58
+
59
+ class CycleRepetition(CommunicationCycle):
60
+ """
61
+ Defines repetition properties for communication cycles,
62
+ specifying base cycle and repetition pattern for cyclic
63
+ communication scheduling.
64
+ """
65
+ def __init__(self):
66
+ super().__init__()
67
+
68
+ self.BaseCycle: Integer = None
69
+ self.CycleRepetition: CycleRepetitionType = None
70
+
71
+ def getBaseCycle(self):
72
+ return self.BaseCycle
73
+
74
+ def setBaseCycle(self, value):
75
+ if value is not None:
76
+ self.BaseCycle = value
77
+ return self
78
+
79
+ def getCycleRepetition(self):
80
+ return self.CycleRepetition
81
+
82
+ def setCycleRepetition(self, value):
83
+ if value is not None:
84
+ self.CycleRepetition = value
85
+ return self
86
+
87
+
88
+ class PhysicalChannel (Identifiable, ABC):
89
+ """
90
+ Abstract base class for physical communication channels,
91
+ defining common properties for different types of physical
92
+ communication media including connector references and
93
+ frame triggering mechanisms.
94
+ """
95
+ def __init__(self, parent: ARObject, short_name: str):
96
+ if type(self) is PhysicalChannel:
97
+ raise TypeError("PhysicalChannel is an abstract class.")
98
+
99
+ super().__init__(parent, short_name)
100
+
101
+ self.commConnectorRefs: List[RefType] = []
102
+ self.frameTriggerings: List[FrameTriggering] = []
103
+ self.managedPhysicalChannelRefs: List[RefType] = []
104
+
105
+ def getCommConnectorRefs(self):
106
+ return self.commConnectorRefs
107
+
108
+ def addCommConnectorRef(self, value):
109
+ self.commConnectorRefs.append(value)
110
+ return self
111
+
112
+ def getFrameTriggerings(self) -> List[FrameTriggering]:
113
+ return list(sorted(filter(lambda a: isinstance(a, FrameTriggering), self.elements), key=lambda o: o.getShortName()))
114
+
115
+ def createCanFrameTriggering(self, short_name: str) -> CanFrameTriggering:
116
+ if (short_name not in self.elements):
117
+ triggering = CanFrameTriggering(self, short_name)
118
+ self.addElement(triggering)
119
+ self.frameTriggerings.append(triggering)
120
+ return self.getElement(short_name)
121
+
122
+ def createLinFrameTriggering(self, short_name: str) -> LinFrameTriggering:
123
+ if (short_name not in self.elements):
124
+ triggering = LinFrameTriggering(self, short_name)
125
+ self.addElement(triggering)
126
+ self.frameTriggerings.append(triggering)
127
+ return self.getElement(short_name)
128
+
129
+ def createFlexrayFrameTriggering(self, short_name: str) -> FlexrayFrameTriggering:
130
+ if (short_name not in self.elements):
131
+ triggering = FlexrayFrameTriggering(self, short_name)
132
+ self.addElement(triggering)
133
+ self.frameTriggerings.append(triggering)
134
+ return self.getElement(short_name)
135
+
136
+ def getISignalTriggerings(self) -> List[ISignalTriggering]:
137
+ return list(sorted(filter(lambda a: isinstance(a, ISignalTriggering), self.elements), key=lambda o: o.getShortName()))
138
+
139
+ def createISignalTriggering(self, short_name: str):
140
+ if (short_name not in self.elements):
141
+ triggering = ISignalTriggering(self, short_name)
142
+ self.addElement(triggering)
143
+ return self.getElement(short_name)
144
+
145
+ def getManagedPhysicalChannelRefs(self):
146
+ return self.managedPhysicalChannelRefs
147
+
148
+ def addManagedPhysicalChannelRef(self, value):
149
+ self.managedPhysicalChannelRefs.append(value)
150
+ return self
151
+
152
+ def getPduTriggerings(self) -> List[PduTriggering]:
153
+ return list(sorted(filter(lambda a: isinstance(a, PduTriggering), self.elements), key=lambda o: o.getShortName()))
154
+
155
+ def createPduTriggering(self, short_name: str):
156
+ if (short_name not in self.elements):
157
+ triggering = PduTriggering(self, short_name)
158
+ self.addElement(triggering)
159
+ return self.getElement(short_name)
160
+
161
+
162
+ class AbstractCanPhysicalChannel(PhysicalChannel, ABC):
163
+ """
164
+ Abstract base class for CAN physical channels, defining
165
+ common properties for CAN-specific physical communication
166
+ channels in the AUTOSAR system.
167
+ """
168
+ def __init__(self, parent, short_name):
169
+ if type(self) is AbstractCanPhysicalChannel:
170
+ raise TypeError("AbstractCanPhysicalChannel is an abstract class.")
171
+
172
+ super().__init__(parent, short_name)
173
+
174
+
175
+ class CanPhysicalChannel(AbstractCanPhysicalChannel):
176
+ """
177
+ Represents a CAN physical channel in the communication system,
178
+ implementing specific properties for CAN bus communication
179
+ including frame triggering and connector management.
180
+ """
181
+ def __init__(self, parent, short_name):
182
+ super().__init__(parent, short_name)
183
+
184
+
185
+ class LinPhysicalChannel(PhysicalChannel):
186
+ """
187
+ Represents a LIN physical channel in the communication system,
188
+ defining LIN-specific properties including bus idle timeout
189
+ and schedule tables for LIN network communication.
190
+ """
191
+ def __init__(self, parent: ARObject, short_name: str):
192
+ super().__init__(parent, short_name)
193
+
194
+ self.busIdleTimeoutPeriod: TimeValue = None
195
+ self.scheduleTables: List[LinScheduleTable] = []
196
+
197
+ def getBusIdleTimeoutPeriod(self):
198
+ return self.busIdleTimeoutPeriod
199
+
200
+ def setBusIdleTimeoutPeriod(self, value):
201
+ if value is not None:
202
+ self.busIdleTimeoutPeriod = value
203
+ return self
204
+
205
+ def getScheduleTables(self):
206
+ return self.scheduleTables
207
+
208
+ def createLinScheduleTable(self, short_name: str) -> LinScheduleTable:
209
+ if (short_name not in self.elements):
210
+ end_point = LinScheduleTable(self, short_name)
211
+ self.addElement(end_point)
212
+ self.scheduleTables.append(end_point)
213
+ return self.getElement(short_name)
214
+
215
+
216
+ class VlanConfig(Identifiable):
217
+ """
218
+ Defines Virtual LAN (VLAN) configuration properties,
219
+ specifying VLAN identifiers for network segmentation
220
+ and traffic management in Ethernet communication.
221
+ """
222
+ def __init__(self, parent: ARObject, short_name: str):
223
+ super().__init__(parent, short_name)
224
+
225
+ self.vlanIdentifier: PositiveInteger = None
226
+
227
+ def getVlanIdentifier(self):
228
+ return self.vlanIdentifier
229
+
230
+ def setVlanIdentifier(self, value):
231
+ if value is not None:
232
+ self.vlanIdentifier = value
233
+ return self
234
+
235
+
236
+ class EthernetPhysicalChannel(PhysicalChannel):
237
+ """
238
+ Represents an Ethernet physical channel in the communication system,
239
+ defining Ethernet-specific properties including network endpoints,
240
+ Socket Adaptor (SoAd) configuration, and VLAN settings.
241
+ """
242
+ def __init__(self, parent: ARObject, short_name: str):
243
+ super().__init__(parent, short_name)
244
+
245
+ self.networkEndpoints: List[NetworkEndpoint] = []
246
+ self.soAdConfig = None
247
+ self.vlan: VlanConfig = None
248
+
249
+ def getNetworkEndpoints(self):
250
+ return self.networkEndpoints
251
+
252
+ def createNetworkEndPoint(self, short_name: str) -> NetworkEndpoint:
253
+ if (short_name not in self.elements):
254
+ end_point = NetworkEndpoint(self, short_name)
255
+ self.addElement(end_point)
256
+ self.networkEndpoints.append(end_point)
257
+ return self.getElement(short_name)
258
+
259
+ def getSoAdConfig(self):
260
+ return self.soAdConfig
261
+
262
+ def setSoAdConfig(self, value):
263
+ self.soAdConfig = value
264
+ return self
265
+
266
+ def getVlan(self):
267
+ return self.vlan
268
+
269
+ def createVlanConfig(self, short_name: str) -> VlanConfig:
270
+ if (short_name not in self.elements):
271
+ config = VlanConfig(self, short_name)
272
+ self.vlan = config
273
+ self.addElement(config)
274
+ return self.getElement(short_name)
275
+
276
+
277
+ class FlexrayChannelName(AREnum):
278
+ """
279
+ Enumeration defining names for FlexRay channels,
280
+ specifying the available channel designations
281
+ in FlexRay communication systems.
282
+ """
283
+ CHANNEL_A = "channelA"
284
+ channel_B = "channelB"
285
+
286
+ def __init__(self):
287
+ super().__init__([
288
+ FlexrayChannelName.CHANNEL_A,
289
+ FlexrayChannelName.channel_B
290
+ ])
291
+
292
+
293
+ class FlexrayPhysicalChannel(PhysicalChannel):
294
+ """
295
+ Represents a FlexRay physical channel in the communication system,
296
+ defining FlexRay-specific properties including channel name
297
+ designation for dual-channel FlexRay communication.
298
+ """
299
+ def __init__(self, parent: ARObject, short_name: str):
300
+ super().__init__(parent, short_name)
301
+
302
+ self.channelName = None # type: FlexrayChannelName
303
+
304
+ def getChannelName(self):
305
+ return self.channelName
306
+
307
+ def setChannelName(self, value):
308
+ if value is not None:
309
+ self.channelName = value
310
+ return self
311
+
312
+
313
+ class CommunicationCluster(FibexElement, ABC):
314
+ """
315
+ Abstract base class for communication clusters, defining
316
+ common properties for different types of communication
317
+ networks including baud rate, protocol specifications,
318
+ and physical channel management.
319
+ """
320
+ def __init__(self, parent: ARObject, short_name: str):
321
+ if type(self) is CommunicationCluster:
322
+ raise TypeError("CommunicationCluster is an abstract class.")
323
+
324
+ super().__init__(parent, short_name)
325
+
326
+ self.baudrate = None # type: ARFloat
327
+ self.physicalChannel: List[PhysicalChannel] = []
328
+ self.protocolName = None # type: ARLiteral
329
+ self.protocolVersion = None # type: ARLiteral
330
+
331
+ def getBaudrate(self):
332
+ return self.baudrate
333
+
334
+ def setBaudrate(self, value):
335
+ self.baudrate = value
336
+ return self
337
+
338
+ def getPhysicalChannels(self) -> List[PhysicalChannel]:
339
+ return list(sorted(filter(lambda a: isinstance(a, PhysicalChannel), self.elements), key=lambda o: o.getShortName()))
340
+
341
+ def getCanPhysicalChannels(self) -> List[CanPhysicalChannel]:
342
+ return list(sorted(filter(lambda a: isinstance(a, CanPhysicalChannel), self.elements), key=lambda o: o.getShortName()))
343
+
344
+ def getLinPhysicalChannels(self) -> List[LinPhysicalChannel]:
345
+ return list(sorted(filter(lambda a: isinstance(a, LinPhysicalChannel), self.elements), key=lambda o: o.getShortName()))
346
+
347
+ def getEthernetPhysicalChannels(self) -> List[EthernetPhysicalChannel]:
348
+ return list(sorted(filter(lambda a: isinstance(a, EthernetPhysicalChannel), self.elements), key=lambda o: o.getShortName()))
349
+
350
+ def createCanPhysicalChannel(self, short_name: str):
351
+ if (short_name not in self.elements):
352
+ channel = CanPhysicalChannel(self, short_name)
353
+ self.addElement(channel)
354
+ self.physicalChannel.append(channel)
355
+ return self.getElement(short_name)
356
+
357
+ def createLinPhysicalChannel(self, short_name: str):
358
+ if (short_name not in self.elements):
359
+ channel = LinPhysicalChannel(self, short_name)
360
+ self.addElement(channel)
361
+ self.physicalChannel.append(channel)
362
+ return self.getElement(short_name)
363
+
364
+ def createEthernetPhysicalChannel(self, short_name: str):
365
+ if (short_name not in self.elements):
366
+ channel = EthernetPhysicalChannel(self, short_name)
367
+ self.addElement(channel)
368
+ self.physicalChannel.append(channel)
369
+ return self.getElement(short_name)
370
+
371
+ def createFlexrayPhysicalChannel(self, short_name: str):
372
+ if (short_name not in self.elements):
373
+ channel = FlexrayPhysicalChannel(self, short_name)
374
+ self.addElement(channel)
375
+ self.physicalChannel.append(channel)
376
+ return self.getElement(short_name)
377
+
378
+ def getProtocolName(self):
379
+ return self.protocolName
380
+
381
+ def setProtocolName(self, value):
382
+ self.protocolName = value
383
+ return self
384
+
385
+ def getProtocolVersion(self):
386
+ return self.protocolVersion
387
+
388
+ def setProtocolVersion(self, value):
389
+ self.protocolVersion = value
390
+ return self
391
+
392
+
393
+ class CanClusterBusOffRecovery(ARObject):
394
+ """
395
+ Defines bus off recovery properties for CAN clusters,
396
+ specifying timing and counter configurations for
397
+ CAN controller recovery after bus off conditions.
398
+ """
399
+ def __init__(self):
400
+ super().__init__()
401
+
402
+ self.borCounterL1ToL2: PositiveInteger = None
403
+ self.borTimeL1: TimeValue = None
404
+ self.borTimeL2: TimeValue = None
405
+ self.borTimeTxEnsured: TimeValue = None
406
+ self.mainFunctionPeriod: TimeValue = None
407
+
408
+ def getBorCounterL1ToL2(self):
409
+ return self.borCounterL1ToL2
410
+
411
+ def setBorCounterL1ToL2(self, value):
412
+ if value is not None:
413
+ self.borCounterL1ToL2 = value
414
+ return self
415
+
416
+ def getBorTimeL1(self):
417
+ return self.borTimeL1
418
+
419
+ def setBorTimeL1(self, value):
420
+ if value is not None:
421
+ self.borTimeL1 = value
422
+ return self
423
+
424
+ def getBorTimeL2(self):
425
+ return self.borTimeL2
426
+
427
+ def setBorTimeL2(self, value):
428
+ if value is not None:
429
+ self.borTimeL2 = value
430
+ return self
431
+
432
+ def getBorTimeTxEnsured(self):
433
+ return self.borTimeTxEnsured
434
+
435
+ def setBorTimeTxEnsured(self, value):
436
+ if value is not None:
437
+ self.borTimeTxEnsured = value
438
+ return self
439
+
440
+ def getMainFunctionPeriod(self):
441
+ return self.mainFunctionPeriod
442
+
443
+ def setMainFunctionPeriod(self, value):
444
+ if value is not None:
445
+ self.mainFunctionPeriod = value
446
+ return self
447
+
448
+
449
+ class AbstractCanCluster(CommunicationCluster, ABC):
450
+ """
451
+ Abstract base class for CAN clusters, extending communication
452
+ clusters with CAN-specific properties including FD and XL
453
+ baud rates and speed configurations.
454
+ """
455
+ def __init__(self, parent: ARObject, short_name: str):
456
+ if type(self) is AbstractCanCluster:
457
+ raise TypeError("AbstractCanCluster is an abstract class.")
458
+
459
+ super().__init__(parent, short_name)
460
+
461
+ self.busOffRecovery: CanClusterBusOffRecovery = None
462
+ self.canFdBaudrate: PositiveUnlimitedInteger = None
463
+ self.canXlBaudrate: PositiveUnlimitedInteger = None
464
+ self.speed: PositiveUnlimitedInteger = None
465
+
466
+ def getBusOffRecovery(self):
467
+ return self.busOffRecovery
468
+
469
+ def setBusOffRecovery(self, value):
470
+ self.busOffRecovery = value
471
+ return self
472
+
473
+ def getCanFdBaudrate(self):
474
+ return self.canFdBaudrate
475
+
476
+ def setCanFdBaudrate(self, value):
477
+ self.canFdBaudrate = value
478
+ return self
479
+
480
+ def getCanXlBaudrate(self):
481
+ return self.canXlBaudrate
482
+
483
+ def setCanXlBaudrate(self, value):
484
+ self.canXlBaudrate = value
485
+ return self
486
+
487
+ def getSpeed(self):
488
+ return self.speed
489
+
490
+ def setSpeed(self, value):
491
+ self.speed = value
492
+ return self
493
+
494
+
495
+ class CanCluster(AbstractCanCluster):
496
+ """
497
+ Represents a CAN cluster in the communication system,
498
+ implementing specific properties for CAN network
499
+ communication including timing and error recovery.
500
+ """
501
+ def __init__(self, parent: ARObject, short_name: str):
502
+ super().__init__(parent, short_name)
503
+
504
+
505
+ class LinCluster(CommunicationCluster):
506
+ """
507
+ Represents a LIN cluster in the communication system,
508
+ implementing specific properties for LIN network
509
+ communication including scheduling and timing management.
510
+ """
511
+ def __init__(self, parent: ARObject, short_name: str):
512
+ super().__init__(parent, short_name)
513
+
514
+
515
+ class CommunicationController(Identifiable, ABC):
516
+ """
517
+ Abstract base class for communication controllers,
518
+ defining common properties for different types of
519
+ communication hardware controllers in the system.
520
+ """
521
+ def __init__(self, parent: ARObject, short_name: str):
522
+ if type(self) is CommunicationController:
523
+ raise TypeError("CommunicationController is an abstract class.")
524
+
525
+ super().__init__(parent, short_name)
526
+
527
+ self.wakeUpByControllerSupported: Boolean = None
528
+
529
+ def getWakeUpByControllerSupported(self):
530
+ return self.wakeUpByControllerSupported
531
+
532
+ def setWakeUpByControllerSupported(self, value):
533
+ self.wakeUpByControllerSupported = value
534
+ return self
535
+
536
+
537
+ class PncGatewayTypeEnum(AREnum):
538
+ """
539
+ Enumeration defining types of PNC (Partial Network Cluster)
540
+ gateways, specifying the gateway behavior in partial
541
+ network communication management.
542
+ """
543
+ ENUM_ACTIVE = "active"
544
+ ENUM_NONE = "none"
545
+ ENUM_PASSIVE = "passive"
546
+
547
+ def __init__(self):
548
+ super().__init__([
549
+ PncGatewayTypeEnum.ENUM_ACTIVE,
550
+ PncGatewayTypeEnum.ENUM_NONE,
551
+ PncGatewayTypeEnum.ENUM_PASSIVE
552
+ ])
553
+
554
+
555
+ class CommunicationDirectionType(AREnum):
556
+ """
557
+ Enumeration defining communication direction types,
558
+ specifying whether communication is inbound or outbound.
559
+ """
560
+ ENUM_IN = "in"
561
+ ENUM_OUT = "out"
562
+
563
+ def __init__(self):
564
+ super().__init__([
565
+ CommunicationDirectionType.ENUM_IN,
566
+ CommunicationDirectionType.ENUM_OUT
567
+ ])
568
+
569
+
570
+ class CommConnectorPort(Identifiable, ABC):
571
+ """
572
+ Abstract base class for communication connector ports,
573
+ defining common properties for different types of
574
+ communication ports including direction and processing.
575
+ """
576
+ def __init__(self, parent: ARObject, short_name: str):
577
+ if type(self) is CommConnectorPort:
578
+ raise TypeError("CommConnectorPort is an abstract class.")
579
+
580
+ super().__init__(parent, short_name)
581
+
582
+ self.communicationDirection: CommunicationDirectionType = None
583
+
584
+ def getCommunicationDirection(self):
585
+ return self.communicationDirection
586
+
587
+ def setCommunicationDirection(self, value):
588
+ if value is not None:
589
+ self.communicationDirection = value
590
+ return self
591
+
592
+
593
+ class FramePort(CommConnectorPort):
594
+ """
595
+ Represents a frame port for communication connectors,
596
+ handling frame-based communication at the connector level.
597
+ """
598
+ def __init__(self, parent: ARObject, short_name: str):
599
+ super().__init__(parent, short_name)
600
+
601
+
602
+ class IPduSignalProcessingEnum(Enum):
603
+ """
604
+ Enumeration defining types of IPDU signal processing,
605
+ specifying whether signal processing is deferred or immediate.
606
+ """
607
+ ENUM_DEFERRED = "deferred"
608
+ ENUM_IMMEDIATE = "immediate"
609
+
610
+
611
+ class IPduPort(CommConnectorPort):
612
+ """
613
+ Represents an IPDU port for communication connectors,
614
+ handling Interaction Protocol Data Unit communication
615
+ with specific processing and security properties.
616
+ """
617
+ def __init__(self, parent: ARObject, short_name: str):
618
+ super().__init__(parent, short_name)
619
+
620
+ self.iPduSignalProcessing: IPduSignalProcessingEnum = None
621
+ self.keyId: PositiveInteger = None
622
+ self.rxSecurityVerification: Boolean = None
623
+ self.timestampRxAcceptanceWindow: TimeValue = None
624
+ self.useAuthDataFreshness: Boolean = None
625
+
626
+ def getIPduSignalProcessing(self):
627
+ return self.iPduSignalProcessing
628
+
629
+ def setIPduSignalProcessing(self, value):
630
+ if value is not None:
631
+ self.iPduSignalProcessing = value
632
+ return self
633
+
634
+ def getKeyId(self):
635
+ return self.keyId
636
+
637
+ def setKeyId(self, value):
638
+ if value is not None:
639
+ self.keyId = value
640
+ return self
641
+
642
+ def getRxSecurityVerification(self):
643
+ return self.rxSecurityVerification
644
+
645
+ def setRxSecurityVerification(self, value):
646
+ if value is not None:
647
+ self.rxSecurityVerification = value
648
+ return self
649
+
650
+ def getTimestampRxAcceptanceWindow(self):
651
+ return self.timestampRxAcceptanceWindow
652
+
653
+ def setTimestampRxAcceptanceWindow(self, value):
654
+ if value is not None:
655
+ self.timestampRxAcceptanceWindow = value
656
+ return self
657
+
658
+ def getUseAuthDataFreshness(self):
659
+ return self.useAuthDataFreshness
660
+
661
+ def setUseAuthDataFreshness(self, value):
662
+ if value is not None:
663
+ self.useAuthDataFreshness = value
664
+ return self
665
+
666
+
667
+ class ISignalPort(CommConnectorPort):
668
+ """
669
+ Represents an interaction signal port for communication connectors,
670
+ handling interaction signal communication with filtering,
671
+ timeout, and validity handling properties.
672
+ """
673
+ def __init__(self, parent: ARObject, short_name: str):
674
+ super().__init__(parent, short_name)
675
+
676
+ self.dataFilter: DataFilter = None
677
+ self.ddsQosProfileRef: RefType = None
678
+ self.firstTimeout: TimeValue = None
679
+ self.handleInvalid = None
680
+ self.timeout: TimeValue = None
681
+
682
+ def getDataFilter(self):
683
+ return self.dataFilter
684
+
685
+ def setDataFilter(self, value):
686
+ if value is not None:
687
+ self.dataFilter = value
688
+ return self
689
+
690
+ def getDdsQosProfileRef(self):
691
+ return self.ddsQosProfileRef
692
+
693
+ def setDdsQosProfileRef(self, value):
694
+ if value is not None:
695
+ self.ddsQosProfileRef = value
696
+ return self
697
+
698
+ def getFirstTimeout(self):
699
+ return self.firstTimeout
700
+
701
+ def setFirstTimeout(self, value):
702
+ if value is not None:
703
+ self.firstTimeout = value
704
+ return self
705
+
706
+ def getHandleInvalid(self):
707
+ return self.handleInvalid
708
+
709
+ def setHandleInvalid(self, value):
710
+ if value is not None:
711
+ self.handleInvalid = value
712
+ return self
713
+
714
+ def getTimeout(self):
715
+ return self.timeout
716
+
717
+ def setTimeout(self, value):
718
+ if value is not None:
719
+ self.timeout = value
720
+ return self
721
+
722
+
723
+ class CommunicationConnector(Identifiable, ABC):
724
+ """
725
+ Abstract base class for communication connectors,
726
+ defining common properties for connecting communication
727
+ controllers to communication channels and managing
728
+ port instances and gateway types.
729
+ """
730
+ def __init__(self, parent: ARObject, short_name: str):
731
+ if type(self) is CommunicationConnector:
732
+ raise TypeError("CommunicationConnector is an abstract class.")
733
+
734
+ super().__init__(parent, short_name)
735
+
736
+ self.commControllerRef: RefType = None
737
+ self.createEcuWakeupSource: Boolean = None
738
+ self.dynamicPncToChannelMappingEnabled: Boolean = None
739
+ self.ecuCommPortInstances: List[CommConnectorPort] = []
740
+ self.pncFilterArrayMasks: List[PositiveInteger] = []
741
+ self.pncGatewayType: PncGatewayTypeEnum = None
742
+
743
+ def getCommControllerRef(self):
744
+ return self.commControllerRef
745
+
746
+ def setCommControllerRef(self, value):
747
+ self.commControllerRef = value
748
+ return self
749
+
750
+ def getCreateEcuWakeupSource(self):
751
+ return self.createEcuWakeupSource
752
+
753
+ def setCreateEcuWakeupSource(self, value):
754
+ self.createEcuWakeupSource = value
755
+ return self
756
+
757
+ def getDynamicPncToChannelMappingEnabled(self):
758
+ return self.dynamicPncToChannelMappingEnabled
759
+
760
+ def setDynamicPncToChannelMappingEnabled(self, value):
761
+ self.dynamicPncToChannelMappingEnabled = value
762
+ return self
763
+
764
+ def getEcuCommPortInstances(self):
765
+ return list(sorted(filter(lambda a: isinstance(a, CommConnectorPort), self.elements), key=lambda o: o.getShortName()))
766
+
767
+ def createFramePort(self, short_name) -> FramePort:
768
+ if short_name not in self.elements:
769
+ port = FramePort(self, short_name)
770
+ self.addElement(port)
771
+ self.ecuCommPortInstances.append(port)
772
+ return self.getElement(short_name)
773
+
774
+ def createIPduPort(self, short_name) -> IPduPort:
775
+ if short_name not in self.elements:
776
+ port = IPduPort(self, short_name)
777
+ self.addElement(port)
778
+ self.ecuCommPortInstances.append(port)
779
+ return self.getElement(short_name)
780
+
781
+ def createISignalPort(self, short_name) -> ISignalPort:
782
+ if short_name not in self.elements:
783
+ port = ISignalPort(self, short_name)
784
+ self.addElement(port)
785
+ self.ecuCommPortInstances.append(port)
786
+ return self.getElement(short_name)
787
+
788
+ def getPncFilterArrayMasks(self):
789
+ return self.pncFilterArrayMasks
790
+
791
+ def addPncFilterArrayMask(self, value):
792
+ self.pncFilterArrayMasks.append(value)
793
+ return self
794
+
795
+ def getPncGatewayType(self):
796
+ return self.pncGatewayType
797
+
798
+ def setPncGatewayType(self, value):
799
+ self.pncGatewayType = value
800
+ return self