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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. armodel/__init__.py +19 -3
  2. armodel/cli/arxml_dump_cli.py +196 -197
  3. armodel/cli/arxml_format_cli.py +84 -84
  4. armodel/cli/connector2xlsx_cli.py +73 -73
  5. armodel/cli/connector_update_cli.py +73 -73
  6. armodel/cli/file_list_cli.py +69 -69
  7. armodel/cli/format_xml_cli.py +62 -62
  8. armodel/cli/memory_section_cli.py +74 -75
  9. armodel/cli/swc_list_cli.py +79 -79
  10. armodel/cli/system_signal_cli.py +73 -73
  11. armodel/cli/uuid_checker_cli.py +95 -95
  12. armodel/data_models/sw_connector.py +21 -21
  13. armodel/lib/__init__.py +4 -4
  14. armodel/lib/cli_args_parser.py +36 -35
  15. armodel/lib/sw_component.py +34 -35
  16. armodel/lib/system_signal.py +36 -36
  17. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRule.py +62 -0
  18. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRuleProps.py +83 -0
  19. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/StateDependentFirewall.py +62 -0
  20. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/__init__.py +5 -0
  21. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/__init__.py +3 -0
  22. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/__init__.py +3 -0
  23. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure/__init__.py +320 -0
  24. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +315 -296
  25. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswAsynchronousServerCallReturnsEvent.py +27 -0
  26. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswExclusiveAreaPolicy.py +22 -0
  27. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswInterruptEvent.py +18 -0
  28. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeManagerErrorEvent.py +18 -0
  29. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeReceiverPolicy.py +22 -0
  30. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswSchedulerNamePrefix.py +26 -0
  31. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswServiceDependency.py +27 -0
  32. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswTriggerDirectImplementation.py +21 -0
  33. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/RoleBasedBswModuleEntryAssignment.py +35 -0
  34. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2223 -792
  35. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +180 -60
  36. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationship.py +26 -0
  37. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipEnum.py +24 -0
  38. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipSet.py +24 -0
  39. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +586 -200
  40. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/ModeInBswModuleDescriptionInstanceRef.py +17 -0
  41. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +445 -179
  42. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__init__.py +0 -4
  43. armodel/models/M2/AUTOSARTemplates/CommonStructure/Constants/__init__.py +670 -0
  44. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +243 -96
  45. armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +273 -69
  46. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +756 -243
  47. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +336 -170
  48. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +430 -136
  49. armodel/models/M2/AUTOSARTemplates/CommonStructure/McGroups.py +53 -0
  50. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/ImplementationElementInParameterInstanceRef.py +15 -0
  51. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataAccessDetails.py +60 -0
  52. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataInstance.py +62 -0
  53. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McFunction.py +62 -0
  54. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McParameterElementGroup.py +39 -0
  55. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSupportData.py +62 -0
  56. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSwEmulationMethodSupport.py +37 -0
  57. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RoleBasedMcDataAssignment.py +61 -0
  58. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/McFunctionDataRefSet.py +39 -0
  59. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptAccessEnum.py +12 -0
  60. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptComponent.py +60 -0
  61. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptEnablerImplTypeEnum.py +11 -0
  62. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntity.py +62 -0
  63. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntityEvent.py +62 -0
  64. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionContext.py +38 -0
  65. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionControlEnum.py +11 -0
  66. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptPreparationEnum.py +11 -0
  67. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptServicePoint.py +62 -0
  68. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSupportData.py +111 -0
  69. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSwPrototypingAccess.py +62 -0
  70. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/__init__.py +27 -0
  71. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/__init__.py +19 -0
  72. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +424 -148
  73. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclarationExtra.py +73 -0
  74. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/ExecutionTime/__init__.py +132 -0
  75. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +93 -32
  76. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +78 -10
  77. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +239 -81
  78. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +68 -23
  79. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +274 -92
  80. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +135 -53
  81. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +2955 -839
  82. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationControlEnum.py +11 -0
  83. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationElementProps.py +37 -0
  84. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationEventProps.py +37 -0
  85. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationProps.py +38 -0
  86. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationPropsSet.py +38 -0
  87. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/__init__.py +13 -0
  88. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/AtpBlueprint.py +32 -0
  89. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/__init__.py +7 -0
  90. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +186 -73
  91. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +10 -0
  92. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/BlueprintGenerator.py +37 -0
  93. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/__init__.py +3 -0
  94. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/BlueprintMappingSet.py +38 -0
  95. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/__init__.py +3 -0
  96. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +126 -45
  97. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +5 -0
  98. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +290 -77
  99. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TDLETZoneClock.py +61 -0
  100. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClock.py +60 -0
  101. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClockSyncAccuracy.py +60 -0
  102. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/__init__.py +5 -0
  103. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInBswInstanceRef.py +14 -0
  104. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInSwcInstanceRef.py +14 -0
  105. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingCondition.py +61 -0
  106. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingConditionFormula.py +37 -0
  107. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingExtensionResource.py +60 -0
  108. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingModeInstance.py +61 -0
  109. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/__init__.py +15 -0
  110. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/AgeConstraint.py +57 -0
  111. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/EventTriggeringConstraint.py +203 -0
  112. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +193 -45
  113. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionTimeConstraint.py +101 -0
  114. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/LatencyTimingConstraint.py +100 -0
  115. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/OffsetConstraint.py +56 -0
  116. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationPointConstraint.py +57 -0
  117. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationTiming.py +117 -0
  118. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +59 -24
  119. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +69 -32
  120. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__init__.py +48 -0
  121. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/Traceable.py +11 -0
  122. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__init__.py +16 -0
  123. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +147 -52
  124. armodel/models/M2/AUTOSARTemplates/CommonStructure/__init__.py +17 -205
  125. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticCommonElement.py +11 -0
  126. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +137 -47
  127. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +10 -0
  128. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +285 -346
  129. armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1561 -1249
  130. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwAttributeValue.py +117 -0
  131. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +176 -59
  132. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementConnector.py +73 -0
  133. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +401 -145
  134. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +293 -92
  135. armodel/models/M2/AUTOSARTemplates/GenericStructure/DocumentationOnM1/__init__.py +39 -0
  136. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +1314 -816
  137. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/AnyInstanceRef.py +88 -0
  138. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +37 -17
  139. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +197 -74
  140. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +129 -51
  141. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Enumerations.py +16 -0
  142. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +599 -236
  143. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +902 -594
  144. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +395 -155
  145. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/AtpDefinition.py +36 -0
  146. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/__init__.py +7 -0
  147. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/AttributeValueVariationPoints/__init__.py +36 -0
  148. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/__init__.py +182 -0
  149. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/ApplicationAttributes/__init__.py +97 -0
  150. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +784 -712
  151. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py +186 -179
  152. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +363 -463
  153. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py +160 -154
  154. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +160 -100
  155. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +145 -145
  156. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +137 -131
  157. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +191 -184
  158. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/InstanceRefs.py +45 -39
  159. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +647 -641
  160. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py +21 -17
  161. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +84 -80
  162. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwComponentType.py +76 -0
  163. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +37 -34
  164. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +26 -21
  165. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +39 -34
  166. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +57 -52
  167. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +32 -24
  168. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +160 -155
  169. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +68 -63
  170. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py +46 -40
  171. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +91 -86
  172. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +219 -206
  173. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py +33 -26
  174. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +148 -137
  175. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +54 -49
  176. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +488 -489
  177. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +334 -259
  178. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +62 -58
  179. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +48 -29
  180. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{EcuResourceMapping.py → ECUResourceMapping.py} +48 -45
  181. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py +139 -122
  182. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +628 -344
  183. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__init__.py +2 -0
  184. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +267 -244
  185. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +30 -16
  186. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +750 -685
  187. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +375 -327
  188. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +924 -975
  189. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +92 -76
  190. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +669 -654
  191. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +193 -149
  192. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +110 -92
  193. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +205 -205
  194. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +1376 -1232
  195. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +800 -662
  196. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +269 -270
  197. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +172 -172
  198. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +90 -87
  199. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +899 -789
  200. armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +43 -35
  201. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +65 -52
  202. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +105 -83
  203. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +574 -524
  204. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +739 -658
  205. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +493 -458
  206. armodel/models/M2/MSR/AsamHdo/AdminData.py +150 -136
  207. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +95 -76
  208. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +367 -329
  209. armodel/models/M2/MSR/AsamHdo/Constraints/GlobalConstraints.py +58 -41
  210. armodel/models/M2/MSR/AsamHdo/SpecialData.py +99 -87
  211. armodel/models/M2/MSR/AsamHdo/Units.py +159 -105
  212. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +55 -57
  213. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +40 -41
  214. armodel/models/M2/MSR/DataDictionary/Axis.py +142 -144
  215. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +35 -36
  216. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +383 -351
  217. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +207 -209
  218. armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +31 -33
  219. armodel/models/M2/MSR/DataDictionary/SystemConstant.py +32 -0
  220. armodel/models/M2/MSR/Documentation/Annotation.py +40 -41
  221. armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +162 -163
  222. armodel/models/M2/MSR/Documentation/BlockElements/Formula/__init__.py +26 -0
  223. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +55 -56
  224. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +35 -30
  225. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +110 -110
  226. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +57 -44
  227. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +59 -58
  228. armodel/models/M2/MSR/Documentation/__init__.py +3 -3
  229. armodel/models/M2/MSR/documentation/__init__.py +3 -0
  230. armodel/models/__init__.py +86 -85
  231. armodel/models/utils/uuid_mgr.py +28 -29
  232. armodel/parser/__init__.py +2 -2
  233. armodel/parser/abstract_arxml_parser.py +323 -325
  234. armodel/parser/arxml_parser.py +5832 -5830
  235. armodel/parser/connector_xlsx_parser.py +192 -193
  236. armodel/parser/excel_parser.py +17 -17
  237. armodel/parser/file_parser.py +46 -46
  238. armodel/report/__init__.py +1 -1
  239. armodel/report/connector_xls_report.py +76 -77
  240. armodel/report/excel_report.py +41 -41
  241. armodel/transformer/abstract.py +6 -6
  242. armodel/transformer/admin_data.py +31 -31
  243. armodel/writer/__init__.py +1 -1
  244. armodel/writer/abstract_arxml_writer.py +146 -147
  245. armodel/writer/arxml_writer.py +5969 -5965
  246. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/METADATA +850 -656
  247. armodel-1.9.1.dist-info/RECORD +273 -0
  248. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/WHEEL +1 -1
  249. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/entry_points.txt +0 -1
  250. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info/licenses}/LICENSE +21 -21
  251. armodel/__pycache__/__init__.cpython-312.pyc +0 -0
  252. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswBehavior.cpython-312.pyc +0 -0
  253. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswImplementation.cpython-312.pyc +0 -0
  254. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswInterfaces.cpython-312.pyc +0 -0
  255. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswOverview.cpython-312.pyc +0 -0
  256. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  257. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HardwareConfiguration.cpython-312.pyc +0 -0
  258. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HeapUsage.cpython-312.pyc +0 -0
  259. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/MemorySectionUsage.cpython-312.pyc +0 -0
  260. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/SoftwareContext.cpython-312.pyc +0 -0
  261. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/StackUsage.cpython-312.pyc +0 -0
  262. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/__init__.cpython-312.pyc +0 -0
  263. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/PortPrototypeBlueprint.cpython-312.pyc +0 -0
  264. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/__init__.cpython-312.pyc +0 -0
  265. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/Keyword.cpython-312.pyc +0 -0
  266. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  267. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +0 -24
  268. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +0 -0
  269. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/ExecutionOrderConstraint.cpython-312.pyc +0 -0
  270. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingConstraint.cpython-312.pyc +0 -0
  271. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingExtensions.cpython-312.pyc +0 -0
  272. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/__init__.cpython-312.pyc +0 -0
  273. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__pycache__/__init__.cpython-312.pyc +0 -0
  274. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Filter.cpython-312.pyc +0 -0
  275. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/FlatMap.cpython-312.pyc +0 -0
  276. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Implementation.cpython-312.pyc +0 -0
  277. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ImplementationDataTypes.cpython-312.pyc +0 -0
  278. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/InternalBehavior.cpython-312.pyc +0 -0
  279. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ModeDeclaration.cpython-312.pyc +0 -0
  280. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ServiceNeeds.cpython-312.pyc +0 -0
  281. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/SwcBswMapping.cpython-312.pyc +0 -0
  282. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/TriggerDeclaration.cpython-312.pyc +0 -0
  283. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  284. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/DiagnosticContribution.cpython-312.pyc +0 -0
  285. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/__init__.cpython-312.pyc +0 -0
  286. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/HwElementCategory.cpython-312.pyc +0 -0
  287. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  288. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ARPackage.cpython-312.pyc +0 -0
  289. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ArObject.cpython-312.pyc +0 -0
  290. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ElementCollection.cpython-312.pyc +0 -0
  291. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/EngineeringObject.cpython-312.pyc +0 -0
  292. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/Identifiable.cpython-312.pyc +0 -0
  293. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/PrimitiveTypes.cpython-312.pyc +0 -0
  294. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/__init__.cpython-312.pyc +0 -0
  295. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/AbstractStructure.cpython-312.pyc +0 -0
  296. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/LifeCycles.cpython-312.pyc +0 -0
  297. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  298. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  299. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/__init__.cpython-312.pyc +0 -0
  300. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  301. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/__init__.cpython-312.pyc +0 -0
  302. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/DataPrototypes.cpython-312.pyc +0 -0
  303. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/Datatypes.cpython-312.pyc +0 -0
  304. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/__init__.cpython-312.pyc +0 -0
  305. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  306. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/__init__.cpython-312.pyc +0 -0
  307. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AccessCount.cpython-312.pyc +0 -0
  308. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AutosarVariableRef.cpython-312.pyc +0 -0
  309. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/DataElements.cpython-312.pyc +0 -0
  310. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/IncludedDataTypes.cpython-312.pyc +0 -0
  311. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/InstanceRefsUsage.cpython-312.pyc +0 -0
  312. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ModeDeclarationGroup.cpython-312.pyc +0 -0
  313. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PerInstanceMemory.cpython-312.pyc +0 -0
  314. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PortAPIOptions.cpython-312.pyc +0 -0
  315. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/RTEEvents.cpython-312.pyc +0 -0
  316. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServerCall.cpython-312.pyc +0 -0
  317. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServiceMapping.cpython-312.pyc +0 -0
  318. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/Trigger.cpython-312.pyc +0 -0
  319. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/__init__.cpython-312.pyc +0 -0
  320. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/Communication.cpython-312.pyc +0 -0
  321. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/EndToEndProtection.cpython-312.pyc +0 -0
  322. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/RPTScenario.cpython-312.pyc +0 -0
  323. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/SwcImplementation.cpython-312.pyc +0 -0
  324. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  325. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanCommunication.cpython-312.pyc +0 -0
  326. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanTopology.cpython-312.pyc +0 -0
  327. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/__init__.cpython-312.pyc +0 -0
  328. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetCommunication.cpython-312.pyc +0 -0
  329. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetFrame.cpython-312.pyc +0 -0
  330. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetTopology.cpython-312.pyc +0 -0
  331. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/NetworkEndpoint.cpython-312.pyc +0 -0
  332. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/ServiceInstances.cpython-312.pyc +0 -0
  333. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/__init__.cpython-312.pyc +0 -0
  334. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayCommunication.cpython-312.pyc +0 -0
  335. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayTopology.cpython-312.pyc +0 -0
  336. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/__init__.cpython-312.pyc +0 -0
  337. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinCommunication.cpython-312.pyc +0 -0
  338. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinTopology.cpython-312.pyc +0 -0
  339. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/__init__.cpython-312.pyc +0 -0
  340. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreCommunication.cpython-312.pyc +0 -0
  341. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreTopology.cpython-312.pyc +0 -0
  342. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/EcuInstance.cpython-312.pyc +0 -0
  343. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/Timing.cpython-312.pyc +0 -0
  344. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/__init__.cpython-312.pyc +0 -0
  345. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/Fibex4Multiplatform.cpython-312.pyc +0 -0
  346. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/__init__.cpython-312.pyc +0 -0
  347. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__pycache__/__init__.cpython-312.pyc +0 -0
  348. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DataMapping.cpython-312.pyc +0 -0
  349. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DiagnosticConnection.cpython-312.pyc +0 -0
  350. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DoIp.cpython-312.pyc +0 -0
  351. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/EcuResourceMapping.cpython-312.pyc +0 -0
  352. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  353. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/NetworkManagement.cpython-312.pyc +0 -0
  354. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/RteEventToOsTaskMapping.cpython-312.pyc +0 -0
  355. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SWmapping.cpython-312.pyc +0 -0
  356. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SecureCommunication.cpython-312.pyc +0 -0
  357. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/TransportProtocols.cpython-312.pyc +0 -0
  358. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  359. armodel/models/M2/AUTOSARTemplates/__pycache__/AutosarTopLevelStructure.cpython-312.pyc +0 -0
  360. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCDescriptionTemplate.cpython-312.pyc +0 -0
  361. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCParameterDefTemplate.cpython-312.pyc +0 -0
  362. armodel/models/M2/AUTOSARTemplates/__pycache__/__init__.cpython-312.pyc +0 -0
  363. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/GlobalConstraints.cpython-312.pyc +0 -0
  364. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/__init__.cpython-312.pyc +0 -0
  365. armodel/models/M2/MSR/AsamHdo/__pycache__/AdminData.cpython-312.pyc +0 -0
  366. armodel/models/M2/MSR/AsamHdo/__pycache__/BaseTypes.cpython-312.pyc +0 -0
  367. armodel/models/M2/MSR/AsamHdo/__pycache__/ComputationMethod.cpython-312.pyc +0 -0
  368. armodel/models/M2/MSR/AsamHdo/__pycache__/SpecialData.cpython-312.pyc +0 -0
  369. armodel/models/M2/MSR/AsamHdo/__pycache__/Units.cpython-312.pyc +0 -0
  370. armodel/models/M2/MSR/AsamHdo/__pycache__/__init__.cpython-312.pyc +0 -0
  371. armodel/models/M2/MSR/CalibrationData/__pycache__/CalibrationValue.cpython-312.pyc +0 -0
  372. armodel/models/M2/MSR/CalibrationData/__pycache__/__init__.cpython-312.pyc +0 -0
  373. armodel/models/M2/MSR/DataDictionary/__pycache__/AuxillaryObjects.cpython-312.pyc +0 -0
  374. armodel/models/M2/MSR/DataDictionary/__pycache__/Axis.cpython-312.pyc +0 -0
  375. armodel/models/M2/MSR/DataDictionary/__pycache__/CalibrationParameter.cpython-312.pyc +0 -0
  376. armodel/models/M2/MSR/DataDictionary/__pycache__/DataDefProperties.cpython-312.pyc +0 -0
  377. armodel/models/M2/MSR/DataDictionary/__pycache__/RecordLayout.cpython-312.pyc +0 -0
  378. armodel/models/M2/MSR/DataDictionary/__pycache__/ServiceProcessTask.cpython-312.pyc +0 -0
  379. armodel/models/M2/MSR/DataDictionary/__pycache__/__init__.cpython-312.pyc +0 -0
  380. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/Figure.cpython-312.pyc +0 -0
  381. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  382. armodel/models/M2/MSR/Documentation/BlockElements.py +0 -18
  383. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/ListElements.cpython-312.pyc +0 -0
  384. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/PaginationAndView.cpython-312.pyc +0 -0
  385. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  386. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/LanguageDataModel.cpython-312.pyc +0 -0
  387. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/MultilanguageData.cpython-312.pyc +0 -0
  388. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/__init__.cpython-312.pyc +0 -0
  389. armodel/models/M2/MSR/Documentation/__pycache__/Annotation.cpython-312.pyc +0 -0
  390. armodel/models/M2/MSR/Documentation/__pycache__/__init__.cpython-312.pyc +0 -0
  391. armodel/models/M2/MSR/__pycache__/__init__.cpython-312.pyc +0 -0
  392. armodel/models/M2/__pycache__/__init__.cpython-312.pyc +0 -0
  393. armodel/models/__pycache__/__init__.cpython-312.pyc +0 -0
  394. armodel/models/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  395. armodel/models/utils/__pycache__/uuid_mgr.cpython-312.pyc +0 -0
  396. armodel/parser/__pycache__/__init__.cpython-312.pyc +0 -0
  397. armodel/parser/__pycache__/abstract_arxml_parser.cpython-312.pyc +0 -0
  398. armodel/parser/__pycache__/arxml_parser.cpython-312.pyc +0 -0
  399. armodel/parser/__pycache__/file_parser.cpython-312.pyc +0 -0
  400. armodel/tests/__init__.py +0 -0
  401. armodel/tests/test_armodel/__init__.py +0 -0
  402. armodel/tests/test_armodel/models/__init__.py +0 -0
  403. armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +0 -116
  404. armodel/tests/test_armodel/models/test_Identifiable.py +0 -85
  405. armodel/tests/test_armodel/models/test_ar_object.py +0 -154
  406. armodel/tests/test_armodel/models/test_ar_package.py +0 -304
  407. armodel/tests/test_armodel/models/test_ar_ref.py +0 -81
  408. armodel/tests/test_armodel/models/test_bsw_module_template.py +0 -52
  409. armodel/tests/test_armodel/models/test_common_structure.py +0 -82
  410. armodel/tests/test_armodel/models/test_data_dictionary.py +0 -30
  411. armodel/tests/test_armodel/models/test_data_prototype.py +0 -93
  412. armodel/tests/test_armodel/models/test_datatype.py +0 -251
  413. armodel/tests/test_armodel/models/test_general_structure.py +0 -56
  414. armodel/tests/test_armodel/models/test_implementation.py +0 -27
  415. armodel/tests/test_armodel/models/test_m2_msr.py +0 -79
  416. armodel/tests/test_armodel/models/test_port_interface.py +0 -202
  417. armodel/tests/test_armodel/models/test_port_prototype.py +0 -15
  418. armodel/tests/test_armodel/parser/__init__.py +0 -0
  419. armodel/tests/test_armodel/parser/test_arxml_parser.py +0 -53
  420. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +0 -218
  421. armodel/tests/test_armodel/parser/test_implementation_data_type.py +0 -247
  422. armodel/tests/test_armodel/parser/test_parse_bswmd.py +0 -202
  423. armodel/tests/test_armodel/parser/test_rte_event.py +0 -142
  424. armodel/tests/test_armodel/parser/test_runnable_entity.py +0 -135
  425. armodel/tests/test_armodel/parser/test_sw_components.py +0 -484
  426. armodel/tests/test_armodel/parser/test_system.py +0 -23
  427. armodel/writer/__pycache__/__init__.cpython-312.pyc +0 -0
  428. armodel/writer/__pycache__/abstract_arxml_writer.cpython-312.pyc +0 -0
  429. armodel/writer/__pycache__/arxml_writer.cpython-312.pyc +0 -0
  430. armodel-1.8.6.dist-info/RECORD +0 -360
  431. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/top_level.txt +0 -0
@@ -1,1232 +1,1376 @@
1
- from abc import ABCMeta
2
- from typing import List
3
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, Describable
4
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, Boolean
6
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, PositiveInteger, RefType, ARBoolean, String
7
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import TimeValue, UnlimitedInteger
8
- from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeDeclaration
9
-
10
-
11
- class FibexElement(Identifiable, metaclass=ABCMeta):
12
- def __init__(self, parent: ARObject, short_name: str):
13
- if type(self) is FibexElement:
14
- raise NotImplementedError("FibexElement is an abstract class.")
15
-
16
- super().__init__(parent, short_name)
17
-
18
-
19
- class PduToFrameMapping(Identifiable):
20
- def __init__(self, parent: ARObject, short_name: str):
21
- super().__init__(parent, short_name)
22
-
23
- self.packingByteOrder = None # type: ARLiteral
24
- self.pduRef = None # type: RefType
25
- self.startPosition = None # type: ARNumerical
26
- self.updateIndicationBitPosition = None # type: ARNumerical
27
-
28
- def getPackingByteOrder(self):
29
- return self.packingByteOrder
30
-
31
- def setPackingByteOrder(self, value):
32
- self.packingByteOrder = value
33
- return self
34
-
35
- def getPduRef(self):
36
- return self.pduRef
37
-
38
- def setPduRef(self, value):
39
- self.pduRef = value
40
- return self
41
-
42
- def getStartPosition(self):
43
- return self.startPosition
44
-
45
- def setStartPosition(self, value):
46
- self.startPosition = value
47
- return self
48
-
49
- def getUpdateIndicationBitPosition(self):
50
- return self.updateIndicationBitPosition
51
-
52
- def setUpdateIndicationBitPosition(self, value):
53
- self.updateIndicationBitPosition = value
54
- return self
55
-
56
-
57
- class Frame(Identifiable, metaclass=ABCMeta):
58
- def __init__(self, parent: ARObject, short_name: str):
59
- if type(self) is Frame:
60
- raise NotImplementedError("Frame is an abstract class.")
61
-
62
- super().__init__(parent, short_name)
63
-
64
- self.frameLength = None
65
- self.pduToFrameMappings = [] # type: List[PduToFrameMapping]
66
-
67
- def getFrameLength(self):
68
- return self.frameLength
69
-
70
- def setFrameLength(self, value):
71
- self.frameLength = value
72
- return self
73
-
74
- def createPduToFrameMapping(self, short_name: str) -> PduToFrameMapping:
75
- if not self.IsElementExists(short_name):
76
- mapping = PduToFrameMapping(self, short_name)
77
- self.addElement(mapping)
78
- self.pduToFrameMappings.append(mapping)
79
- return self.getElement(short_name, PduToFrameMapping)
80
-
81
- def getPduToFrameMappings(self) -> List[PduToFrameMapping]:
82
- return list(sorted(filter(lambda a: isinstance(a, PduToFrameMapping), self.elements), key=lambda o: o.short_name))
83
-
84
-
85
- class ContainedIPduProps(ARObject):
86
- def __init__(self):
87
- super().__init__()
88
-
89
- self.collectionSemantics = None # type: ARLiteral
90
- self.headerIdLongHeader = None # type: ARPositiveInteger
91
- self.headerIdShortHeader = None # type: ARPositiveInteger
92
- self.offset = None # type: ARNumerical
93
- self.timeout = None # type: ARNumerical
94
- self.trigger = None # type: ARLiteral
95
- self.updateIndicationBitPosition = None # type: ARNumerical
96
-
97
- def getCollectionSemantics(self):
98
- return self.collectionSemantics
99
-
100
- def setCollectionSemantics(self, value):
101
- self.collectionSemantics = value
102
- return self
103
-
104
- def getHeaderIdLongHeader(self):
105
- return self.headerIdLongHeader
106
-
107
- def setHeaderIdLongHeader(self, value):
108
- self.headerIdLongHeader = value
109
- return self
110
-
111
- def getHeaderIdShortHeader(self):
112
- return self.headerIdShortHeader
113
-
114
- def setHeaderIdShortHeader(self, value):
115
- self.headerIdShortHeader = value
116
- return self
117
-
118
- def getOffset(self):
119
- return self.offset
120
-
121
- def setOffset(self, value):
122
- self.offset = value
123
- return self
124
-
125
- def getTimeout(self):
126
- return self.timeout
127
-
128
- def setTimeout(self, value):
129
- self.timeout = value
130
- return self
131
-
132
- def getTrigger(self):
133
- return self.trigger
134
-
135
- def setTrigger(self, value):
136
- self.trigger = value
137
- return self
138
-
139
- def getUpdateIndicationBitPosition(self):
140
- return self.updateIndicationBitPosition
141
-
142
- def setUpdateIndicationBitPosition(self, value):
143
- self.updateIndicationBitPosition = value
144
- return self
145
-
146
-
147
- class ISignalGroup(FibexElement):
148
- def __init__(self, parent, short_name):
149
- super().__init__(parent, short_name)
150
-
151
- self.comBasedSignalGroupTransformationRefs = [] # type: List[RefType]
152
- self.iSignalRefs = [] # type: List[RefType]
153
- self.systemSignalGroupRef = None
154
- self.transformationISignalProps = None
155
-
156
- def getComBasedSignalGroupTransformationRefs(self):
157
- return self.comBasedSignalGroupTransformationRefs
158
-
159
- def addComBasedSignalGroupTransformationRef(self, value):
160
- if value is not None:
161
- self.comBasedSignalGroupTransformationRefs.append(value)
162
- return self
163
-
164
- def getISignalRefs(self):
165
- return self.iSignalRefs
166
-
167
- def addISignalRef(self, value):
168
- self.iSignalRefs.append(value)
169
- return self
170
-
171
- def getSystemSignalGroupRef(self):
172
- return self.systemSignalGroupRef
173
-
174
- def setSystemSignalGroupRef(self, value):
175
- self.systemSignalGroupRef = value
176
- return self
177
-
178
- def getTransformationISignalProps(self):
179
- return self.transformationISignalProps
180
-
181
- def setTransformationISignalProps(self, value):
182
- self.transformationISignalProps = value
183
- return self
184
-
185
-
186
- class ISignalIPduGroup(FibexElement):
187
- def __init__(self, parent, short_name):
188
- super().__init__(parent, short_name)
189
-
190
- self.communicationDirection = None
191
- self.communicationMode = None
192
- self.containedISignalIPduGroupRefs = []
193
- self.iSignalIPduRefs = []
194
- self.nmPduRefs = []
195
-
196
- def getCommunicationDirection(self):
197
- return self.communicationDirection
198
-
199
- def setCommunicationDirection(self, value):
200
- self.communicationDirection = value
201
- return self
202
-
203
- def getCommunicationMode(self):
204
- return self.communicationMode
205
-
206
- def setCommunicationMode(self, value):
207
- self.communicationMode = value
208
- return self
209
-
210
- def getContainedISignalIPduGroupRefs(self):
211
- return self.containedISignalIPduGroupRefs
212
-
213
- def addContainedISignalIPduGroupRef(self, value):
214
- self.containedISignalIPduGroupRefs.append(value)
215
- return self
216
-
217
- def getISignalIPduRefs(self):
218
- return self.iSignalIPduRefs
219
-
220
- def addISignalIPduRef(self, value):
221
- self.iSignalIPduRefs.append(value)
222
- return self
223
-
224
- def getNmPduRefs(self):
225
- return self.nmPduRefs
226
-
227
- def addNmPduRef(self, value):
228
- self.nmPduRefs.append(value)
229
- return self
230
-
231
-
232
- class Pdu(FibexElement, metaclass=ABCMeta):
233
- def __init__(self, parent: ARObject, short_name: str):
234
- if type(self) is Pdu:
235
- raise NotImplementedError("Pdu is an abstract class.")
236
-
237
- super().__init__(parent, short_name)
238
-
239
- self.hasDynamicLength = None # type: Boolean
240
- self.length = None # type: UnlimitedInteger
241
-
242
- def getHasDynamicLength(self):
243
- return self.hasDynamicLength
244
-
245
- def setHasDynamicLength(self, value):
246
- if value is not None:
247
- self.hasDynamicLength = value
248
- return self
249
-
250
- def getLength(self):
251
- return self.length
252
-
253
- def setLength(self, value):
254
- self.length = value
255
- return self
256
-
257
-
258
- class IPdu(Pdu, metaclass=ABCMeta):
259
- def __init__(self, parent: ARObject, short_name: str):
260
- if type(self) is IPdu:
261
- raise NotImplementedError("IPdu is an abstract class.")
262
-
263
- super().__init__(parent, short_name)
264
-
265
- # type: ContainedIPduProps
266
- self.containedIPduProps = None
267
-
268
- def getContainedIPduProps(self):
269
- return self.containedIPduProps
270
-
271
- def setContainedIPduProps(self, value):
272
- if value is not None:
273
- self.containedIPduProps = value
274
- return self
275
-
276
-
277
- class SecureCommunicationProps(ARObject):
278
- def __init__(self):
279
- super().__init__()
280
-
281
- self.authDataFreshnessLength = None # type: PositiveInteger
282
- self.authDataFreshnessStartPosition = None # type: PositiveInteger
283
- self.authInfoTxLength = None # type: PositiveInteger
284
- self.authenticationBuildAttempts = None # type: PositiveInteger
285
- self.authenticationRetries = None # type: PositiveInteger
286
- self.dataId = None # type: PositiveInteger
287
- self.freshnessValueId = None # type: PositiveInteger
288
- self.freshnessValueLength = None # type: PositiveInteger
289
- self.freshnessValueTxLength = None # type: PositiveInteger
290
- self.messageLinkLength = None # type: PositiveInteger
291
- self.messageLinkPosition = None # type: PositiveInteger
292
- self.secondaryFreshnessValueId = None # type: PositiveInteger
293
- self.securedAreaLength = None # type: PositiveInteger
294
- self.securedAreaOffset = None # type: PositiveInteger
295
-
296
- def getAuthDataFreshnessLength(self):
297
- return self.authDataFreshnessLength
298
-
299
- def setAuthDataFreshnessLength(self, value):
300
- if value is not None:
301
- self.authDataFreshnessLength = value
302
- return self
303
-
304
- def getAuthDataFreshnessStartPosition(self):
305
- return self.authDataFreshnessStartPosition
306
-
307
- def setAuthDataFreshnessStartPosition(self, value):
308
- if value is not None:
309
- self.authDataFreshnessStartPosition = value
310
- return self
311
-
312
- def getAuthInfoTxLength(self):
313
- return self.authInfoTxLength
314
-
315
- def setAuthInfoTxLength(self, value):
316
- if value is not None:
317
- self.authInfoTxLength = value
318
- return self
319
-
320
- def getAuthenticationBuildAttempts(self):
321
- return self.authenticationBuildAttempts
322
-
323
- def setAuthenticationBuildAttempts(self, value):
324
- if value is not None:
325
- self.authenticationBuildAttempts = value
326
- return self
327
-
328
- def getAuthenticationRetries(self):
329
- return self.authenticationRetries
330
-
331
- def setAuthenticationRetries(self, value):
332
- if value is not None:
333
- self.authenticationRetries = value
334
- return self
335
-
336
- def getDataId(self):
337
- return self.dataId
338
-
339
- def setDataId(self, value):
340
- if value is not None:
341
- self.dataId = value
342
- return self
343
-
344
- def getFreshnessValueId(self):
345
- return self.freshnessValueId
346
-
347
- def setFreshnessValueId(self, value):
348
- if value is not None:
349
- self.freshnessValueId = value
350
- return self
351
-
352
- def getFreshnessValueLength(self):
353
- return self.freshnessValueLength
354
-
355
- def setFreshnessValueLength(self, value):
356
- if value is not None:
357
- self.freshnessValueLength = value
358
- return self
359
-
360
- def getFreshnessValueTxLength(self):
361
- return self.freshnessValueTxLength
362
-
363
- def setFreshnessValueTxLength(self, value):
364
- if value is not None:
365
- self.freshnessValueTxLength = value
366
- return self
367
-
368
- def getMessageLinkLength(self):
369
- return self.messageLinkLength
370
-
371
- def setMessageLinkLength(self, value):
372
- if value is not None:
373
- self.messageLinkLength = value
374
- return self
375
-
376
- def getMessageLinkPosition(self):
377
- return self.messageLinkPosition
378
-
379
- def setMessageLinkPosition(self, value):
380
- if value is not None:
381
- self.messageLinkPosition = value
382
- return self
383
-
384
- def getSecondaryFreshnessValueId(self):
385
- return self.secondaryFreshnessValueId
386
-
387
- def setSecondaryFreshnessValueId(self, value):
388
- if value is not None:
389
- self.secondaryFreshnessValueId = value
390
- return self
391
-
392
- def getSecuredAreaLength(self):
393
- return self.securedAreaLength
394
-
395
- def setSecuredAreaLength(self, value):
396
- if value is not None:
397
- self.securedAreaLength = value
398
- return self
399
-
400
- def getSecuredAreaOffset(self):
401
- return self.securedAreaOffset
402
-
403
- def setSecuredAreaOffset(self, value):
404
- if value is not None:
405
- self.securedAreaOffset = value
406
- return self
407
-
408
-
409
- class SecuredIPdu(IPdu):
410
- def __init__(self, parent: ARObject, short_name: str):
411
- super().__init__(parent, short_name)
412
-
413
- self.authenticationPropsRef = None # type: RefType
414
- self.dynamicRuntimeLengthHandling = None # type: Boolean
415
- self.freshnessPropsRef = None # type: RefType
416
- self.payloadRef = None # type: RefType
417
- self.secureCommunicationProps = None # type: SecureCommunicationProps
418
- self.useAsCryptographicIPdu = None # type: Boolean
419
- self.useSecuredPduHeader = None # type: SecuredPduHeaderEnum
420
-
421
- def getAuthenticationPropsRef(self):
422
- return self.authenticationPropsRef
423
-
424
- def setAuthenticationPropsRef(self, value):
425
- if value is not None:
426
- self.authenticationPropsRef = value
427
- return self
428
-
429
- def getDynamicRuntimeLengthHandling(self):
430
- return self.dynamicRuntimeLengthHandling
431
-
432
- def setDynamicRuntimeLengthHandling(self, value):
433
- if value is not None:
434
- self.dynamicRuntimeLengthHandling = value
435
- return self
436
-
437
- def getFreshnessPropsRef(self):
438
- return self.freshnessPropsRef
439
-
440
- def setFreshnessPropsRef(self, value):
441
- if value is not None:
442
- self.freshnessPropsRef = value
443
- return self
444
-
445
- def getPayloadRef(self):
446
- return self.payloadRef
447
-
448
- def setPayloadRef(self, value):
449
- if value is not None:
450
- self.payloadRef = value
451
- return self
452
-
453
- def getSecureCommunicationProps(self):
454
- return self.secureCommunicationProps
455
-
456
- def setSecureCommunicationProps(self, value):
457
- if value is not None:
458
- self.secureCommunicationProps = value
459
- return self
460
-
461
- def getUseAsCryptographicIPdu(self):
462
- return self.useAsCryptographicIPdu
463
-
464
- def setUseAsCryptographicIPdu(self, value):
465
- if value is not None:
466
- self.useAsCryptographicIPdu = value
467
- return self
468
-
469
- def getUseSecuredPduHeader(self):
470
- return self.useSecuredPduHeader
471
-
472
- def setUseSecuredPduHeader(self, value):
473
- if value is not None:
474
- self.useSecuredPduHeader = value
475
- return self
476
-
477
-
478
- class ISignalToIPduMapping(Identifiable):
479
- def __init__(self, parent, short_name):
480
- super().__init__(parent, short_name)
481
-
482
- self.iSignalRef = None # type: RefType
483
- self.iSignalGroupRef = None # type: RefType
484
- self.packingByteOrder = None # type: ByteOrderEnum
485
- self.startPosition = None # type: UnlimitedInteger
486
- self.transferProperty = None # type: TransferPropertyEnum
487
- self.updateIndicationBitPosition = None # type: UnlimitedInteger
488
-
489
- def getISignalRef(self):
490
- return self.iSignalRef
491
-
492
- def setISignalRef(self, value):
493
- self.iSignalRef = value
494
- return self
495
-
496
- def getISignalGroupRef(self):
497
- return self.iSignalGroupRef
498
-
499
- def setISignalGroupRef(self, value):
500
- self.iSignalGroupRef = value
501
- return self
502
-
503
- def getPackingByteOrder(self):
504
- return self.packingByteOrder
505
-
506
- def setPackingByteOrder(self, value):
507
- self.packingByteOrder = value
508
- return self
509
-
510
- def getStartPosition(self):
511
- return self.startPosition
512
-
513
- def setStartPosition(self, value):
514
- self.startPosition = value
515
- return self
516
-
517
- def getTransferProperty(self):
518
- return self.transferProperty
519
-
520
- def setTransferProperty(self, value):
521
- self.transferProperty = value
522
- return self
523
-
524
- def getUpdateIndicationBitPosition(self):
525
- return self.updateIndicationBitPosition
526
-
527
- def setUpdateIndicationBitPosition(self, value):
528
- self.updateIndicationBitPosition = value
529
- return self
530
-
531
-
532
- class NmPdu(Pdu):
533
- def __init__(self, parent: ARObject, short_name: str):
534
- super().__init__(parent, short_name)
535
-
536
- self.iSignalToIPduMappings = [] # type: List[ISignalToIPduMapping]
537
- self.nmDataInformation = None # type: Boolean
538
- self.nmVoteInformation = None # type: Boolean
539
- self.unusedBitPattern = None # type: Integer
540
-
541
- def getISignalToIPduMappings(self):
542
- return self.iSignalToIPduMappings
543
-
544
- def createISignalToIPduMapping(self, short_name: str) -> ISignalToIPduMapping:
545
- if not self.IsElementExists(short_name):
546
- mapping = ISignalToIPduMapping(self, short_name)
547
- self.addElement(mapping)
548
- self.iSignalToIPduMappings.append(mapping)
549
- return self.getElement(short_name, ISignalToIPduMapping)
550
-
551
- def getNmDataInformation(self):
552
- return self.nmDataInformation
553
-
554
- def setNmDataInformation(self, value):
555
- if value is not None:
556
- self.nmDataInformation = value
557
- return self
558
-
559
- def getNmVoteInformation(self):
560
- return self.nmVoteInformation
561
-
562
- def setNmVoteInformation(self, value):
563
- if value is not None:
564
- self.nmVoteInformation = value
565
- return self
566
-
567
- def getUnusedBitPattern(self):
568
- return self.unusedBitPattern
569
-
570
- def setUnusedBitPattern(self, value):
571
- if value is not None:
572
- self.unusedBitPattern = value
573
- return self
574
-
575
-
576
- class NPdu(IPdu):
577
- def __init__(self, parent: ARObject, short_name: str):
578
- super().__init__(parent, short_name)
579
-
580
-
581
- class DcmIPdu(IPdu):
582
- def __init__(self, parent: ARObject, short_name: str):
583
- super().__init__(parent, short_name)
584
-
585
- self.diagPduType = None # type: ARLiteral
586
-
587
- def getDiagPduType(self):
588
- return self.diagPduType
589
-
590
- def setDiagPduType(self, value):
591
- self.diagPduType = value
592
- return self
593
-
594
-
595
- class IPduTiming(Describable):
596
- def __init__(self):
597
- super().__init__()
598
-
599
- self.minimumDelay = None # type: TimeValue
600
- self.transmissionModeDeclaration = None # type: TransmissionModeDeclaration
601
-
602
- def getMinimumDelay(self):
603
- return self.minimumDelay
604
-
605
- def setMinimumDelay(self, value):
606
- self.minimumDelay = value
607
- return self
608
-
609
- def getTransmissionModeDeclaration(self):
610
- return self.transmissionModeDeclaration
611
-
612
- def setTransmissionModeDeclaration(self, value):
613
- self.transmissionModeDeclaration = value
614
- return self
615
-
616
-
617
- class ISignalIPdu(IPdu):
618
- def __init__(self, parent, short_name):
619
- super().__init__(parent, short_name)
620
-
621
- self.iPduTimingSpecification = None # type: IPduTiming
622
- self.iSignalToPduMappings = [] # type: List[ISignalToIPduMapping]
623
- self.unusedBitPattern = None # type: Integer
624
-
625
- def getIPduTimingSpecification(self):
626
- return self.iPduTimingSpecification
627
-
628
- def setIPduTimingSpecification(self, value):
629
- self.iPduTimingSpecification = value
630
- return self
631
-
632
- def getISignalToPduMappings(self):
633
- return self.iSignalToPduMappings
634
-
635
- def createISignalToPduMappings(self, short_name: str) -> ISignalToIPduMapping:
636
- if not self.IsElementExists(short_name):
637
- mapping = ISignalToIPduMapping(self, short_name)
638
- self.addElement(mapping)
639
- self.iSignalToPduMappings.append(mapping)
640
- return self.getElement(short_name, ISignalToIPduMapping)
641
-
642
- def getUnusedBitPattern(self):
643
- return self.unusedBitPattern
644
-
645
- def setUnusedBitPattern(self, value):
646
- self.unusedBitPattern = value
647
- return self
648
-
649
-
650
- class ISignal(FibexElement):
651
- def __init__(self, parent: ARObject, short_name: str):
652
- super().__init__(parent, short_name)
653
-
654
- self.dataTransformationRef = None
655
- self.dataTypePolicy = None
656
- self.iSignalProps = None
657
- self.iSignalType = None
658
- self.initValue = None
659
- self.length = None
660
- self.networkRepresentationProps = None
661
- self.systemSignalRef = None # type: RefType
662
- self.timeoutSubstitutionValue = None
663
- self.transformationISignalProps = []
664
-
665
- def getDataTransformationRef(self):
666
- return self.dataTransformationRef
667
-
668
- def setDataTransformationRef(self, value):
669
- self.dataTransformationRef = value
670
- return self
671
-
672
- def getDataTypePolicy(self):
673
- return self.dataTypePolicy
674
-
675
- def setDataTypePolicy(self, value):
676
- self.dataTypePolicy = value
677
- return self
678
-
679
- def getISignalProps(self):
680
- return self.iSignalProps
681
-
682
- def setISignalProps(self, value):
683
- self.iSignalProps = value
684
- return self
685
-
686
- def getISignalType(self):
687
- return self.iSignalType
688
-
689
- def setISignalType(self, value):
690
- self.iSignalType = value
691
- return self
692
-
693
- def getInitValue(self):
694
- return self.initValue
695
-
696
- def setInitValue(self, value):
697
- self.initValue = value
698
- return self
699
-
700
- def getLength(self):
701
- return self.length
702
-
703
- def setLength(self, value):
704
- self.length = value
705
- return self
706
-
707
- def getNetworkRepresentationProps(self):
708
- return self.networkRepresentationProps
709
-
710
- def setNetworkRepresentationProps(self, value):
711
- self.networkRepresentationProps = value
712
- return self
713
-
714
- def getSystemSignalRef(self):
715
- return self.systemSignalRef
716
-
717
- def setSystemSignalRef(self, value):
718
- self.systemSignalRef = value
719
- return self
720
-
721
- def getTimeoutSubstitutionValue(self):
722
- return self.timeoutSubstitutionValue
723
-
724
- def setTimeoutSubstitutionValue(self, value):
725
- self.timeoutSubstitutionValue = value
726
- return self
727
-
728
- def getTransformationISignalProps(self):
729
- return self.transformationISignalProps
730
-
731
- def addTransformationISignalProps(self, value):
732
- self.transformationISignalProps.append(value)
733
- return self
734
-
735
-
736
- class PduTriggering(Identifiable):
737
- def __init__(self, parent, short_name):
738
- super().__init__(parent, short_name)
739
-
740
- self.iPduRef = None # type: RefType
741
- self.iPduPortRefs = [] # type: List[RefType]
742
- self.iSignalTriggeringRefs = [] # type: List[RefType]
743
- self.secOcCryptoMappingRef = None # type: RefType
744
- self.triggerIPduSendConditions = [] # type: List
745
-
746
- def getIPduRef(self):
747
- return self.iPduRef
748
-
749
- def setIPduRef(self, value):
750
- self.iPduRef = value
751
- return self
752
-
753
- def getIPduPortRefs(self):
754
- return self.iPduPortRefs
755
-
756
- def addIPduPortRef(self, value):
757
- self.iPduPortRefs.append(value)
758
- return self
759
-
760
- def getISignalTriggeringRefs(self):
761
- # return sorted(self.iSignalTriggeringRefs, key = lambda i: i.getShortValue())
762
- return self.iSignalTriggeringRefs
763
-
764
- def addISignalTriggeringRef(self, value):
765
- self.iSignalTriggeringRefs.append(value)
766
- return self
767
-
768
- def getSecOcCryptoMappingRef(self):
769
- return self.secOcCryptoMappingRef
770
-
771
- def setSecOcCryptoMappingRef(self, value):
772
- self.secOcCryptoMappingRef = value
773
- return self
774
-
775
- def getTriggerIPduSendConditions(self):
776
- return self.triggerIPduSendConditions
777
-
778
- def addTriggerIPduSendCondition(self, value):
779
- self.triggerIPduSendConditions.append(value)
780
- return self
781
-
782
-
783
- class FrameTriggering(Identifiable, metaclass=ABCMeta):
784
- def __init__(self, parent, short_name):
785
- if type(self) is FrameTriggering:
786
- raise NotImplementedError("FrameTriggering is an abstract class.")
787
-
788
- super().__init__(parent, short_name)
789
-
790
- self.frameRef = None # type: RefType
791
- self.framePortRefs = [] # type: List[RefType]
792
- self.pduTriggeringRefs = [] # type: List[RefType]
793
-
794
- def getFrameRef(self) -> RefType:
795
- return self.frameRef
796
-
797
- def setFrameRef(self, value: RefType):
798
- self.frameRef = value
799
- return self
800
-
801
- def getFramePortRefs(self) -> List[RefType]:
802
- return self.framePortRefs
803
-
804
- def addFramePortRef(self, value: RefType):
805
- self.framePortRefs.append(value)
806
- return self
807
-
808
- def getPduTriggeringRefs(self) -> RefType:
809
- return self.pduTriggeringRefs
810
-
811
- def addPduTriggeringRef(self, value: RefType):
812
- self.pduTriggeringRefs.append(value)
813
- return self
814
-
815
-
816
- class SystemSignal(ARElement):
817
- def __init__(self, parent, short_name):
818
- super().__init__(parent, short_name)
819
-
820
- self.dynamicLength = None # type: ARBoolean
821
- self.physicalProps = None # type: SwDataDefProps
822
-
823
- def getDynamicLength(self):
824
- return self.dynamicLength
825
-
826
- def setDynamicLength(self, value):
827
- self.dynamicLength = value
828
- return self
829
-
830
- def getPhysicalProps(self):
831
- return self.physicalProps
832
-
833
- def setPhysicalProps(self, value):
834
- self.physicalProps = value
835
- return self
836
-
837
-
838
- class SystemSignalGroup(ARElement):
839
- def __init__(self, parent, short_name):
840
- super().__init__(parent, short_name)
841
-
842
- self.systemSignalRefs = [] # type: List[RefType]
843
- self.transformingSystemSignalRef = None # type: RefType
844
-
845
- def getSystemSignalRefs(self):
846
- return self.systemSignalRefs
847
-
848
- def addSystemSignalRefs(self, value: RefType):
849
- self.systemSignalRefs.append(value)
850
- return self
851
-
852
- def getTransformingSystemSignalRef(self):
853
- return self.transformingSystemSignalRef
854
-
855
- def setTransformingSystemSignalRef(self, value):
856
- self.transformingSystemSignalRef = value
857
- return self
858
-
859
-
860
- class ISignalTriggering(Identifiable):
861
- def __init__(self, parent, short_name):
862
- super().__init__(parent, short_name)
863
-
864
- self.iSignalRef = None # type: RefType
865
- self.iSignalGroupRef = None # type: RefType
866
- self.iSignalPortRefs = [] # type: List[RefType]
867
-
868
- def getISignalRef(self):
869
- return self.iSignalRef
870
-
871
- def setISignalRef(self, value):
872
- self.iSignalRef = value
873
- return self
874
-
875
- def getISignalGroupRef(self):
876
- return self.iSignalGroupRef
877
-
878
- def setISignalGroupRef(self, value):
879
- self.iSignalGroupRef = value
880
- return self
881
-
882
- def getISignalPortRefs(self):
883
- return self.iSignalPortRefs
884
-
885
- def addISignalPortRef(self, value):
886
- self.iSignalPortRefs.append(value)
887
- return self
888
-
889
-
890
- class SegmentPosition(ARObject):
891
- def __init__(self):
892
- super().__init__()
893
-
894
- self.segmentByteOrder = None # type: ByteOrderEnum
895
- self.segmentLength = None # type: Integer
896
- self.segmentPosition = None # type: Integer
897
-
898
- def getSegmentByteOrder(self):
899
- return self.segmentByteOrder
900
-
901
- def setSegmentByteOrder(self, value):
902
- if value is not None:
903
- self.segmentByteOrder = value
904
- return self
905
-
906
- def getSegmentLength(self):
907
- return self.segmentLength
908
-
909
- def setSegmentLength(self, value):
910
- if value is not None:
911
- self.segmentLength = value
912
- return self
913
-
914
- def getSegmentPosition(self):
915
- return self.segmentPosition
916
-
917
- def setSegmentPosition(self, value):
918
- if value is not None:
919
- self.segmentPosition = value
920
- return self
921
-
922
-
923
- class MultiplexedPart(ARObject, metaclass=ABCMeta):
924
- def __init__(self):
925
- if type(self) is MultiplexedPart:
926
- raise NotImplementedError("MultiplexedPart is an abstract class.")
927
-
928
- super().__init__()
929
-
930
- self.segmentPositions = [] # type: List[SegmentPosition]
931
-
932
- def getSegmentPositions(self):
933
- return self.segmentPositions
934
-
935
- def addSegmentPosition(self, value):
936
- if value is not None:
937
- self.segmentPositions.append(value)
938
- return self
939
-
940
-
941
- class StaticPart(MultiplexedPart):
942
- def __init__(self):
943
- super().__init__()
944
-
945
- self.iPduRef = None # type: RefType
946
-
947
- def getIPduRef(self):
948
- return self.iPduRef
949
-
950
- def setIPduRef(self, value):
951
- if value is not None:
952
- self.iPduRef = value
953
- return self
954
-
955
-
956
- class DynamicPartAlternative(ARObject):
957
- def __init__(self):
958
- super().__init__()
959
-
960
- self.initialDynamicPart = None # type: Boolean
961
- self.iPduRef = None # type: RefType
962
- self.selectorFieldCode = None # type: Integer
963
-
964
- def getInitialDynamicPart(self):
965
- return self.initialDynamicPart
966
-
967
- def setInitialDynamicPart(self, value):
968
- if value is not None:
969
- self.initialDynamicPart = value
970
- return self
971
-
972
- def getIPduRef(self):
973
- return self.iPduRef
974
-
975
- def setIPduRef(self, value):
976
- if value is not None:
977
- self.iPduRef = value
978
- return self
979
-
980
- def getSelectorFieldCode(self):
981
- return self.selectorFieldCode
982
-
983
- def setSelectorFieldCode(self, value):
984
- if value is not None:
985
- self.selectorFieldCode = value
986
- return self
987
-
988
-
989
- class DynamicPart(MultiplexedPart):
990
- def __init__(self):
991
- super().__init__()
992
-
993
- self.dynamicPartAlternatives = [] # type: List[DynamicPartAlternative]
994
-
995
- def getDynamicPartAlternatives(self):
996
- return self.dynamicPartAlternatives
997
-
998
- def addDynamicPartAlternative(self, value):
999
- if value is not None:
1000
- self.dynamicPartAlternatives.append(value)
1001
- return self
1002
-
1003
-
1004
- class MultiplexedIPdu(IPdu):
1005
- def __init__(self, parent, short_name):
1006
- super().__init__(parent, short_name)
1007
-
1008
- self.dynamicPart = None # type: DynamicPart
1009
- self.selectorFieldByteOrder = None # type: ByteOrderEnum
1010
- self.selectorFieldLength = None # type: Integer
1011
- self.selectorFieldStartPosition = None # type: Integer
1012
- self.staticPart = None # type: StaticPart
1013
- self.triggerMode = None # type: TriggerMode
1014
- self.unusedBitPattern = None # type: Integer
1015
-
1016
- def getDynamicPart(self):
1017
- return self.dynamicPart
1018
-
1019
- def setDynamicPart(self, value):
1020
- if value is not None:
1021
- self.dynamicPart = value
1022
- return self
1023
-
1024
- def getSelectorFieldByteOrder(self):
1025
- return self.selectorFieldByteOrder
1026
-
1027
- def setSelectorFieldByteOrder(self, value):
1028
- if value is not None:
1029
- self.selectorFieldByteOrder = value
1030
- return self
1031
-
1032
- def getSelectorFieldLength(self):
1033
- return self.selectorFieldLength
1034
-
1035
- def setSelectorFieldLength(self, value):
1036
- if value is not None:
1037
- self.selectorFieldLength = value
1038
- return self
1039
-
1040
- def getSelectorFieldStartPosition(self):
1041
- return self.selectorFieldStartPosition
1042
-
1043
- def setSelectorFieldStartPosition(self, value):
1044
- if value is not None:
1045
- self.selectorFieldStartPosition = value
1046
- return self
1047
-
1048
- def getStaticPart(self):
1049
- return self.staticPart
1050
-
1051
- def setStaticPart(self, value):
1052
- if value is not None:
1053
- self.staticPart = value
1054
- return self
1055
-
1056
- def getTriggerMode(self):
1057
- return self.triggerMode
1058
-
1059
- def setTriggerMode(self, value):
1060
- if value is not None:
1061
- self.triggerMode = value
1062
- return self
1063
-
1064
- def getUnusedBitPattern(self):
1065
- return self.unusedBitPattern
1066
-
1067
- def setUnusedBitPattern(self, value):
1068
- if value is not None:
1069
- self.unusedBitPattern = value
1070
- return self
1071
-
1072
-
1073
- class UserDefinedIPdu(IPdu):
1074
- def __init__(self, parent, short_name):
1075
- super().__init__(parent, short_name)
1076
-
1077
- self.cddType = None # type: String
1078
-
1079
- def getCddType(self):
1080
- return self.cddType
1081
-
1082
- def setCddType(self, value):
1083
- if value is not None:
1084
- self.cddType = value
1085
- return self
1086
-
1087
-
1088
- class GeneralPurposeIPdu(IPdu):
1089
- def __init__(self, parent: ARObject, short_name: str):
1090
- super().__init__(parent, short_name)
1091
-
1092
-
1093
- class UserDefinedPdu(Pdu):
1094
- def __init__(self, parent: ARObject, short_name: str):
1095
- super().__init__(parent, short_name)
1096
-
1097
- self.cddType = None # type: String
1098
-
1099
- def getCddType(self):
1100
- return self.cddType
1101
-
1102
- def setCddType(self, value):
1103
- if value is not None:
1104
- self.cddType = value
1105
- return self
1106
-
1107
-
1108
- class GeneralPurposePdu(Pdu):
1109
- def __init__(self, parent: ARObject, short_name: str):
1110
- super().__init__(parent, short_name)
1111
-
1112
- self.hasDynamicLength = None # type: Boolean
1113
- self.length = None # type: UnlimitedInteger
1114
-
1115
- def getHasDynamicLength(self):
1116
- return self.hasDynamicLength
1117
-
1118
- def setHasDynamicLength(self, value):
1119
- if value is not None:
1120
- self.hasDynamicLength = value
1121
- return self
1122
-
1123
- def getLength(self):
1124
- return self.length
1125
-
1126
- def setLength(self, value):
1127
- if value is not None:
1128
- self.length = value
1129
- return self
1130
-
1131
-
1132
- class SecureCommunicationAuthenticationProps(Identifiable):
1133
- def __init__(self, parent: ARObject, short_name: str):
1134
- super().__init__(parent, short_name)
1135
-
1136
- self.authAlgorithm = None # type: String
1137
- self.authInfoTxLength = None # type: PositiveInteger
1138
-
1139
- def getAuthAlgorithm(self):
1140
- return self.authAlgorithm
1141
-
1142
- def setAuthAlgorithm(self, value):
1143
- if value is not None:
1144
- self.authAlgorithm = value
1145
- return self
1146
-
1147
- def getAuthInfoTxLength(self):
1148
- return self.authInfoTxLength
1149
-
1150
- def setAuthInfoTxLength(self, value):
1151
- if value is not None:
1152
- self.authInfoTxLength = value
1153
- return self
1154
-
1155
-
1156
- class SecureCommunicationFreshnessProps(Identifiable):
1157
- def __init__(self, parent: ARObject, short_name: str):
1158
- super().__init__(parent, short_name)
1159
-
1160
- self.freshnessCounterSyncAttempts = None # type: PositiveInteger
1161
- self.freshnessTimestampTimePeriodFactor = None # type: PositiveInteger
1162
- self.freshnessValueLength = None # type: PositiveInteger
1163
- self.freshnessValueTxLength = None # type: PositiveInteger
1164
- self.useFreshnessTimestamp = None # type: Boolean
1165
-
1166
- def getFreshnessCounterSyncAttempts(self):
1167
- return self.freshnessCounterSyncAttempts
1168
-
1169
- def setFreshnessCounterSyncAttempts(self, value):
1170
- if value is not None:
1171
- self.freshnessCounterSyncAttempts = value
1172
- return self
1173
-
1174
- def getFreshnessTimestampTimePeriodFactor(self):
1175
- return self.freshnessTimestampTimePeriodFactor
1176
-
1177
- def setFreshnessTimestampTimePeriodFactor(self, value):
1178
- if value is not None:
1179
- self.freshnessTimestampTimePeriodFactor = value
1180
- return self
1181
-
1182
- def getFreshnessValueLength(self):
1183
- return self.freshnessValueLength
1184
-
1185
- def setFreshnessValueLength(self, value):
1186
- if value is not None:
1187
- self.freshnessValueLength = value
1188
- return self
1189
-
1190
- def getFreshnessValueTxLength(self):
1191
- return self.freshnessValueTxLength
1192
-
1193
- def setFreshnessValueTxLength(self, value):
1194
- if value is not None:
1195
- self.freshnessValueTxLength = value
1196
- return self
1197
-
1198
- def getUseFreshnessTimestamp(self):
1199
- return self.useFreshnessTimestamp
1200
-
1201
- def setUseFreshnessTimestamp(self, value):
1202
- if value is not None:
1203
- self.useFreshnessTimestamp = value
1204
- return self
1205
-
1206
-
1207
- class SecureCommunicationPropsSet(Identifiable):
1208
- def __init__(self, parent: ARObject, short_name: str):
1209
- super().__init__(parent, short_name)
1210
-
1211
- self.authenticationProps = [] # type: List[SecureCommunicationAuthenticationProps]
1212
- self.freshnessProps = [] # type: List[SecureCommunicationFreshnessProps]
1213
-
1214
- def getAuthenticationProps(self):
1215
- return self.authenticationProps
1216
-
1217
- def createSecureCommunicationAuthenticationProps(self, short_name: str) -> SecureCommunicationAuthenticationProps:
1218
- if (not self.IsElementExists(short_name)):
1219
- props = SecureCommunicationAuthenticationProps(self, short_name)
1220
- self.addElement(props)
1221
- self.authenticationProps.append(props)
1222
- return self.getElement(short_name, SecureCommunicationAuthenticationProps)
1223
-
1224
- def getFreshnessProps(self):
1225
- return self.freshnessProps
1226
-
1227
- def createSecureCommunicationFreshnessProps(self, short_name: str) -> SecureCommunicationFreshnessProps:
1228
- if (not self.IsElementExists(short_name)):
1229
- props = SecureCommunicationFreshnessProps(self, short_name)
1230
- self.addElement(props)
1231
- self.freshnessProps.append(props)
1232
- return self.getElement(short_name, SecureCommunicationFreshnessProps)
1
+ from abc import ABC
2
+ from typing import List
3
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, Describable, PackageableElement
4
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, Boolean, ByteOrderEnum
6
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, PositiveInteger, RefType, ARBoolean
7
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import TimeValue, UnlimitedInteger
8
+ from armodel.models.M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps
9
+ from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeDeclaration
10
+
11
+
12
+ class FibexElement(PackageableElement, ABC):
13
+ """
14
+ Abstract base class for FIBEX (FIBer EXchange) elements in the
15
+ AUTOSAR system, providing a common foundation for all communication
16
+ elements defined in the FIBEX format used for exchanging communication
17
+ data between tools.
18
+ """
19
+ def __init__(self, parent: ARObject, short_name: str):
20
+ if type(self) is FibexElement:
21
+ raise TypeError("FibexElement is an abstract class.")
22
+
23
+ super().__init__(parent, short_name)
24
+
25
+
26
+ class PduToFrameMapping(Identifiable):
27
+ """
28
+ Defines the mapping between Protocol Data Units (PDUs) and frames,
29
+ specifying how PDUs are embedded within frames including byte order,
30
+ start position, and update indication bit position.
31
+ """
32
+ def __init__(self, parent: ARObject, short_name: str):
33
+ super().__init__(parent, short_name)
34
+
35
+ self.packingByteOrder: ARLiteral = None
36
+ self.pduRef: RefType = None
37
+ self.startPosition: ARNumerical = None
38
+ self.updateIndicationBitPosition: ARNumerical = None
39
+
40
+ def getPackingByteOrder(self):
41
+ return self.packingByteOrder
42
+
43
+ def setPackingByteOrder(self, value):
44
+ self.packingByteOrder = value
45
+ return self
46
+
47
+ def getPduRef(self):
48
+ return self.pduRef
49
+
50
+ def setPduRef(self, value):
51
+ self.pduRef = value
52
+ return self
53
+
54
+ def getStartPosition(self):
55
+ return self.startPosition
56
+
57
+ def setStartPosition(self, value):
58
+ self.startPosition = value
59
+ return self
60
+
61
+ def getUpdateIndicationBitPosition(self):
62
+ return self.updateIndicationBitPosition
63
+
64
+ def setUpdateIndicationBitPosition(self, value):
65
+ self.updateIndicationBitPosition = value
66
+ return self
67
+
68
+
69
+ class Frame(FibexElement, ABC):
70
+ """
71
+ Abstract base class for communication frames in the AUTOSAR system,
72
+ defining common properties for different types of communication
73
+ frames including frame length and PDU to frame mappings.
74
+ """
75
+ def __init__(self, parent: ARObject, short_name: str):
76
+ if type(self) is Frame:
77
+ raise TypeError("Frame is an abstract class.")
78
+
79
+ super().__init__(parent, short_name)
80
+
81
+ self.frameLength = None
82
+ self.pduToFrameMappings: List[PduToFrameMapping] = []
83
+
84
+ def getFrameLength(self):
85
+ return self.frameLength
86
+
87
+ def setFrameLength(self, value):
88
+ self.frameLength = value
89
+ return self
90
+
91
+ def createPduToFrameMapping(self, short_name: str) -> PduToFrameMapping:
92
+ if not self.IsElementExists(short_name):
93
+ mapping = PduToFrameMapping(self, short_name)
94
+ self.addElement(mapping)
95
+ self.pduToFrameMappings.append(mapping)
96
+ return self.getElement(short_name, PduToFrameMapping)
97
+
98
+ def getPduToFrameMappings(self) -> List[PduToFrameMapping]:
99
+ return list(sorted(filter(lambda a: isinstance(a, PduToFrameMapping), self.elements), key=lambda o: o.short_name))
100
+
101
+
102
+ class ContainedIPduProps(ARObject):
103
+ """
104
+ Defines properties for contained Interaction Protocol Data Units (IPDUs),
105
+ specifying collection semantics, header IDs, offset, timeout,
106
+ trigger, and update indication bit position properties.
107
+ """
108
+ def __init__(self):
109
+ super().__init__()
110
+
111
+ self.collectionSemantics: ARLiteral = None
112
+ self.headerIdLongHeader: ARPositiveInteger = None
113
+ self.headerIdShortHeader: ARPositiveInteger = None
114
+ self.offset: ARNumerical = None
115
+ self.timeout: ARNumerical = None
116
+ self.trigger: ARLiteral = None
117
+ self.updateIndicationBitPosition: ARNumerical = None
118
+
119
+ def getCollectionSemantics(self):
120
+ return self.collectionSemantics
121
+
122
+ def setCollectionSemantics(self, value):
123
+ self.collectionSemantics = value
124
+ return self
125
+
126
+ def getHeaderIdLongHeader(self):
127
+ return self.headerIdLongHeader
128
+
129
+ def setHeaderIdLongHeader(self, value):
130
+ self.headerIdLongHeader = value
131
+ return self
132
+
133
+ def getHeaderIdShortHeader(self):
134
+ return self.headerIdShortHeader
135
+
136
+ def setHeaderIdShortHeader(self, value):
137
+ self.headerIdShortHeader = value
138
+ return self
139
+
140
+ def getOffset(self):
141
+ return self.offset
142
+
143
+ def setOffset(self, value):
144
+ self.offset = value
145
+ return self
146
+
147
+ def getTimeout(self):
148
+ return self.timeout
149
+
150
+ def setTimeout(self, value):
151
+ self.timeout = value
152
+ return self
153
+
154
+ def getTrigger(self):
155
+ return self.trigger
156
+
157
+ def setTrigger(self, value):
158
+ self.trigger = value
159
+ return self
160
+
161
+ def getUpdateIndicationBitPosition(self):
162
+ return self.updateIndicationBitPosition
163
+
164
+ def setUpdateIndicationBitPosition(self, value):
165
+ self.updateIndicationBitPosition = value
166
+ return self
167
+
168
+
169
+ class ISignalGroup(FibexElement):
170
+ """
171
+ Defines a group of interaction signals in the communication system,
172
+ specifying relationships between individual signals and system-level
173
+ signal groups with transformation properties.
174
+ """
175
+ def __init__(self, parent, short_name):
176
+ super().__init__(parent, short_name)
177
+
178
+ self.comBasedSignalGroupTransformationRefs: List[RefType] = []
179
+ self.iSignalRefs: List[RefType] = []
180
+ self.systemSignalGroupRef = None
181
+ self.transformationISignalProps = None
182
+
183
+ def getComBasedSignalGroupTransformationRefs(self):
184
+ return self.comBasedSignalGroupTransformationRefs
185
+
186
+ def addComBasedSignalGroupTransformationRef(self, value):
187
+ if value is not None:
188
+ self.comBasedSignalGroupTransformationRefs.append(value)
189
+ return self
190
+
191
+ def getISignalRefs(self):
192
+ return self.iSignalRefs
193
+
194
+ def addISignalRef(self, value):
195
+ self.iSignalRefs.append(value)
196
+ return self
197
+
198
+ def getSystemSignalGroupRef(self):
199
+ return self.systemSignalGroupRef
200
+
201
+ def setSystemSignalGroupRef(self, value):
202
+ self.systemSignalGroupRef = value
203
+ return self
204
+
205
+ def getTransformationISignalProps(self):
206
+ return self.transformationISignalProps
207
+
208
+ def setTransformationISignalProps(self, value):
209
+ self.transformationISignalProps = value
210
+ return self
211
+
212
+
213
+ class ISignalIPduGroup(FibexElement):
214
+ """
215
+ Defines a group of Interaction Protocol Data Units (IPDUs) based on interaction signals,
216
+ specifying communication direction, mode, and references to contained
217
+ IPDU groups and individual IPDUs.
218
+ """
219
+ def __init__(self, parent, short_name):
220
+ super().__init__(parent, short_name)
221
+
222
+ self.communicationDirection = None
223
+ self.communicationMode = None
224
+ self.containedISignalIPduGroupRefs = []
225
+ self.iSignalIPduRefs = []
226
+ self.nmPduRefs = []
227
+
228
+ def getCommunicationDirection(self):
229
+ return self.communicationDirection
230
+
231
+ def setCommunicationDirection(self, value):
232
+ self.communicationDirection = value
233
+ return self
234
+
235
+ def getCommunicationMode(self):
236
+ return self.communicationMode
237
+
238
+ def setCommunicationMode(self, value):
239
+ self.communicationMode = value
240
+ return self
241
+
242
+ def getContainedISignalIPduGroupRefs(self):
243
+ return self.containedISignalIPduGroupRefs
244
+
245
+ def addContainedISignalIPduGroupRef(self, value):
246
+ self.containedISignalIPduGroupRefs.append(value)
247
+ return self
248
+
249
+ def getISignalIPduRefs(self):
250
+ return self.iSignalIPduRefs
251
+
252
+ def addISignalIPduRef(self, value):
253
+ self.iSignalIPduRefs.append(value)
254
+ return self
255
+
256
+ def getNmPduRefs(self):
257
+ return self.nmPduRefs
258
+
259
+ def addNmPduRef(self, value):
260
+ self.nmPduRefs.append(value)
261
+ return self
262
+
263
+
264
+ class Pdu(FibexElement, ABC):
265
+ """
266
+ Abstract base class for Protocol Data Units (PDUs) in the communication system,
267
+ defining common properties such as dynamic length support and length specifications.
268
+ """
269
+ def __init__(self, parent: ARObject, short_name: str):
270
+ if type(self) is Pdu:
271
+ raise TypeError("Pdu is an abstract class.")
272
+
273
+ super().__init__(parent, short_name)
274
+
275
+ self.hasDynamicLength: Boolean = None
276
+ self.length: UnlimitedInteger = None
277
+
278
+ def getHasDynamicLength(self):
279
+ return self.hasDynamicLength
280
+
281
+ def setHasDynamicLength(self, value):
282
+ if value is not None:
283
+ self.hasDynamicLength = value
284
+ return self
285
+
286
+ def getLength(self):
287
+ return self.length
288
+
289
+ def setLength(self, value):
290
+ self.length = value
291
+ return self
292
+
293
+
294
+ class IPdu(Pdu, ABC):
295
+ """
296
+ Abstract base class for Interaction Protocol Data Units (IPDUs),
297
+ extending the PDU class with contained IPDU properties for
298
+ interaction-based communication.
299
+ """
300
+ def __init__(self, parent: ARObject, short_name: str):
301
+ if type(self) is IPdu:
302
+ raise TypeError("IPdu is an abstract class.")
303
+
304
+ super().__init__(parent, short_name)
305
+
306
+ self.containedIPduProps: ContainedIPduProps = None
307
+
308
+ def getContainedIPduProps(self):
309
+ return self.containedIPduProps
310
+
311
+ def setContainedIPduProps(self, value):
312
+ if value is not None:
313
+ self.containedIPduProps = value
314
+ return self
315
+
316
+
317
+ class SecureCommunicationProps(ARObject):
318
+ """
319
+ Defines properties for secure communication, including authentication
320
+ data freshness, integrity protection, and secured area specifications
321
+ for protected communication channels.
322
+ """
323
+ def __init__(self):
324
+ super().__init__()
325
+
326
+ self.authDataFreshnessLength: PositiveInteger = None
327
+ self.authDataFreshnessStartPosition: PositiveInteger = None
328
+ self.authInfoTxLength: PositiveInteger = None
329
+ self.authenticationBuildAttempts: PositiveInteger = None
330
+ self.authenticationRetries: PositiveInteger = None
331
+ self.dataId: PositiveInteger = None
332
+ self.freshnessValueId: PositiveInteger = None
333
+ self.freshnessValueLength: PositiveInteger = None
334
+ self.freshnessValueTxLength: PositiveInteger = None
335
+ self.messageLinkLength: PositiveInteger = None
336
+ self.messageLinkPosition: PositiveInteger = None
337
+ self.secondaryFreshnessValueId: PositiveInteger = None
338
+ self.securedAreaLength: PositiveInteger = None
339
+ self.securedAreaOffset: PositiveInteger = None
340
+
341
+ def getAuthDataFreshnessLength(self):
342
+ return self.authDataFreshnessLength
343
+
344
+ def setAuthDataFreshnessLength(self, value):
345
+ if value is not None:
346
+ self.authDataFreshnessLength = value
347
+ return self
348
+
349
+ def getAuthDataFreshnessStartPosition(self):
350
+ return self.authDataFreshnessStartPosition
351
+
352
+ def setAuthDataFreshnessStartPosition(self, value):
353
+ if value is not None:
354
+ self.authDataFreshnessStartPosition = value
355
+ return self
356
+
357
+ def getAuthInfoTxLength(self):
358
+ return self.authInfoTxLength
359
+
360
+ def setAuthInfoTxLength(self, value):
361
+ if value is not None:
362
+ self.authInfoTxLength = value
363
+ return self
364
+
365
+ def getAuthenticationBuildAttempts(self):
366
+ return self.authenticationBuildAttempts
367
+
368
+ def setAuthenticationBuildAttempts(self, value):
369
+ if value is not None:
370
+ self.authenticationBuildAttempts = value
371
+ return self
372
+
373
+ def getAuthenticationRetries(self):
374
+ return self.authenticationRetries
375
+
376
+ def setAuthenticationRetries(self, value):
377
+ if value is not None:
378
+ self.authenticationRetries = value
379
+ return self
380
+
381
+ def getDataId(self):
382
+ return self.dataId
383
+
384
+ def setDataId(self, value):
385
+ if value is not None:
386
+ self.dataId = value
387
+ return self
388
+
389
+ def getFreshnessValueId(self):
390
+ return self.freshnessValueId
391
+
392
+ def setFreshnessValueId(self, value):
393
+ if value is not None:
394
+ self.freshnessValueId = value
395
+ return self
396
+
397
+ def getFreshnessValueLength(self):
398
+ return self.freshnessValueLength
399
+
400
+ def setFreshnessValueLength(self, value):
401
+ if value is not None:
402
+ self.freshnessValueLength = value
403
+ return self
404
+
405
+ def getFreshnessValueTxLength(self):
406
+ return self.freshnessValueTxLength
407
+
408
+ def setFreshnessValueTxLength(self, value):
409
+ if value is not None:
410
+ self.freshnessValueTxLength = value
411
+ return self
412
+
413
+ def getMessageLinkLength(self):
414
+ return self.messageLinkLength
415
+
416
+ def setMessageLinkLength(self, value):
417
+ if value is not None:
418
+ self.messageLinkLength = value
419
+ return self
420
+
421
+ def getMessageLinkPosition(self):
422
+ return self.messageLinkPosition
423
+
424
+ def setMessageLinkPosition(self, value):
425
+ if value is not None:
426
+ self.messageLinkPosition = value
427
+ return self
428
+
429
+ def getSecondaryFreshnessValueId(self):
430
+ return self.secondaryFreshnessValueId
431
+
432
+ def setSecondaryFreshnessValueId(self, value):
433
+ if value is not None:
434
+ self.secondaryFreshnessValueId = value
435
+ return self
436
+
437
+ def getSecuredAreaLength(self):
438
+ return self.securedAreaLength
439
+
440
+ def setSecuredAreaLength(self, value):
441
+ if value is not None:
442
+ self.securedAreaLength = value
443
+ return self
444
+
445
+ def getSecuredAreaOffset(self):
446
+ return self.securedAreaOffset
447
+
448
+ def setSecuredAreaOffset(self, value):
449
+ if value is not None:
450
+ self.securedAreaOffset = value
451
+ return self
452
+
453
+
454
+ class SecuredIPdu(IPdu):
455
+ """
456
+ Represents a secured Interaction Protocol Data Unit (IPDU) with
457
+ authentication, integrity protection, and other security properties
458
+ for protected communication.
459
+ """
460
+ def __init__(self, parent: ARObject, short_name: str):
461
+ super().__init__(parent, short_name)
462
+
463
+ self.authenticationPropsRef: RefType = None
464
+ self.dynamicRuntimeLengthHandling: Boolean = None
465
+ self.freshnessPropsRef: RefType = None
466
+ self.payloadRef: RefType = None
467
+ self.secureCommunicationProps: SecureCommunicationProps = None
468
+ self.useAsCryptographicIPdu: Boolean = None
469
+ self.useSecuredPduHeader = None
470
+
471
+ def getAuthenticationPropsRef(self):
472
+ return self.authenticationPropsRef
473
+
474
+ def setAuthenticationPropsRef(self, value):
475
+ if value is not None:
476
+ self.authenticationPropsRef = value
477
+ return self
478
+
479
+ def getDynamicRuntimeLengthHandling(self):
480
+ return self.dynamicRuntimeLengthHandling
481
+
482
+ def setDynamicRuntimeLengthHandling(self, value):
483
+ if value is not None:
484
+ self.dynamicRuntimeLengthHandling = value
485
+ return self
486
+
487
+ def getFreshnessPropsRef(self):
488
+ return self.freshnessPropsRef
489
+
490
+ def setFreshnessPropsRef(self, value):
491
+ if value is not None:
492
+ self.freshnessPropsRef = value
493
+ return self
494
+
495
+ def getPayloadRef(self):
496
+ return self.payloadRef
497
+
498
+ def setPayloadRef(self, value):
499
+ if value is not None:
500
+ self.payloadRef = value
501
+ return self
502
+
503
+ def getSecureCommunicationProps(self):
504
+ return self.secureCommunicationProps
505
+
506
+ def setSecureCommunicationProps(self, value):
507
+ if value is not None:
508
+ self.secureCommunicationProps = value
509
+ return self
510
+
511
+ def getUseAsCryptographicIPdu(self):
512
+ return self.useAsCryptographicIPdu
513
+
514
+ def setUseAsCryptographicIPdu(self, value):
515
+ if value is not None:
516
+ self.useAsCryptographicIPdu = value
517
+ return self
518
+
519
+ def getUseSecuredPduHeader(self):
520
+ return self.useSecuredPduHeader
521
+
522
+ def setUseSecuredPduHeader(self, value):
523
+ if value is not None:
524
+ self.useSecuredPduHeader = value
525
+ return self
526
+
527
+
528
+ class ISignalToIPduMapping(Identifiable):
529
+ """
530
+ Defines the mapping between interaction signals and Interaction Protocol Data Units (IPDUs),
531
+ specifying signal references, byte order, start position, transfer
532
+ properties, and update indication bit position.
533
+ """
534
+ def __init__(self, parent, short_name):
535
+ super().__init__(parent, short_name)
536
+
537
+ self.iSignalRef: RefType = None
538
+ self.iSignalGroupRef: RefType = None
539
+ self.packingByteOrder: ByteOrderEnum = None
540
+ self.startPosition: UnlimitedInteger = None
541
+ self.transferProperty = None
542
+ self.updateIndicationBitPosition: UnlimitedInteger = None
543
+
544
+ def getISignalRef(self):
545
+ return self.iSignalRef
546
+
547
+ def setISignalRef(self, value):
548
+ self.iSignalRef = value
549
+ return self
550
+
551
+ def getISignalGroupRef(self):
552
+ return self.iSignalGroupRef
553
+
554
+ def setISignalGroupRef(self, value):
555
+ self.iSignalGroupRef = value
556
+ return self
557
+
558
+ def getPackingByteOrder(self):
559
+ return self.packingByteOrder
560
+
561
+ def setPackingByteOrder(self, value):
562
+ self.packingByteOrder = value
563
+ return self
564
+
565
+ def getStartPosition(self):
566
+ return self.startPosition
567
+
568
+ def setStartPosition(self, value):
569
+ self.startPosition = value
570
+ return self
571
+
572
+ def getTransferProperty(self):
573
+ return self.transferProperty
574
+
575
+ def setTransferProperty(self, value):
576
+ self.transferProperty = value
577
+ return self
578
+
579
+ def getUpdateIndicationBitPosition(self):
580
+ return self.updateIndicationBitPosition
581
+
582
+ def setUpdateIndicationBitPosition(self, value):
583
+ self.updateIndicationBitPosition = value
584
+ return self
585
+
586
+
587
+ class NmPdu(Pdu):
588
+ """
589
+ Represents a Network Management Protocol Data Unit (PDU) used for
590
+ network management communication including node monitoring,
591
+ wake-up, and sleep state management.
592
+ """
593
+ def __init__(self, parent: ARObject, short_name: str):
594
+ super().__init__(parent, short_name)
595
+
596
+ self.iSignalToIPduMappings: List[ISignalToIPduMapping] = []
597
+ self.nmDataInformation: Boolean = None
598
+ self.nmVoteInformation: Boolean = None
599
+ self.unusedBitPattern: Integer = None
600
+
601
+ def getISignalToIPduMappings(self):
602
+ return self.iSignalToIPduMappings
603
+
604
+ def createISignalToIPduMapping(self, short_name: str) -> ISignalToIPduMapping:
605
+ if not self.IsElementExists(short_name):
606
+ mapping = ISignalToIPduMapping(self, short_name)
607
+ self.addElement(mapping)
608
+ self.iSignalToIPduMappings.append(mapping)
609
+ return self.getElement(short_name, ISignalToIPduMapping)
610
+
611
+ def getNmDataInformation(self):
612
+ return self.nmDataInformation
613
+
614
+ def setNmDataInformation(self, value):
615
+ if value is not None:
616
+ self.nmDataInformation = value
617
+ return self
618
+
619
+ def getNmVoteInformation(self):
620
+ return self.nmVoteInformation
621
+
622
+ def setNmVoteInformation(self, value):
623
+ if value is not None:
624
+ self.nmVoteInformation = value
625
+ return self
626
+
627
+ def getUnusedBitPattern(self):
628
+ return self.unusedBitPattern
629
+
630
+ def setUnusedBitPattern(self, value):
631
+ if value is not None:
632
+ self.unusedBitPattern = value
633
+ return self
634
+
635
+
636
+ class NPdu(IPdu):
637
+ """
638
+ Represents a Network Protocol Data Unit (PDU) used for network-level
639
+ communication in the AUTOSAR communication system.
640
+ """
641
+ def __init__(self, parent: ARObject, short_name: str):
642
+ super().__init__(parent, short_name)
643
+
644
+
645
+ class DcmIPdu(IPdu):
646
+ """
647
+ Represents a Diagnostic Communication Management Interaction Protocol Data Unit (IPDU)
648
+ used for diagnostic communication in the AUTOSAR system.
649
+ """
650
+ def __init__(self, parent: ARObject, short_name: str):
651
+ super().__init__(parent, short_name)
652
+
653
+ self.diagPduType: ARLiteral = None
654
+
655
+ def getDiagPduType(self):
656
+ return self.diagPduType
657
+
658
+ def setDiagPduType(self, value):
659
+ self.diagPduType = value
660
+ return self
661
+
662
+
663
+ class IPduTiming(Describable):
664
+ """
665
+ Defines timing properties for Interaction Protocol Data Units (IPDUs),
666
+ specifying minimum delay and transmission mode declaration for
667
+ timed communication.
668
+ """
669
+ def __init__(self):
670
+ super().__init__()
671
+
672
+ self.minimumDelay: TimeValue = None
673
+ self.transmissionModeDeclaration: TransmissionModeDeclaration = None
674
+
675
+ def getMinimumDelay(self):
676
+ return self.minimumDelay
677
+
678
+ def setMinimumDelay(self, value):
679
+ self.minimumDelay = value
680
+ return self
681
+
682
+ def getTransmissionModeDeclaration(self):
683
+ return self.transmissionModeDeclaration
684
+
685
+ def setTransmissionModeDeclaration(self, value):
686
+ self.transmissionModeDeclaration = value
687
+ return self
688
+
689
+
690
+ class ISignalIPdu(IPdu):
691
+ """
692
+ Represents an Interaction Protocol Data Unit (IPDU) based on interaction signals,
693
+ defining timing specifications, signal-to-PDU mappings, and unused
694
+ bit patterns for signal-based communication.
695
+ """
696
+ def __init__(self, parent, short_name):
697
+ super().__init__(parent, short_name)
698
+
699
+ self.iPduTimingSpecification: IPduTiming = None
700
+ self.iSignalToPduMappings: List[ISignalToIPduMapping] = []
701
+ self.unusedBitPattern: Integer = None
702
+
703
+ def getIPduTimingSpecification(self):
704
+ return self.iPduTimingSpecification
705
+
706
+ def setIPduTimingSpecification(self, value):
707
+ self.iPduTimingSpecification = value
708
+ return self
709
+
710
+ def getISignalToPduMappings(self):
711
+ return self.iSignalToPduMappings
712
+
713
+ def createISignalToPduMappings(self, short_name: str) -> ISignalToIPduMapping:
714
+ if not self.IsElementExists(short_name):
715
+ mapping = ISignalToIPduMapping(self, short_name)
716
+ self.addElement(mapping)
717
+ self.iSignalToPduMappings.append(mapping)
718
+ return self.getElement(short_name, ISignalToIPduMapping)
719
+
720
+ def getUnusedBitPattern(self):
721
+ return self.unusedBitPattern
722
+
723
+ def setUnusedBitPattern(self, value):
724
+ self.unusedBitPattern = value
725
+ return self
726
+
727
+
728
+ class ISignal(FibexElement):
729
+ """
730
+ Represents an interaction signal in the communication system,
731
+ defining data transformation, signal type, initialization values,
732
+ length, and system signal references for signal-based communication.
733
+ """
734
+ def __init__(self, parent: ARObject, short_name: str):
735
+ super().__init__(parent, short_name)
736
+
737
+ self.dataTransformationRef = None
738
+ self.dataTypePolicy = None
739
+ self.iSignalProps = None
740
+ self.iSignalType = None
741
+ self.initValue = None
742
+ self.length = None
743
+ self.networkRepresentationProps = None
744
+ self.systemSignalRef: RefType = None
745
+ self.timeoutSubstitutionValue = None
746
+ self.transformationISignalProps = []
747
+
748
+ def getDataTransformationRef(self):
749
+ return self.dataTransformationRef
750
+
751
+ def setDataTransformationRef(self, value):
752
+ self.dataTransformationRef = value
753
+ return self
754
+
755
+ def getDataTypePolicy(self):
756
+ return self.dataTypePolicy
757
+
758
+ def setDataTypePolicy(self, value):
759
+ self.dataTypePolicy = value
760
+ return self
761
+
762
+ def getISignalProps(self):
763
+ return self.iSignalProps
764
+
765
+ def setISignalProps(self, value):
766
+ self.iSignalProps = value
767
+ return self
768
+
769
+ def getISignalType(self):
770
+ return self.iSignalType
771
+
772
+ def setISignalType(self, value):
773
+ self.iSignalType = value
774
+ return self
775
+
776
+ def getInitValue(self):
777
+ return self.initValue
778
+
779
+ def setInitValue(self, value):
780
+ self.initValue = value
781
+ return self
782
+
783
+ def getLength(self):
784
+ return self.length
785
+
786
+ def setLength(self, value):
787
+ self.length = value
788
+ return self
789
+
790
+ def getNetworkRepresentationProps(self):
791
+ return self.networkRepresentationProps
792
+
793
+ def setNetworkRepresentationProps(self, value):
794
+ self.networkRepresentationProps = value
795
+ return self
796
+
797
+ def getSystemSignalRef(self):
798
+ return self.systemSignalRef
799
+
800
+ def setSystemSignalRef(self, value):
801
+ self.systemSignalRef = value
802
+ return self
803
+
804
+ def getTimeoutSubstitutionValue(self):
805
+ return self.timeoutSubstitutionValue
806
+
807
+ def setTimeoutSubstitutionValue(self, value):
808
+ self.timeoutSubstitutionValue = value
809
+ return self
810
+
811
+ def getTransformationISignalProps(self):
812
+ return self.transformationISignalProps
813
+
814
+ def addTransformationISignalProps(self, value):
815
+ self.transformationISignalProps.append(value)
816
+ return self
817
+
818
+
819
+ class PduTriggering(Identifiable):
820
+ """
821
+ Defines the triggering mechanism for Protocol Data Units (PDUs),
822
+ specifying PDU references, port references, and trigger conditions
823
+ for PDU transmission and reception.
824
+ """
825
+ def __init__(self, parent, short_name):
826
+ super().__init__(parent, short_name)
827
+
828
+ self.iPduRef: RefType = None
829
+ self.iPduPortRefs: List[RefType] = []
830
+ self.iSignalTriggeringRefs: List[RefType] = []
831
+ self.secOcCryptoMappingRef: RefType = None
832
+ self.triggerIPduSendConditions = [] # type: List
833
+
834
+ def getIPduRef(self):
835
+ return self.iPduRef
836
+
837
+ def setIPduRef(self, value):
838
+ self.iPduRef = value
839
+ return self
840
+
841
+ def getIPduPortRefs(self):
842
+ return self.iPduPortRefs
843
+
844
+ def addIPduPortRef(self, value):
845
+ self.iPduPortRefs.append(value)
846
+ return self
847
+
848
+ def getISignalTriggeringRefs(self):
849
+ # return sorted(self.iSignalTriggeringRefs, key = lambda i: i.getShortValue())
850
+ return self.iSignalTriggeringRefs
851
+
852
+ def addISignalTriggeringRef(self, value):
853
+ self.iSignalTriggeringRefs.append(value)
854
+ return self
855
+
856
+ def getSecOcCryptoMappingRef(self):
857
+ return self.secOcCryptoMappingRef
858
+
859
+ def setSecOcCryptoMappingRef(self, value):
860
+ self.secOcCryptoMappingRef = value
861
+ return self
862
+
863
+ def getTriggerIPduSendConditions(self):
864
+ return self.triggerIPduSendConditions
865
+
866
+ def addTriggerIPduSendCondition(self, value):
867
+ self.triggerIPduSendConditions.append(value)
868
+ return self
869
+
870
+
871
+ class FrameTriggering(Identifiable, ABC):
872
+ """
873
+ Abstract base class for frame triggering mechanisms, defining
874
+ common properties for triggering frame transmission and reception
875
+ including frame references and port references.
876
+ """
877
+ def __init__(self, parent, short_name):
878
+ if type(self) is FrameTriggering:
879
+ raise TypeError("FrameTriggering is an abstract class.")
880
+
881
+ super().__init__(parent, short_name)
882
+
883
+ self.frameRef: RefType = None
884
+ self.framePortRefs: List[RefType] = []
885
+ self.pduTriggeringRefs: List[RefType] = []
886
+
887
+ def getFrameRef(self) -> RefType:
888
+ return self.frameRef
889
+
890
+ def setFrameRef(self, value: RefType):
891
+ self.frameRef = value
892
+ return self
893
+
894
+ def getFramePortRefs(self) -> List[RefType]:
895
+ return self.framePortRefs
896
+
897
+ def addFramePortRef(self, value: RefType):
898
+ self.framePortRefs.append(value)
899
+ return self
900
+
901
+ def getPduTriggeringRefs(self) -> RefType:
902
+ return self.pduTriggeringRefs
903
+
904
+ def addPduTriggeringRef(self, value: RefType):
905
+ self.pduTriggeringRefs.append(value)
906
+ return self
907
+
908
+
909
+ class SystemSignal(ARElement):
910
+ """
911
+ Represents a system signal in the AUTOSAR system, defining
912
+ dynamic length properties and physical properties for
913
+ system-level signal communication.
914
+ """
915
+ def __init__(self, parent, short_name):
916
+ super().__init__(parent, short_name)
917
+
918
+ self.dynamicLength: ARBoolean = None
919
+ self.physicalProps: SwDataDefProps = None
920
+
921
+ def getDynamicLength(self):
922
+ return self.dynamicLength
923
+
924
+ def setDynamicLength(self, value):
925
+ self.dynamicLength = value
926
+ return self
927
+
928
+ def getPhysicalProps(self):
929
+ return self.physicalProps
930
+
931
+ def setPhysicalProps(self, value):
932
+ self.physicalProps = value
933
+ return self
934
+
935
+
936
+ class SystemSignalGroup(ARElement):
937
+ """
938
+ Represents a group of system signals, defining relationships
939
+ between individual system signals and transforming signal references
940
+ for grouped signal communication.
941
+ """
942
+ def __init__(self, parent, short_name):
943
+ super().__init__(parent, short_name)
944
+
945
+ self.systemSignalRefs: List[RefType] = []
946
+ self.transformingSystemSignalRef: RefType = None
947
+
948
+ def getSystemSignalRefs(self):
949
+ return self.systemSignalRefs
950
+
951
+ def addSystemSignalRefs(self, value: RefType):
952
+ self.systemSignalRefs.append(value)
953
+ return self
954
+
955
+ def getTransformingSystemSignalRef(self):
956
+ return self.transformingSystemSignalRef
957
+
958
+ def setTransformingSystemSignalRef(self, value):
959
+ self.transformingSystemSignalRef = value
960
+ return self
961
+
962
+
963
+ class ISignalTriggering(Identifiable):
964
+ """
965
+ Defines triggering properties for interaction signals, specifying
966
+ signal references, group references, and port references for
967
+ signal-based communication triggering.
968
+ """
969
+ def __init__(self, parent, short_name):
970
+ super().__init__(parent, short_name)
971
+
972
+ self.iSignalRef: RefType = None
973
+ self.iSignalGroupRef: RefType = None
974
+ self.iSignalPortRefs: List[RefType] = []
975
+
976
+ def getISignalRef(self):
977
+ return self.iSignalRef
978
+
979
+ def setISignalRef(self, value):
980
+ self.iSignalRef = value
981
+ return self
982
+
983
+ def getISignalGroupRef(self):
984
+ return self.iSignalGroupRef
985
+
986
+ def setISignalGroupRef(self, value):
987
+ self.iSignalGroupRef = value
988
+ return self
989
+
990
+ def getISignalPortRefs(self):
991
+ return self.iSignalPortRefs
992
+
993
+ def addISignalPortRef(self, value):
994
+ self.iSignalPortRefs.append(value)
995
+ return self
996
+
997
+
998
+ class SegmentPosition(ARObject):
999
+ """
1000
+ Defines the position of a segment within a communication element,
1001
+ specifying byte order, length, and position properties for
1002
+ segmented communication.
1003
+ """
1004
+ def __init__(self):
1005
+ super().__init__()
1006
+
1007
+ self.segmentByteOrder: ByteOrderEnum = None
1008
+ self.segmentLength: Integer = None
1009
+ self.segmentPosition: Integer = None
1010
+
1011
+ def getSegmentByteOrder(self):
1012
+ return self.segmentByteOrder
1013
+
1014
+ def setSegmentByteOrder(self, value):
1015
+ if value is not None:
1016
+ self.segmentByteOrder = value
1017
+ return self
1018
+
1019
+ def getSegmentLength(self):
1020
+ return self.segmentLength
1021
+
1022
+ def setSegmentLength(self, value):
1023
+ if value is not None:
1024
+ self.segmentLength = value
1025
+ return self
1026
+
1027
+ def getSegmentPosition(self):
1028
+ return self.segmentPosition
1029
+
1030
+ def setSegmentPosition(self, value):
1031
+ if value is not None:
1032
+ self.segmentPosition = value
1033
+ return self
1034
+
1035
+
1036
+ class MultiplexedPart(ARObject, ABC):
1037
+ """
1038
+ Abstract base class for multiplexed communication parts, defining
1039
+ common properties for dynamic and static multiplexed communication
1040
+ segments including segment positions.
1041
+ """
1042
+ def __init__(self):
1043
+ if type(self) is MultiplexedPart:
1044
+ raise TypeError("MultiplexedPart is an abstract class.")
1045
+
1046
+ super().__init__()
1047
+
1048
+ self.segmentPositions = [] # type: List[SegmentPosition]
1049
+
1050
+ def getSegmentPositions(self):
1051
+ return self.segmentPositions
1052
+
1053
+ def addSegmentPosition(self, value):
1054
+ if value is not None:
1055
+ self.segmentPositions.append(value)
1056
+ return self
1057
+
1058
+
1059
+ class StaticPart(MultiplexedPart):
1060
+ """
1061
+ Defines a static part of multiplexed communication, specifying
1062
+ Interaction Protocol Data Unit (IPDU) references for fixed
1063
+ segments in multiplexed communication.
1064
+ """
1065
+ def __init__(self):
1066
+ super().__init__()
1067
+
1068
+ self.iPduRef = None # type: RefType
1069
+
1070
+ def getIPduRef(self):
1071
+ return self.iPduRef
1072
+
1073
+ def setIPduRef(self, value):
1074
+ if value is not None:
1075
+ self.iPduRef = value
1076
+ return self
1077
+
1078
+
1079
+ class DynamicPartAlternative(ARObject):
1080
+ """
1081
+ Defines an alternative for dynamic parts in multiplexed communication,
1082
+ specifying selector field codes, initial dynamic part properties,
1083
+ and Interaction Protocol Data Unit (IPDU) references.
1084
+ """
1085
+ def __init__(self):
1086
+ super().__init__()
1087
+
1088
+ self.initialDynamicPart = None # type: Boolean
1089
+ self.iPduRef = None # type: RefType
1090
+ self.selectorFieldCode = None # type: Integer
1091
+
1092
+ def getInitialDynamicPart(self):
1093
+ return self.initialDynamicPart
1094
+
1095
+ def setInitialDynamicPart(self, value):
1096
+ if value is not None:
1097
+ self.initialDynamicPart = value
1098
+ return self
1099
+
1100
+ def getIPduRef(self):
1101
+ return self.iPduRef
1102
+
1103
+ def setIPduRef(self, value):
1104
+ if value is not None:
1105
+ self.iPduRef = value
1106
+ return self
1107
+
1108
+ def getSelectorFieldCode(self):
1109
+ return self.selectorFieldCode
1110
+
1111
+ def setSelectorFieldCode(self, value):
1112
+ if value is not None:
1113
+ self.selectorFieldCode = value
1114
+ return self
1115
+
1116
+
1117
+ class DynamicPart(MultiplexedPart):
1118
+ """
1119
+ Defines a dynamic part of multiplexed communication, specifying
1120
+ alternatives for variable segments in multiplexed communication
1121
+ based on selector field values.
1122
+ """
1123
+ def __init__(self):
1124
+ super().__init__()
1125
+
1126
+ self.dynamicPartAlternatives = [] # type: List[DynamicPartAlternative]
1127
+
1128
+ def getDynamicPartAlternatives(self):
1129
+ return self.dynamicPartAlternatives
1130
+
1131
+ def addDynamicPartAlternative(self, value):
1132
+ if value is not None:
1133
+ self.dynamicPartAlternatives.append(value)
1134
+ return self
1135
+
1136
+
1137
+ class MultiplexedIPdu(IPdu):
1138
+ """
1139
+ Represents a multiplexed Interaction Protocol Data Unit (IPDU)
1140
+ with dynamic and static parts, defining selector field properties
1141
+ and trigger modes for multiplexed communication.
1142
+ """
1143
+ def __init__(self, parent, short_name):
1144
+ super().__init__(parent, short_name)
1145
+
1146
+ self.dynamicPart = None # type: DynamicPart
1147
+ self.selectorFieldByteOrder = None # type: ByteOrderEnum
1148
+ self.selectorFieldLength = None # type: Integer
1149
+ self.selectorFieldStartPosition = None # type: Integer
1150
+ self.staticPart = None # type: StaticPart
1151
+ self.triggerMode = None # type: TriggerMode
1152
+ self.unusedBitPattern = None # type: Integer
1153
+
1154
+ def getDynamicPart(self):
1155
+ return self.dynamicPart
1156
+
1157
+ def setDynamicPart(self, value):
1158
+ if value is not None:
1159
+ self.dynamicPart = value
1160
+ return self
1161
+
1162
+ def getSelectorFieldByteOrder(self):
1163
+ return self.selectorFieldByteOrder
1164
+
1165
+ def setSelectorFieldByteOrder(self, value):
1166
+ if value is not None:
1167
+ self.selectorFieldByteOrder = value
1168
+ return self
1169
+
1170
+ def getSelectorFieldLength(self):
1171
+ return self.selectorFieldLength
1172
+
1173
+ def setSelectorFieldLength(self, value):
1174
+ if value is not None:
1175
+ self.selectorFieldLength = value
1176
+ return self
1177
+
1178
+ def getSelectorFieldStartPosition(self):
1179
+ return self.selectorFieldStartPosition
1180
+
1181
+ def setSelectorFieldStartPosition(self, value):
1182
+ if value is not None:
1183
+ self.selectorFieldStartPosition = value
1184
+ return self
1185
+
1186
+ def getStaticPart(self):
1187
+ return self.staticPart
1188
+
1189
+ def setStaticPart(self, value):
1190
+ if value is not None:
1191
+ self.staticPart = value
1192
+ return self
1193
+
1194
+ def getTriggerMode(self):
1195
+ return self.triggerMode
1196
+
1197
+ def setTriggerMode(self, value):
1198
+ if value is not None:
1199
+ self.triggerMode = value
1200
+ return self
1201
+
1202
+ def getUnusedBitPattern(self):
1203
+ return self.unusedBitPattern
1204
+
1205
+ def setUnusedBitPattern(self, value):
1206
+ if value is not None:
1207
+ self.unusedBitPattern = value
1208
+ return self
1209
+
1210
+
1211
+ class GeneralPurposePdu(Pdu):
1212
+ """
1213
+ Represents a general-purpose Protocol Data Unit (PDU) for flexible
1214
+ communication patterns that don't fit into specific PDU categories.
1215
+ """
1216
+ def __init__(self, parent: ARObject, short_name: str):
1217
+ super().__init__(parent, short_name)
1218
+
1219
+
1220
+ class GeneralPurposeIPdu(IPdu):
1221
+ """
1222
+ Represents a general-purpose Interaction Protocol Data Unit (IPDU) for flexible
1223
+ interaction-based communication patterns that don't fit into specific IPDU categories.
1224
+ """
1225
+ def __init__(self, parent: ARObject, short_name: str):
1226
+ super().__init__(parent, short_name)
1227
+
1228
+
1229
+ class SecureCommunicationPropsSet(FibexElement):
1230
+ """
1231
+ Represents a set of secure communication properties that can be grouped
1232
+ together to define common security configurations for communication channels.
1233
+ """
1234
+ def __init__(self, parent: ARObject, short_name: str):
1235
+ super().__init__(parent, short_name)
1236
+
1237
+ self.secureComProps: List[SecureCommunicationProps] = []
1238
+
1239
+
1240
+ class UserDefinedPdu(Pdu):
1241
+ """
1242
+ Represents a user-defined Protocol Data Unit (PDU) that allows for custom
1243
+ communication patterns defined by the user rather than following standard PDU types.
1244
+ """
1245
+ def __init__(self, parent: ARObject, short_name: str):
1246
+ super().__init__(parent, short_name)
1247
+
1248
+
1249
+ class UserDefinedIPdu(IPdu):
1250
+ """
1251
+ Represents a user-defined Interaction Protocol Data Unit (IPDU) that allows for custom
1252
+ interaction-based communication patterns defined by the user rather than following standard IPDU types.
1253
+ """
1254
+ def __init__(self, parent: ARObject, short_name: str):
1255
+ super().__init__(parent, short_name)
1256
+
1257
+
1258
+ class SecureCommunicationAuthenticationProps(Identifiable):
1259
+ """
1260
+ Defines authentication properties for secure communication,
1261
+ including authentication build attempts, retries, and other
1262
+ authentication-related security parameters.
1263
+ """
1264
+ def __init__(self, parent: ARObject, short_name: str):
1265
+ super().__init__(parent, short_name)
1266
+
1267
+ self.authenticationBuildAttempts: PositiveInteger = None
1268
+ self.authenticationRetries: PositiveInteger = None
1269
+ self.dataId: PositiveInteger = None
1270
+ self.securedComAuthenticationType: ARLiteral = None
1271
+
1272
+ def getAuthenticationBuildAttempts(self):
1273
+ return self.authenticationBuildAttempts
1274
+
1275
+ def setAuthenticationBuildAttempts(self, value):
1276
+ if value is not None:
1277
+ self.authenticationBuildAttempts = value
1278
+ return self
1279
+
1280
+ def getAuthenticationRetries(self):
1281
+ return self.authenticationRetries
1282
+
1283
+ def setAuthenticationRetries(self, value):
1284
+ if value is not None:
1285
+ self.authenticationRetries = value
1286
+ return self
1287
+
1288
+ def getDataId(self):
1289
+ return self.dataId
1290
+
1291
+ def setDataId(self, value):
1292
+ if value is not None:
1293
+ self.dataId = value
1294
+ return self
1295
+
1296
+ def getSecuredComAuthenticationType(self):
1297
+ return self.securedComAuthenticationType
1298
+
1299
+ def setSecuredComAuthenticationType(self, value):
1300
+ if value is not None:
1301
+ self.securedComAuthenticationType = value
1302
+ return self
1303
+
1304
+
1305
+ class SecureCommunicationFreshnessProps(Identifiable):
1306
+ """
1307
+ Defines freshness properties for secure communication,
1308
+ including freshness value IDs, lengths, and other
1309
+ freshness-related security parameters to prevent replay attacks.
1310
+ """
1311
+ def __init__(self, parent: ARObject, short_name: str):
1312
+ super().__init__(parent, short_name)
1313
+
1314
+ self.freshnessValueId: PositiveInteger = None
1315
+ self.freshnessValueLength: PositiveInteger = None
1316
+ self.freshnessValueTxLength: PositiveInteger = None
1317
+ self.messageLinkLength: PositiveInteger = None
1318
+ self.messageLinkPosition: PositiveInteger = None
1319
+ self.secondaryFreshnessValueId: PositiveInteger = None
1320
+ self.securedComFreshnessType: ARLiteral = None
1321
+
1322
+ def getFreshnessValueId(self):
1323
+ return self.freshnessValueId
1324
+
1325
+ def setFreshnessValueId(self, value):
1326
+ if value is not None:
1327
+ self.freshnessValueId = value
1328
+ return self
1329
+
1330
+ def getFreshnessValueLength(self):
1331
+ return self.freshnessValueLength
1332
+
1333
+ def setFreshnessValueLength(self, value):
1334
+ if value is not None:
1335
+ self.freshnessValueLength = value
1336
+ return self
1337
+
1338
+ def getFreshnessValueTxLength(self):
1339
+ return self.freshnessValueTxLength
1340
+
1341
+ def setFreshnessValueTxLength(self, value):
1342
+ if value is not None:
1343
+ self.freshnessValueTxLength = value
1344
+ return self
1345
+
1346
+ def getMessageLinkLength(self):
1347
+ return self.messageLinkLength
1348
+
1349
+ def setMessageLinkLength(self, value):
1350
+ if value is not None:
1351
+ self.messageLinkLength = value
1352
+ return self
1353
+
1354
+ def getMessageLinkPosition(self):
1355
+ return self.messageLinkPosition
1356
+
1357
+ def setMessageLinkPosition(self, value):
1358
+ if value is not None:
1359
+ self.messageLinkPosition = value
1360
+ return self
1361
+
1362
+ def getSecondaryFreshnessValueId(self):
1363
+ return self.secondaryFreshnessValueId
1364
+
1365
+ def setSecondaryFreshnessValueId(self, value):
1366
+ if value is not None:
1367
+ self.secondaryFreshnessValueId = value
1368
+ return self
1369
+
1370
+ def getSecuredComFreshnessType(self):
1371
+ return self.securedComFreshnessType
1372
+
1373
+ def setSecuredComFreshnessType(self, value):
1374
+ if value is not None:
1375
+ self.securedComFreshnessType = value
1376
+ return self