armodel 1.6.2__py3-none-any.whl → 1.6.4__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/cli/arxml_dump_cli.py +13 -10
- armodel/cli/arxml_format_cli.py +1 -2
- armodel/cli/connector2xlsx_cli.py +2 -3
- armodel/cli/connector_update_cli.py +2 -5
- armodel/cli/memory_section_cli.py +2 -2
- armodel/cli/swc_list_cli.py +2 -3
- armodel/cli/system_signal_cli.py +2 -2
- armodel/lib/sw_component.py +3 -3
- armodel/lib/system_signal.py +3 -5
- armodel/models/{m2/autosar_templates/autosar_top_level_structure.py → M2/AUTOSARTemplates/AutosarTopLevelStructure.py} +5 -7
- armodel/models/{bsw_module_template.py → M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py} +113 -140
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +60 -0
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +52 -0
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +77 -0
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__init__.py +4 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +238 -0
- armodel/models/{m2/autosar_templates/common_structure/implementation_data_types.py → M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py} +7 -6
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +119 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +96 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +69 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +20 -0
- armodel/models/{service_needs.py → M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py} +13 -9
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +35 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +24 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +45 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +24 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +33 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +9 -0
- armodel/models/{m2/autosar_templates/common_structure → M2/AUTOSARTemplates/CommonStructure}/__init__.py +4 -3
- armodel/models/{m2/autosar_templates/ecuc_description_template.py → M2/AUTOSARTemplates/ECUCDescriptionTemplate.py} +6 -7
- armodel/models/{m2/autosar_templates/generic_structure/abstract_structure.py → M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py} +25 -5
- armodel/models/{m2/autosar_templates/generic_structure/ar_package.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py} +41 -29
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +16 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +1 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +52 -0
- armodel/models/{general_structure.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py} +42 -159
- armodel/models/{ar_object.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py} +179 -71
- armodel/models/M2/AUTOSARTemplates/GenericStructure/__init__.py +1 -0
- armodel/models/{m2/autosar_templates/sw_component_template/communication.py → M2/AUTOSARTemplates/SWComponentTemplate/Communication.py} +22 -5
- armodel/models/{m2/autosar_templates/sw_component_template/components/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py} +2 -4
- armodel/models/{m2/autosar_templates/sw_component_template/components → M2/AUTOSARTemplates/SWComponentTemplate/Components}/__init__.py +114 -10
- armodel/models/{m2/autosar_templates/sw_component_template/composition/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py} +2 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +96 -0
- armodel/models/{m2/autosar_templates/sw_component_template/data_type/data_prototypes.py → M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py} +24 -8
- armodel/models/{datatype.py → M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py} +16 -73
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +177 -0
- armodel/models/{m2/autosar_templates/sw_component_template/port_interface/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/InstanceRefs.py} +2 -2
- armodel/models/{m2/autosar_templates/sw_component_template/port_interface → M2/AUTOSARTemplates/SWComponentTemplate/PortInterface}/__init__.py +10 -6
- armodel/models/{rpt_scenario.py → M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py} +4 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +34 -0
- armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/access_count.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py} +2 -2
- armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py} +7 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +24 -0
- armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/instance_refs_usage.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py} +3 -3
- armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py} +4 -4
- armodel/models/{per_instance_memory.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py} +5 -6
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +86 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +174 -0
- armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py} +3 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +57 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +8 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +358 -0
- armodel/models/{m2/autosar_templates/system_template/data_mapping.py → M2/AUTOSARTemplates/SystemTemplate/DataMapping.py} +2 -3
- armodel/models/{fibex/can_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py} +3 -3
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +14 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +116 -0
- armodel/models/{fibex/lin_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py} +5 -2
- armodel/models/{fibex/fibex_4_multiplatform.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py} +5 -4
- armodel/models/{fibex/fibex_core/core_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py} +4 -6
- armodel/models/{fibex/fibex_core/core_topology.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py} +6 -7
- armodel/models/{m2/autosar_templates/system_template/instance_refs.py → M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py} +2 -2
- armodel/models/{m2/autosar_templates/system_template/network_management.py → M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py} +5 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +6 -0
- armodel/models/{m2/autosar_templates/system_template → M2/AUTOSARTemplates/SystemTemplate}/__init__.py +3 -4
- armodel/models/M2/MSR/AsamHdo/AdminData.py +18 -0
- armodel/models/M2/MSR/AsamHdo/BaseTypes.py +77 -0
- armodel/models/{m2_msr.py → M2/MSR/AsamHdo/ComputationMethod.py} +43 -28
- armodel/models/{global_constraints.py → M2/MSR/AsamHdo/Constraints/GlobalConstraints.py} +6 -4
- armodel/models/M2/MSR/AsamHdo/SpecialData.py +60 -0
- armodel/models/{m2/msr/asam_hdo/units.py → M2/MSR/AsamHdo/Units.py} +3 -3
- armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +26 -0
- armodel/models/{m2/msr/data_dictionary/auxillary_objects.py → M2/MSR/DataDictionary/AuxillaryObjects.py} +3 -4
- armodel/models/M2/MSR/DataDictionary/Axis.py +145 -0
- armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +37 -0
- armodel/models/{m2/msr/data_dictionary/data_def_properties.py → M2/MSR/DataDictionary/DataDefProperties.py} +19 -10
- armodel/models/{record_layout.py → M2/MSR/DataDictionary/RecordLayout.py} +26 -25
- armodel/models/{annotation.py → M2/MSR/Documentation/Annotation.py} +8 -10
- armodel/models/{m2/msr/documentation/block_elements.py → M2/MSR/Documentation/BlockElements.py} +2 -2
- armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +16 -0
- armodel/models/{multilanguage_data.py → M2/MSR/Documentation/TextModel/MultilanguageData.py} +20 -32
- armodel/models/M2/MSR/Documentation/TextModel/__init__.py +0 -0
- armodel/models/M2/MSR/Documentation/__init__.py +3 -0
- armodel/models/M2/MSR/__init__.py +1 -0
- armodel/models/M2/__init__.py +0 -0
- armodel/models/__init__.py +50 -24
- armodel/parser/abstract_arxml_parser.py +8 -4
- armodel/parser/arxml_parser.py +117 -90
- armodel/parser/connector_xlsx_parser.py +5 -3
- armodel/parser/file_parser.py +2 -1
- armodel/report/connector_xls_report.py +3 -2
- armodel/tests/test_armodel/models/test_ar_object.py +2 -3
- armodel/tests/test_armodel/models/test_ar_package.py +21 -9
- armodel/tests/test_armodel/models/test_ar_ref.py +7 -5
- armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -1
- armodel/tests/test_armodel/models/test_common_structure.py +11 -5
- armodel/tests/test_armodel/models/test_data_dictionary.py +2 -2
- armodel/tests/test_armodel/models/test_data_prototype.py +8 -4
- armodel/tests/test_armodel/models/test_datatype.py +28 -14
- armodel/tests/test_armodel/models/test_general_structure.py +12 -2
- armodel/tests/test_armodel/models/test_implementation.py +3 -2
- armodel/tests/test_armodel/models/test_m2_msr.py +4 -2
- armodel/tests/test_armodel/models/test_port_interface.py +21 -11
- armodel/tests/test_armodel/models/test_port_prototype.py +1 -1
- armodel/tests/test_armodel/parser/test_parse_bswmd.py +13 -13
- armodel/tests/test_armodel/parser/test_sw_components.py +2 -2
- armodel/tests/test_armodel/parser/test_system.py +30 -0
- armodel/writer/abstract_arxml_writer.py +5 -2
- armodel/writer/arxml_writer.py +136 -91
- {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/METADATA +16 -1
- armodel-1.6.4.dist-info/RECORD +156 -0
- armodel/lib/data_analyzer.py +0 -34
- armodel/models/ar_package.py +0 -641
- armodel/models/ar_ref.py +0 -25
- armodel/models/calibration.py +0 -119
- armodel/models/common_structure.py +0 -272
- armodel/models/communication.py +0 -17
- armodel/models/data_def_properties.py +0 -16
- armodel/models/data_dictionary.py +0 -59
- armodel/models/data_prototype.py +0 -103
- armodel/models/end_to_end_protection.py +0 -67
- armodel/models/fibex/fibex_core.py +0 -341
- armodel/models/fibex/lin_topology.py +0 -7
- armodel/models/implementation.py +0 -135
- armodel/models/internal_behavior.py +0 -63
- armodel/models/m2/autosar_templates/common_structure/implementation.py +0 -21
- armodel/models/m2/autosar_templates/sw_component_template/composition/__init__.py +0 -154
- armodel/models/m2/autosar_templates/sw_component_template/port_interface.py +0 -236
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/__init__.py +0 -203
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/trigger.py +0 -10
- armodel/models/m2/autosar_templates/system_template/transport_protocols.py +0 -7
- armodel/models/mode_declaration.py +0 -8
- armodel/models/port_interface.py +0 -165
- armodel/models/port_prototype.py +0 -6
- armodel/models/service_mapping.py +0 -11
- armodel/models/sw_component.py +0 -385
- armodel/models/system_template/network_management.py +0 -7
- armodel/models/system_template/transport_protocols.py +0 -7
- armodel/models/timing.py +0 -91
- armodel/models/unit.py +0 -14
- armodel-1.6.2.dist-info/RECORD +0 -142
- /armodel/models/{fibex → M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior}/__init__.py +0 -0
- /armodel/models/{fibex/fibex_4_can → M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint}/__init__.py +0 -0
- /armodel/models/{fibex/fibex_4_lin → M2/AUTOSARTemplates/CommonStructure/Timing}/__init__.py +0 -0
- /armodel/models/{fibex/fibex_core → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses}/__init__.py +0 -0
- /armodel/models/{m2 → M2/AUTOSARTemplates/SWComponentTemplate/Datatype}/__init__.py +0 -0
- /armodel/models/{m2/autosar_templates → M2/AUTOSARTemplates/SWComponentTemplate}/__init__.py +0 -0
- /armodel/models/{m2/autosar_templates/generic_structure → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can}/__init__.py +0 -0
- /armodel/models/{m2/autosar_templates/sw_component_template → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet}/__init__.py +0 -0
- /armodel/models/{m2/autosar_templates/sw_component_template/data_type → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin}/__init__.py +0 -0
- /armodel/models/{m2/msr → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore}/__init__.py +0 -0
- /armodel/models/{m2/msr/asam_hdo → M2/AUTOSARTemplates/SystemTemplate/Fibex}/__init__.py +0 -0
- /armodel/models/{m2/msr/data_dictionary → M2/AUTOSARTemplates}/__init__.py +0 -0
- /armodel/models/{m2/msr/documentation → M2/MSR/AsamHdo/Constraints}/__init__.py +0 -0
- /armodel/models/{system_template → M2/MSR/AsamHdo}/__init__.py +0 -0
- /armodel/models/{ecuc_parameter_def_template.py → M2/MSR/CalibrationData/__init__.py} +0 -0
- /armodel/models/{m2/autosar_templates/common_structure/constants.py → M2/MSR/DataDictionary/__init__.py} +0 -0
- {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/LICENSE +0 -0
- {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/WHEEL +0 -0
- {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/entry_points.txt +0 -0
- {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
2
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
3
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean, ARLiteral, ARNumerical
|
|
4
|
+
|
|
5
|
+
class BswModuleEntry(ARElement):
|
|
6
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
7
|
+
super().__init__(parent, short_name)
|
|
8
|
+
|
|
9
|
+
self.service_id = None # type: ARNumerical
|
|
10
|
+
self.is_reentrant = None # type: ARBoolean
|
|
11
|
+
self.is_synchronous = None # type: ARBoolean
|
|
12
|
+
self.call_type = None # type: ARLiteral
|
|
13
|
+
self._execution_context = None # type: ARLiteral
|
|
14
|
+
self._sw_service_impl_policy = None # type: ARLiteral
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def execution_context(self):
|
|
18
|
+
return self._execution_context
|
|
19
|
+
|
|
20
|
+
@execution_context.setter
|
|
21
|
+
def execution_context(self, value):
|
|
22
|
+
if value.upper() not in ("HOOK", "INTERRUPT-CAT-1", "INTERRUPT-CAT-2", "TASK", "UNSPECIFIED"):
|
|
23
|
+
raise ValueError("Invalid execution context <%s> of BswModuleEntry <%s>" % (value, self.short_name))
|
|
24
|
+
self._execution_context = value
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def sw_service_impl_policy(self):
|
|
28
|
+
return self._sw_service_impl_policy
|
|
29
|
+
|
|
30
|
+
@sw_service_impl_policy.setter
|
|
31
|
+
def sw_service_impl_policy(self, value):
|
|
32
|
+
if value.upper() not in ("INLINE", "INLINE-CONDITIONAL", "MACRO", "STANDARD"):
|
|
33
|
+
raise ValueError("Invalid SwServiceImplPolicy <%s> of BswModuleEntry <%s>" % (value, self.short_name))
|
|
34
|
+
self._sw_service_impl_policy = value
|
|
35
|
+
|
|
36
|
+
def __str__(self) -> str:
|
|
37
|
+
result = []
|
|
38
|
+
result.append("short_name : %s" % self.short_name)
|
|
39
|
+
if self.service_id != None:
|
|
40
|
+
result.append("service_id : %d" % self.service_id)
|
|
41
|
+
if self.is_reentrant != None:
|
|
42
|
+
result.append("is_reentrant : %s" % self.is_reentrant)
|
|
43
|
+
if self.is_synchronous != None:
|
|
44
|
+
result.append("is_synchronous : %s" % self.is_synchronous)
|
|
45
|
+
if self.call_type != None:
|
|
46
|
+
result.append("call_type : %s" % self.call_type)
|
|
47
|
+
if self.execution_context != None:
|
|
48
|
+
result.append("execution_context : %s" % self.execution_context)
|
|
49
|
+
if self.sw_service_impl_policy != None:
|
|
50
|
+
result.append("sw_service_impl_policy : %s" % self.sw_service_impl_policy)
|
|
51
|
+
|
|
52
|
+
return "\n".join(result)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
from ....M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalBehavior
|
|
2
|
+
from ....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroupPrototype
|
|
3
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
4
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
5
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARPositiveInteger, RefType
|
|
6
|
+
from typing import Dict, List
|
|
7
|
+
|
|
8
|
+
class BswModuleDescription(ARElement):
|
|
9
|
+
'''
|
|
10
|
+
Root element for the description of a single BSW module or BSW cluster. In case it
|
|
11
|
+
describes a BSW module, the short name of this element equals the name of the
|
|
12
|
+
BSW module.
|
|
13
|
+
|
|
14
|
+
**attributes**:
|
|
15
|
+
module_id : MODULE-ID
|
|
16
|
+
implemented_entry_refs : PROVIDED-ENTRYS
|
|
17
|
+
'''
|
|
18
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
19
|
+
super().__init__(parent, short_name)
|
|
20
|
+
|
|
21
|
+
# MODULE-ID
|
|
22
|
+
self.module_id = None # type: ARPositiveInteger
|
|
23
|
+
# PROVIDED-ENTRYS
|
|
24
|
+
self._implementedEntryRefs = [] # type: List[RefType]
|
|
25
|
+
|
|
26
|
+
self.providedModeGroups = {} # type: Dict[str, ModeDeclarationGroupPrototype]
|
|
27
|
+
self.requiredModeGroups = {} # type: Dict[str, ModeDeclarationGroupPrototype]
|
|
28
|
+
|
|
29
|
+
def addImplementedEntry(self, entry_ref: RefType):
|
|
30
|
+
self._implementedEntryRefs.append(entry_ref)
|
|
31
|
+
|
|
32
|
+
def getImplementedEntries(self) -> List[RefType]:
|
|
33
|
+
return self._implementedEntryRefs
|
|
34
|
+
|
|
35
|
+
#@property
|
|
36
|
+
#def category(self) -> str:
|
|
37
|
+
# return ARElement.getCategory(self)
|
|
38
|
+
|
|
39
|
+
#@category.setter
|
|
40
|
+
#def category(self, value:str):
|
|
41
|
+
# if value is None:
|
|
42
|
+
# return
|
|
43
|
+
# if value not in ("BSW_MODULE", "BSW_CLUSTER", "LIBRARY"):
|
|
44
|
+
# raise ValueError("Invalid category <%s> of BswModuleDescription <%s>" % (value, self.short_name))
|
|
45
|
+
# ARElement.setCategory(self, value)
|
|
46
|
+
|
|
47
|
+
def createProvidedModeGroup(self, short_name: str) -> ModeDeclarationGroupPrototype:
|
|
48
|
+
if (short_name not in self.elements):
|
|
49
|
+
prototype = ModeDeclarationGroupPrototype(self, short_name)
|
|
50
|
+
self.elements[short_name] = prototype
|
|
51
|
+
self.providedModeGroups[short_name] = prototype
|
|
52
|
+
return self.elements[short_name]
|
|
53
|
+
|
|
54
|
+
def getProvidedModeGroups(self) -> List[ModeDeclarationGroupPrototype]:
|
|
55
|
+
return sorted(self.providedModeGroups.values(), key=lambda v: v.short_name)
|
|
56
|
+
|
|
57
|
+
def createRequiredModeGroup(self, short_name: str) -> ModeDeclarationGroupPrototype:
|
|
58
|
+
if (short_name not in self.elements):
|
|
59
|
+
prototype = ModeDeclarationGroupPrototype(self, short_name)
|
|
60
|
+
self.elements[short_name] = prototype
|
|
61
|
+
self.requiredModeGroups[short_name] = property
|
|
62
|
+
return self.elements[short_name]
|
|
63
|
+
|
|
64
|
+
def getRequiredModeGroups(self) -> List[ModeDeclarationGroupPrototype]:
|
|
65
|
+
return sorted(self.requiredModeGroups.values(), key=lambda v: v.short_name)
|
|
66
|
+
|
|
67
|
+
def createBswInternalBehavior(self, short_name: str) -> BswInternalBehavior:
|
|
68
|
+
'''
|
|
69
|
+
Create the INTERNAL-BEHAVIORS tag
|
|
70
|
+
'''
|
|
71
|
+
if (short_name not in self.elements):
|
|
72
|
+
prototype = BswInternalBehavior(self, short_name)
|
|
73
|
+
self.elements[short_name] = prototype
|
|
74
|
+
return self.elements[short_name]
|
|
75
|
+
|
|
76
|
+
def getBswInternalBehaviors(self) -> List[BswInternalBehavior]:
|
|
77
|
+
return list(filter(lambda a: isinstance(a, BswInternalBehavior), self.elements.values()))
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
from abc import ABCMeta
|
|
2
|
+
from typing import List
|
|
3
|
+
from ....M2.AUTOSARTemplates.CommonStructure import ResourceConsumption
|
|
4
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.EngineeringObject import AutosarEngineeringObject
|
|
5
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable, PackageableElement, Referrable
|
|
6
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger, RefType, ARLiteral, String
|
|
7
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ImplementationProps(Referrable, metaclass = ABCMeta):
|
|
11
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
12
|
+
if type(self) == ImplementationProps:
|
|
13
|
+
raise NotImplementedError("ImplementationProps is an abstract class.")
|
|
14
|
+
|
|
15
|
+
super().__init__(parent, short_name)
|
|
16
|
+
|
|
17
|
+
self.symbol = None # type: ARLiteral
|
|
18
|
+
|
|
19
|
+
def getSymbol(self):
|
|
20
|
+
return self.symbol
|
|
21
|
+
|
|
22
|
+
def setSymbol(self, value):
|
|
23
|
+
self.symbol = value
|
|
24
|
+
return self
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class Code(Identifiable):
|
|
28
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
29
|
+
super().__init__(parent, short_name)
|
|
30
|
+
|
|
31
|
+
self._artifactDescriptors = [] # type: List[AutosarEngineeringObject]
|
|
32
|
+
self.callbackHeaderRefs = [] # type: List[RefType]
|
|
33
|
+
|
|
34
|
+
def addArtifactDescriptor(self, desc: AutosarEngineeringObject):
|
|
35
|
+
self._artifactDescriptors.append(desc)
|
|
36
|
+
|
|
37
|
+
def getArtifactDescriptors(self, category:str = "") -> List[AutosarEngineeringObject]:
|
|
38
|
+
if (category == ""):
|
|
39
|
+
return self._artifactDescriptors
|
|
40
|
+
else:
|
|
41
|
+
return list(filter(lambda a: a.getCategory().getText() == category, self._artifactDescriptors))
|
|
42
|
+
|
|
43
|
+
class Compiler(Identifiable):
|
|
44
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
45
|
+
super().__init__(parent, short_name)
|
|
46
|
+
|
|
47
|
+
self.name = None # type: String
|
|
48
|
+
self.options = None # type: String
|
|
49
|
+
self.vendor = None # type: String
|
|
50
|
+
self.version = None # type: String
|
|
51
|
+
|
|
52
|
+
def getName(self):
|
|
53
|
+
return self.name
|
|
54
|
+
|
|
55
|
+
def setName(self, value):
|
|
56
|
+
self.name = value
|
|
57
|
+
return self
|
|
58
|
+
|
|
59
|
+
def getOptions(self):
|
|
60
|
+
return self.options
|
|
61
|
+
|
|
62
|
+
def setOptions(self, value):
|
|
63
|
+
self.options = value
|
|
64
|
+
return self
|
|
65
|
+
|
|
66
|
+
def getVendor(self):
|
|
67
|
+
return self.vendor
|
|
68
|
+
|
|
69
|
+
def setVendor(self, value):
|
|
70
|
+
self.vendor = value
|
|
71
|
+
return self
|
|
72
|
+
|
|
73
|
+
def getVersion(self):
|
|
74
|
+
return self.version
|
|
75
|
+
|
|
76
|
+
def setVersion(self, value):
|
|
77
|
+
self.version = value
|
|
78
|
+
return self
|
|
79
|
+
|
|
80
|
+
class DependencyOnArtifact(Identifiable):
|
|
81
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
82
|
+
super().__init__(parent, short_name)
|
|
83
|
+
|
|
84
|
+
# type: AutosarEngineeringObject
|
|
85
|
+
self.artifactDescriptor = None
|
|
86
|
+
self.usage = None # type: DependencyUsageEnum
|
|
87
|
+
|
|
88
|
+
def getArtifactDescriptor(self):
|
|
89
|
+
return self.artifactDescriptor
|
|
90
|
+
|
|
91
|
+
def setArtifactDescriptor(self, value):
|
|
92
|
+
self.artifactDescriptor = value
|
|
93
|
+
return self
|
|
94
|
+
|
|
95
|
+
def getUsage(self):
|
|
96
|
+
return self.usage
|
|
97
|
+
|
|
98
|
+
def setUsage(self, value):
|
|
99
|
+
self.usage = value
|
|
100
|
+
return self
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class Implementation(PackageableElement, metaclass = ABCMeta):
|
|
104
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
105
|
+
if type(self) == Implementation:
|
|
106
|
+
raise NotImplementedError("Implementation is an abstract class.")
|
|
107
|
+
|
|
108
|
+
super().__init__(parent, short_name)
|
|
109
|
+
|
|
110
|
+
self.buildActionManifestRef = None # type: RefType
|
|
111
|
+
self.codeDescriptors = [] # type: List[Code]
|
|
112
|
+
self.compilers = [] # type: List[Compiler]
|
|
113
|
+
self.generatedArtifacts = [] # type: List[DependencyOnArtifact]
|
|
114
|
+
self.hwElementRefs = [] # type: List[RefType]
|
|
115
|
+
self.linkers = [] # type: List[Linker]
|
|
116
|
+
self.mcSupport = None
|
|
117
|
+
self.programmingLanguage = None # type: ProgramminglanguageEnum
|
|
118
|
+
self.requiredArtifacts = [] # type: List[DependencyOnArtifact]
|
|
119
|
+
self.requiredGeneratorTools = [] # type: List[DependencyOnArtifact]
|
|
120
|
+
self.resourceConsumption = None # type: ResourceConsumption
|
|
121
|
+
self.swcBswMappingRef = None # type: RefType
|
|
122
|
+
self.swVersion = [] # type: RevisionLabelString
|
|
123
|
+
self.usedCodeGenerator = None # type: String
|
|
124
|
+
self.vendorId = 0 # type: PositiveInteger
|
|
125
|
+
|
|
126
|
+
def getBuildActionManifestRef(self):
|
|
127
|
+
return self.buildActionManifestRef
|
|
128
|
+
|
|
129
|
+
def setBuildActionManifestRef(self, value):
|
|
130
|
+
self.buildActionManifestRef = value
|
|
131
|
+
return self
|
|
132
|
+
|
|
133
|
+
def getCodeDescriptors(self)-> List[Code]:
|
|
134
|
+
return list(filter(lambda a : isinstance(a, Code), self.elements.values()))
|
|
135
|
+
|
|
136
|
+
def createCodeDescriptor(self, short_name: str) -> Code:
|
|
137
|
+
if (short_name not in self.elements):
|
|
138
|
+
code_descriptor = Code(self, short_name)
|
|
139
|
+
self.addElement(code_descriptor)
|
|
140
|
+
self.codeDescriptors.append(code_descriptor)
|
|
141
|
+
return self.getElement(short_name)
|
|
142
|
+
|
|
143
|
+
def getCompilers(self):
|
|
144
|
+
return self.compilers
|
|
145
|
+
|
|
146
|
+
def setCompilers(self, value):
|
|
147
|
+
self.compilers = value
|
|
148
|
+
return self
|
|
149
|
+
|
|
150
|
+
def getGeneratedArtifacts(self):
|
|
151
|
+
return self.generatedArtifacts
|
|
152
|
+
|
|
153
|
+
def setGeneratedArtifacts(self, value):
|
|
154
|
+
self.generatedArtifacts = value
|
|
155
|
+
return self
|
|
156
|
+
|
|
157
|
+
def getHwElementRefs(self):
|
|
158
|
+
return self.hwElementRefs
|
|
159
|
+
|
|
160
|
+
def setHwElementRefs(self, value):
|
|
161
|
+
self.hwElementRefs = value
|
|
162
|
+
return self
|
|
163
|
+
|
|
164
|
+
def getLinkers(self):
|
|
165
|
+
return self.linkers
|
|
166
|
+
|
|
167
|
+
def setLinkers(self, value):
|
|
168
|
+
self.linkers = value
|
|
169
|
+
return self
|
|
170
|
+
|
|
171
|
+
def getMcSupport(self):
|
|
172
|
+
return self.mcSupport
|
|
173
|
+
|
|
174
|
+
def setMcSupport(self, value):
|
|
175
|
+
self.mcSupport = value
|
|
176
|
+
return self
|
|
177
|
+
|
|
178
|
+
def getProgrammingLanguage(self):
|
|
179
|
+
return self.programmingLanguage
|
|
180
|
+
|
|
181
|
+
def setProgrammingLanguage(self, value):
|
|
182
|
+
self.programmingLanguage = value
|
|
183
|
+
return self
|
|
184
|
+
|
|
185
|
+
def getRequiredArtifacts(self):
|
|
186
|
+
return self.requiredArtifacts
|
|
187
|
+
|
|
188
|
+
def setRequiredArtifacts(self, value):
|
|
189
|
+
self.requiredArtifacts = value
|
|
190
|
+
return self
|
|
191
|
+
|
|
192
|
+
def getRequiredGeneratorTools(self):
|
|
193
|
+
return self.requiredGeneratorTools
|
|
194
|
+
|
|
195
|
+
def setRequiredGeneratorTools(self, value):
|
|
196
|
+
self.requiredGeneratorTools = value
|
|
197
|
+
return self
|
|
198
|
+
|
|
199
|
+
def getResourceConsumption(self):
|
|
200
|
+
return self.resourceConsumption
|
|
201
|
+
|
|
202
|
+
def setResourceConsumption(self, consumption: ResourceConsumption):
|
|
203
|
+
self.elements[consumption.short_name] = consumption
|
|
204
|
+
self.resourceConsumption = consumption
|
|
205
|
+
return self
|
|
206
|
+
|
|
207
|
+
def getSwcBswMappingRef(self):
|
|
208
|
+
return self.swcBswMappingRef
|
|
209
|
+
|
|
210
|
+
def setSwcBswMappingRef(self, value):
|
|
211
|
+
self.swcBswMappingRef = value
|
|
212
|
+
return self
|
|
213
|
+
|
|
214
|
+
def getSwVersion(self):
|
|
215
|
+
return self.swVersion
|
|
216
|
+
|
|
217
|
+
def setSwVersion(self, value):
|
|
218
|
+
self.swVersion = value
|
|
219
|
+
return self
|
|
220
|
+
|
|
221
|
+
def getUsedCodeGenerator(self):
|
|
222
|
+
return self.usedCodeGenerator
|
|
223
|
+
|
|
224
|
+
def setUsedCodeGenerator(self, value):
|
|
225
|
+
self.usedCodeGenerator = value
|
|
226
|
+
return self
|
|
227
|
+
|
|
228
|
+
def getVendorId(self):
|
|
229
|
+
return self.vendorId
|
|
230
|
+
|
|
231
|
+
def setVendorId(self, value):
|
|
232
|
+
self.vendorId = value
|
|
233
|
+
return self
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
2
|
from typing import List
|
|
3
|
-
|
|
4
|
-
from
|
|
5
|
-
from ....
|
|
6
|
-
from ....
|
|
7
|
-
from ....
|
|
8
|
-
from
|
|
3
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
4
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical
|
|
5
|
+
from ....M2.MSR.DataDictionary.DataDefProperties import SwDataDefProps
|
|
6
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
7
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
|
|
8
|
+
from ....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import AutosarDataType
|
|
9
|
+
from ....M2.AUTOSARTemplates.SWComponentTemplate.Components import SymbolProps
|
|
9
10
|
|
|
10
11
|
class AbstractImplementationDataTypeElement(Identifiable):
|
|
11
12
|
def __init__(self, parent, short_name: str):
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
from abc import ABCMeta
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from typing import List
|
|
4
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
5
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
6
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, RefType
|
|
7
|
+
from ....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ParameterDataPrototype
|
|
8
|
+
|
|
9
|
+
class ReentrancyLevelEnum(Enum):
|
|
10
|
+
multicoreReentrant = "multicoreReentrant"
|
|
11
|
+
nonReentrant = "nonReentrant"
|
|
12
|
+
singleCoreReentrant = "singleCoreReentrant"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class ExclusiveArea(Identifiable):
|
|
16
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
17
|
+
super().__init__(parent, short_name)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class ExecutableEntity(Identifiable, metaclass=ABCMeta):
|
|
21
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
22
|
+
if type(self) == ExecutableEntity:
|
|
23
|
+
raise NotImplementedError("ExecutableEntity is an abstract class.")
|
|
24
|
+
|
|
25
|
+
super().__init__(parent, short_name)
|
|
26
|
+
|
|
27
|
+
self.activationReason = None # *
|
|
28
|
+
self.minimumStartInterval = None # type: ARFloat
|
|
29
|
+
self.reentrancyLevel = None #
|
|
30
|
+
self.canEnterExclusiveAreaRefs = [] # type: List[RefType]
|
|
31
|
+
self.swAddrMethodRef = None # type: RefType
|
|
32
|
+
|
|
33
|
+
def getActivationReason(self):
|
|
34
|
+
return self.activationReason
|
|
35
|
+
|
|
36
|
+
def setActivationReason(self, value):
|
|
37
|
+
self.activationReason = value
|
|
38
|
+
return self
|
|
39
|
+
|
|
40
|
+
def getMinimumStartInterval(self):
|
|
41
|
+
return self.minimumStartInterval
|
|
42
|
+
|
|
43
|
+
def setMinimumStartInterval(self, value):
|
|
44
|
+
self.minimumStartInterval = value
|
|
45
|
+
return self
|
|
46
|
+
|
|
47
|
+
def getReentrancyLevel(self):
|
|
48
|
+
return self.reentrancyLevel
|
|
49
|
+
|
|
50
|
+
def setReentrancyLevel(self, value):
|
|
51
|
+
self.reentrancyLevel = value
|
|
52
|
+
return self
|
|
53
|
+
|
|
54
|
+
def getSwAddrMethodRef(self):
|
|
55
|
+
return self.swAddrMethodRef
|
|
56
|
+
|
|
57
|
+
def setSwAddrMethodRef(self, value):
|
|
58
|
+
self.swAddrMethodRef = value
|
|
59
|
+
return self
|
|
60
|
+
|
|
61
|
+
@property
|
|
62
|
+
def minimumStartIntervalMs(self) -> int:
|
|
63
|
+
if self.minimumStartInterval is not None:
|
|
64
|
+
return int(self.minimumStartInterval.getValue() * 1000)
|
|
65
|
+
return None
|
|
66
|
+
|
|
67
|
+
def addCanEnterExclusiveAreaRef(self, ref: RefType):
|
|
68
|
+
self.canEnterExclusiveAreaRefs.append(ref)
|
|
69
|
+
|
|
70
|
+
def getCanEnterExclusiveAreaRefs(self):
|
|
71
|
+
return self.canEnterExclusiveAreaRefs
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
class InternalBehavior(Identifiable, metaclass=ABCMeta):
|
|
75
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
76
|
+
if type(self) == InternalBehavior:
|
|
77
|
+
raise NotImplementedError("InternalBehavior is an abstract class.")
|
|
78
|
+
super().__init__(parent, short_name)
|
|
79
|
+
|
|
80
|
+
self.data_type_mapping_refs = [] # type: List[RefType]
|
|
81
|
+
self.constant_memories = [] # type: List[ParameterDataPrototype]
|
|
82
|
+
|
|
83
|
+
def addDataTypeMappingRef(self, ref: RefType):
|
|
84
|
+
self.data_type_mapping_refs.append(ref)
|
|
85
|
+
|
|
86
|
+
def getDataTypeMappingRefs(self) -> List[RefType]:
|
|
87
|
+
return self.data_type_mapping_refs
|
|
88
|
+
|
|
89
|
+
def createExclusiveArea(self, short_name: str) -> ExclusiveArea:
|
|
90
|
+
if (short_name not in self.elements):
|
|
91
|
+
event = ExclusiveArea(self, short_name)
|
|
92
|
+
self.elements[short_name] = event
|
|
93
|
+
return self.elements[short_name]
|
|
94
|
+
|
|
95
|
+
def getExclusiveAreas(self) -> List[ExclusiveArea]:
|
|
96
|
+
return list(filter(lambda c: isinstance(c, ExclusiveArea), self.elements.values()))
|
|
97
|
+
|
|
98
|
+
def createConstantMemory(self, short_name: str) -> ParameterDataPrototype:
|
|
99
|
+
if (short_name not in self.elements):
|
|
100
|
+
prototype = ParameterDataPrototype(self, short_name)
|
|
101
|
+
self.elements[short_name] = prototype
|
|
102
|
+
self.constant_memories.append(prototype)
|
|
103
|
+
return self.elements[short_name]
|
|
104
|
+
|
|
105
|
+
def getConstantMemorys(self) -> List[ParameterDataPrototype]:
|
|
106
|
+
return self.constant_memories
|
|
107
|
+
|
|
108
|
+
class AbstractEvent(Identifiable):
|
|
109
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
110
|
+
super().__init__(parent, short_name)
|
|
111
|
+
|
|
112
|
+
self.activationReasonRepresentationRef = None # type: RefType
|
|
113
|
+
|
|
114
|
+
def getActivationReasonRepresentationRef(self):
|
|
115
|
+
return self.activationReasonRepresentationRef
|
|
116
|
+
|
|
117
|
+
def setActivationReasonRepresentationRef(self, value):
|
|
118
|
+
self.activationReasonRepresentationRef = value
|
|
119
|
+
return self
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
3
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
4
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARNumerical, RefType, TRefType
|
|
5
|
+
|
|
6
|
+
class ModeDeclaration(Identifiable):
|
|
7
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
8
|
+
super().__init__(parent, short_name)
|
|
9
|
+
|
|
10
|
+
self.value = None # type: ARNumerical
|
|
11
|
+
|
|
12
|
+
def setValue(self, value):
|
|
13
|
+
self.value = value
|
|
14
|
+
return self
|
|
15
|
+
|
|
16
|
+
def getValue(self) -> ARNumerical:
|
|
17
|
+
return self.value
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class ModeRequestTypeMap(ARObject):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
super().__init__()
|
|
23
|
+
|
|
24
|
+
self.implementation_data_type_ref = None # type: RefType
|
|
25
|
+
self.mode_group_ref = None # type: RefType
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class ModeDeclarationGroup(Identifiable):
|
|
29
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
30
|
+
super().__init__(parent, short_name)
|
|
31
|
+
|
|
32
|
+
self._initial_mode_ref = None # type: RefType
|
|
33
|
+
self._on_transition_value = None # type: ARNumerical
|
|
34
|
+
|
|
35
|
+
def createModeDeclaration(self, short_name: str) -> ModeDeclaration:
|
|
36
|
+
if (short_name not in self.elements):
|
|
37
|
+
spec = ModeDeclaration(self, short_name)
|
|
38
|
+
self.elements[short_name] = spec
|
|
39
|
+
return self.elements[short_name]
|
|
40
|
+
|
|
41
|
+
def getModeDeclarations(self) -> List[ModeDeclaration]:
|
|
42
|
+
return list(sorted(filter(lambda a: isinstance(a, ModeDeclaration), self.elements.values()), key= lambda o:o.short_name))
|
|
43
|
+
|
|
44
|
+
def setInitialModeRef(self, ref: RefType):
|
|
45
|
+
self._initial_mode_ref = ref
|
|
46
|
+
return self
|
|
47
|
+
|
|
48
|
+
def getInitialModeRef(self) -> RefType:
|
|
49
|
+
return self._initial_mode_ref
|
|
50
|
+
|
|
51
|
+
def setOnTransitionValue(self, value):
|
|
52
|
+
if isinstance(value, int):
|
|
53
|
+
value = ARNumerical()
|
|
54
|
+
value.setValue(value)
|
|
55
|
+
self._on_transition_value = value
|
|
56
|
+
return self
|
|
57
|
+
|
|
58
|
+
def getOnTransitionValue(self) -> ARNumerical:
|
|
59
|
+
return self._on_transition_value
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class ModeDeclarationGroupPrototype(Identifiable):
|
|
63
|
+
|
|
64
|
+
"""
|
|
65
|
+
The ModeDeclarationGroupPrototype specifies a set of Modes (ModeDeclarationGroup) which is provided or required in the given context.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
69
|
+
super().__init__(parent, short_name)
|
|
70
|
+
|
|
71
|
+
self._swCalibrationAccess = None # type: str
|
|
72
|
+
self.typeTRef = None # type: TRefType
|
|
73
|
+
|
|
74
|
+
@property
|
|
75
|
+
def sw_calibration_access(self):
|
|
76
|
+
return self._swCalibrationAccess
|
|
77
|
+
|
|
78
|
+
@sw_calibration_access.setter
|
|
79
|
+
def sw_calibration_access(self, value):
|
|
80
|
+
if (value not in ("notAccessible", "readOnly", "readWrite")):
|
|
81
|
+
raise ValueError("Invalid SwCalibrationAccess <%s> of ModeDeclarationGroupPrototype <%s>" % (value, self.short_name))
|
|
82
|
+
self._swCalibrationAccess = value
|
|
83
|
+
|
|
84
|
+
def getSwCalibrationAccess(self):
|
|
85
|
+
return self.swCalibrationAccess
|
|
86
|
+
|
|
87
|
+
def setSwCalibrationAccess(self, value):
|
|
88
|
+
self.swCalibrationAccess = value
|
|
89
|
+
return self
|
|
90
|
+
|
|
91
|
+
def getTypeTRef(self):
|
|
92
|
+
return self.typeTRef
|
|
93
|
+
|
|
94
|
+
def setTypeTRef(self, value):
|
|
95
|
+
self.typeTRef = value
|
|
96
|
+
return self
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
2
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
3
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, RefType
|
|
4
|
+
import re
|
|
5
|
+
from typing import List
|
|
6
|
+
|
|
7
|
+
class MemorySection(Identifiable):
|
|
8
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
9
|
+
super().__init__(parent, short_name)
|
|
10
|
+
|
|
11
|
+
self._alignment = None # type: ARLiteral
|
|
12
|
+
self.size = None
|
|
13
|
+
self.options = [] # type: List[ARLiteral]
|
|
14
|
+
self.swAddrMethodRef = None # type: RefType
|
|
15
|
+
self.symbol = None # type: ARLiteral
|
|
16
|
+
|
|
17
|
+
def getAlignment(self):
|
|
18
|
+
return self.alignment
|
|
19
|
+
|
|
20
|
+
def setAlignment(self, value):
|
|
21
|
+
self.alignment = value
|
|
22
|
+
return self
|
|
23
|
+
|
|
24
|
+
def getSize(self):
|
|
25
|
+
return self.size
|
|
26
|
+
|
|
27
|
+
def setSize(self, value):
|
|
28
|
+
self.size = value
|
|
29
|
+
return self
|
|
30
|
+
|
|
31
|
+
def getSwAddrMethodRef(self):
|
|
32
|
+
return self.swAddrMethodRef
|
|
33
|
+
|
|
34
|
+
def setSwAddrMethodRef(self, value):
|
|
35
|
+
self.swAddrMethodRef = value
|
|
36
|
+
return self
|
|
37
|
+
|
|
38
|
+
def getSymbol(self):
|
|
39
|
+
return self.symbol
|
|
40
|
+
|
|
41
|
+
def setSymbol(self, value):
|
|
42
|
+
self.symbol = value
|
|
43
|
+
return self
|
|
44
|
+
|
|
45
|
+
@property
|
|
46
|
+
def alignment(self) -> ARLiteral:
|
|
47
|
+
return self._alignment
|
|
48
|
+
|
|
49
|
+
@alignment.setter
|
|
50
|
+
def alignment(self, value: ARLiteral):
|
|
51
|
+
if value is not None and value.getValue() != "":
|
|
52
|
+
match = False
|
|
53
|
+
if value.getValue() in ("UNKNOWN", "UNSPECIFIED", "BOOLEAN", "PTR"):
|
|
54
|
+
self._alignment = value
|
|
55
|
+
match = True
|
|
56
|
+
else:
|
|
57
|
+
m = re.match(r'^\d+', value.value)
|
|
58
|
+
if m:
|
|
59
|
+
self._alignment = value
|
|
60
|
+
match = True
|
|
61
|
+
|
|
62
|
+
if not match:
|
|
63
|
+
raise ValueError("Invalid alignment <%s> of memory section <%s>" % (value, self.getShortName()))
|
|
64
|
+
|
|
65
|
+
def addOption(self, option: ARLiteral):
|
|
66
|
+
self.options.append(option)
|
|
67
|
+
|
|
68
|
+
def getOptions(self) -> List[ARLiteral]:
|
|
69
|
+
return self.options
|