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