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
armodel/models/port_interface.py
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
from abc import ABCMeta
|
|
2
|
-
from typing import List
|
|
3
|
-
|
|
4
|
-
from .ar_object import ARBoolean, ARLiteral, ARNumerical
|
|
5
|
-
from .common_structure import ModeDeclarationGroupPrototype, Trigger
|
|
6
|
-
from .datatype import AtpType
|
|
7
|
-
from .general_structure import ARObject, Identifiable, AtpFeature
|
|
8
|
-
from .data_prototype import VariableDataPrototype, AutosarDataPrototype
|
|
9
|
-
from .ar_ref import RefType
|
|
10
|
-
|
|
11
|
-
class PortInterface(AtpType, metaclass = ABCMeta):
|
|
12
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
13
|
-
if type(self) == PortInterface:
|
|
14
|
-
raise NotImplementedError("PortInterface is an abstract class.")
|
|
15
|
-
super().__init__(parent, short_name)
|
|
16
|
-
|
|
17
|
-
self.is_service = None # type: ARBoolean
|
|
18
|
-
self.serviceKind = None # type: ARLiteral
|
|
19
|
-
|
|
20
|
-
class DataInterface(PortInterface, metaclass=ABCMeta):
|
|
21
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
22
|
-
if type(self) == DataInterface:
|
|
23
|
-
raise NotImplementedError("DataInterface is an abstract class.")
|
|
24
|
-
super().__init__(parent, short_name)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
class NvDataInterface(DataInterface):
|
|
28
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
29
|
-
super().__init__(parent, short_name)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
class ParameterInterface(DataInterface):
|
|
33
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
34
|
-
super().__init__(parent, short_name)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
class SenderReceiverInterface(DataInterface):
|
|
38
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
39
|
-
super().__init__(parent, short_name)
|
|
40
|
-
|
|
41
|
-
def createDataElement(self, short_name) -> VariableDataPrototype:
|
|
42
|
-
if (short_name not in self.elements):
|
|
43
|
-
data_element = VariableDataPrototype(self, short_name)
|
|
44
|
-
self.elements[short_name] = data_element
|
|
45
|
-
return self.elements[short_name]
|
|
46
|
-
|
|
47
|
-
def getDataElements(self) -> List[VariableDataPrototype]:
|
|
48
|
-
return list(filter(lambda c: isinstance(c, VariableDataPrototype), self.elements.values()))
|
|
49
|
-
|
|
50
|
-
def getDataElement(self, short_name) -> VariableDataPrototype:
|
|
51
|
-
if (short_name in self.elements):
|
|
52
|
-
data_element = self.elements[short_name]
|
|
53
|
-
#if (not isinstance(data_element, VariableDataPrototype)):
|
|
54
|
-
# raise IndexError("%s is not data element." % short_name)
|
|
55
|
-
return data_element
|
|
56
|
-
raise IndexError("data element <%s> can not be found." % short_name)
|
|
57
|
-
|
|
58
|
-
class ArgumentDataPrototype(AutosarDataPrototype):
|
|
59
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
60
|
-
super().__init__(parent, short_name)
|
|
61
|
-
self.direction = ""
|
|
62
|
-
self.server_argument_impl_policy = ""
|
|
63
|
-
|
|
64
|
-
class ApplicationError(Identifiable):
|
|
65
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
66
|
-
super().__init__(parent, short_name)
|
|
67
|
-
|
|
68
|
-
self.error_code = None # type: ARNumerical
|
|
69
|
-
|
|
70
|
-
class ClientServerOperation(AtpFeature):
|
|
71
|
-
"""
|
|
72
|
-
An operation declared within the scope of a client/server interface.
|
|
73
|
-
Package: M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
|
|
74
|
-
Base: ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, MultilanguageReferrable, Referrable
|
|
75
|
-
|
|
76
|
-
Attributes:
|
|
77
|
-
-----------
|
|
78
|
-
_argument: ArgumentDataPrototype (optional)
|
|
79
|
-
An argument of this ClientServerOperation
|
|
80
|
-
|
|
81
|
-
_possibleError: RefType -> ApplicationError (optional)
|
|
82
|
-
Possible errors that may by raised by the referring operation
|
|
83
|
-
|
|
84
|
-
Methods:
|
|
85
|
-
--------
|
|
86
|
-
addArgumentDataPrototype add the argument
|
|
87
|
-
getArgumentDataPrototypes get the arguments
|
|
88
|
-
addPossibleErrorRef add the possible error
|
|
89
|
-
getPossbileErrorRefs get the possible errors
|
|
90
|
-
|
|
91
|
-
"""
|
|
92
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
93
|
-
super().__init__(parent, short_name)
|
|
94
|
-
|
|
95
|
-
self._arguments = []
|
|
96
|
-
self._possible_error_refs = [] # type: List[RefType]
|
|
97
|
-
|
|
98
|
-
def addArgumentDataPrototype(self, prototype: ArgumentDataPrototype):
|
|
99
|
-
self._arguments.append(prototype)
|
|
100
|
-
|
|
101
|
-
def getArgumentDataPrototypes(self) -> List[ArgumentDataPrototype]:
|
|
102
|
-
return self._arguments
|
|
103
|
-
|
|
104
|
-
def addPossibleErrorRef(self, possible_error_ref: RefType):
|
|
105
|
-
self._possible_error_refs.append(possible_error_ref)
|
|
106
|
-
|
|
107
|
-
def getPossbileErrorRefs(self) -> List[RefType]:
|
|
108
|
-
return self._possible_error_refs
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
class ClientServerInterface(PortInterface):
|
|
112
|
-
"""
|
|
113
|
-
A client/server interface declares a number of operations that can be invoked on a server by a client.
|
|
114
|
-
Package: M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
|
|
115
|
-
Base: ARElement, ARObject, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpType, CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement, PortInterface, Referrable
|
|
116
|
-
|
|
117
|
-
Methods:
|
|
118
|
-
--------
|
|
119
|
-
createOperation create ClientServerOperation(s) of this ClientServerInterface.
|
|
120
|
-
createApplicationError create Application errors that are defined as part of this interface
|
|
121
|
-
getOperations get all ClientServerOperation(s) of this ClientServerInterface
|
|
122
|
-
getPossibleErrors get all Application error(s) of this ClientServerInterface
|
|
123
|
-
|
|
124
|
-
"""
|
|
125
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
126
|
-
super().__init__(parent, short_name)
|
|
127
|
-
|
|
128
|
-
def createOperation(self, short_name: str) -> ClientServerOperation:
|
|
129
|
-
if (short_name not in self.elements):
|
|
130
|
-
operation = ClientServerOperation(self, short_name)
|
|
131
|
-
self.elements[short_name] = operation
|
|
132
|
-
return self.elements[short_name]
|
|
133
|
-
|
|
134
|
-
def createApplicationError(self, short_name: str) -> ApplicationError:
|
|
135
|
-
if (short_name not in self.elements):
|
|
136
|
-
error = ApplicationError(self, short_name)
|
|
137
|
-
self.elements[short_name] = error
|
|
138
|
-
return self.elements[short_name]
|
|
139
|
-
|
|
140
|
-
def getOperations(self) -> List[ClientServerOperation]:
|
|
141
|
-
return list(filter(lambda c: isinstance(c, ClientServerOperation), self.elements.values()))
|
|
142
|
-
|
|
143
|
-
def getPossibleErrors(self) -> List[ApplicationError]:
|
|
144
|
-
return list(filter(lambda c: isinstance(c, ApplicationError), self.elements.values()))
|
|
145
|
-
|
|
146
|
-
class TriggerInterface(PortInterface):
|
|
147
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
148
|
-
super().__init__(parent, short_name)
|
|
149
|
-
|
|
150
|
-
self._triggers = [] # type: Trigger
|
|
151
|
-
|
|
152
|
-
class ModeSwitchInterface(PortInterface):
|
|
153
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
154
|
-
super().__init__(parent, short_name)
|
|
155
|
-
|
|
156
|
-
self._modeGroup = [] # type: List[ModeDeclarationGroupPrototype]
|
|
157
|
-
|
|
158
|
-
def createModeGroup(self, short_name: str) -> ModeDeclarationGroupPrototype:
|
|
159
|
-
prototype = ModeDeclarationGroupPrototype(self, short_name)
|
|
160
|
-
if (short_name not in self.elements):
|
|
161
|
-
self.elements[short_name] = prototype
|
|
162
|
-
return self.elements[short_name]
|
|
163
|
-
|
|
164
|
-
def getModeGroups(self) -> List[ModeDeclarationGroupPrototype]:
|
|
165
|
-
return list(sorted(filter(lambda c: isinstance(c, ModeDeclarationGroupPrototype), self.elements.values()), key= lambda o: o.short_name))
|
armodel/models/port_prototype.py
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
from typing import List
|
|
2
|
-
|
|
3
|
-
from .m2.autosar_templates.sw_component_template.communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, RPortComSpec, ServerComSpec
|
|
4
|
-
from .general_structure import ARObject, Identifiable
|
|
5
|
-
from .ar_ref import TRefType
|
|
6
|
-
|
armodel/models/sw_component.py
DELETED
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
from typing import List
|
|
2
|
-
from abc import ABCMeta
|
|
3
|
-
|
|
4
|
-
from .m2.autosar_templates.sw_component_template.components import SwComponentType
|
|
5
|
-
from .m2.autosar_templates.sw_component_template.composition.instance_refs import POperationInAtomicSwcInstanceRef
|
|
6
|
-
from .m2.autosar_templates.sw_component_template.components.instance_refs import RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
|
|
7
|
-
from .m2.autosar_templates.sw_component_template.swc_internal_behavior import RunnableEntity
|
|
8
|
-
from .internal_behavior import IncludedDataTypeSet, InternalBehavior
|
|
9
|
-
from .service_mapping import RoleBasedPortAssignment
|
|
10
|
-
from .per_instance_memory import PerInstanceMemory
|
|
11
|
-
from .service_needs import NvBlockNeeds, RoleBasedDataAssignment, ServiceNeeds
|
|
12
|
-
from .ar_object import ARBoolean, ARLiteral
|
|
13
|
-
from .general_structure import Identifiable, ARObject
|
|
14
|
-
from .ar_ref import TRefType
|
|
15
|
-
from .ar_ref import RefType
|
|
16
|
-
from .m2.autosar_templates.sw_component_template.data_type.data_prototypes import ParameterDataPrototype, VariableDataPrototype
|
|
17
|
-
from .m2.autosar_templates.common_structure import ValueSpecification
|
|
18
|
-
|
|
19
|
-
class AbstractEvent(Identifiable):
|
|
20
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
21
|
-
super().__init__(parent, short_name)
|
|
22
|
-
|
|
23
|
-
class RTEEvent(AbstractEvent):
|
|
24
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
25
|
-
super().__init__(parent, short_name)
|
|
26
|
-
|
|
27
|
-
self.start_on_event_ref = None # type: RefType
|
|
28
|
-
self.disabled_mode_irefs = [] # type: List[RModeInAtomicSwcInstanceRef]
|
|
29
|
-
|
|
30
|
-
def addDisabledModeIRef(self, iref: RModeInAtomicSwcInstanceRef):
|
|
31
|
-
self.disabled_mode_irefs.append(iref)
|
|
32
|
-
|
|
33
|
-
def getDisabledModeIRefs(self) -> List[RModeInAtomicSwcInstanceRef]:
|
|
34
|
-
return self.disabled_mode_irefs
|
|
35
|
-
|
|
36
|
-
class AsynchronousServerCallReturnsEvent(RTEEvent):
|
|
37
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
38
|
-
super().__init__(parent, short_name)
|
|
39
|
-
|
|
40
|
-
class DataSendCompletedEvent(RTEEvent):
|
|
41
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
42
|
-
super().__init__(parent, short_name)
|
|
43
|
-
|
|
44
|
-
class DataWriteCompletedEvent(RTEEvent):
|
|
45
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
46
|
-
super().__init__(parent, short_name)
|
|
47
|
-
|
|
48
|
-
class DataReceivedEvent(RTEEvent):
|
|
49
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
50
|
-
super().__init__(parent, short_name)
|
|
51
|
-
|
|
52
|
-
self.dataIRef = None # type: RVariableInAtomicSwcInstanceRef
|
|
53
|
-
|
|
54
|
-
def getDataIRef(self):
|
|
55
|
-
return self.dataIRef
|
|
56
|
-
|
|
57
|
-
def setDataIRef(self, value):
|
|
58
|
-
self.dataIRef = value
|
|
59
|
-
return self
|
|
60
|
-
|
|
61
|
-
class SwcModeSwitchEvent(RTEEvent):
|
|
62
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
63
|
-
super().__init__(parent, short_name)
|
|
64
|
-
|
|
65
|
-
self._activation = None # type: ARLiteral
|
|
66
|
-
self.mode_irefs = [] # type: List[RModeInAtomicSwcInstanceRef]
|
|
67
|
-
|
|
68
|
-
def addModeIRef(self, iref: RModeInAtomicSwcInstanceRef):
|
|
69
|
-
self.mode_irefs.append(iref)
|
|
70
|
-
|
|
71
|
-
def getModeIRefs(self) -> List[RModeInAtomicSwcInstanceRef]:
|
|
72
|
-
return self.mode_irefs
|
|
73
|
-
|
|
74
|
-
@property
|
|
75
|
-
def activation(self) -> ARLiteral:
|
|
76
|
-
return self._activation
|
|
77
|
-
|
|
78
|
-
@activation.setter
|
|
79
|
-
def activation(self, value: ARLiteral):
|
|
80
|
-
if value.getValue() not in ("ON-ENTRY", "ON-EXIT", "ON-TRANSITION"):
|
|
81
|
-
raise ValueError("Invalid activation <%s> of SwcModeSwitchEvent <%s>" % (value, self.short_name))
|
|
82
|
-
self._activation = value
|
|
83
|
-
|
|
84
|
-
def addModeIRef(self, mode_iref: RModeInAtomicSwcInstanceRef):
|
|
85
|
-
self.mode_irefs.append(mode_iref)
|
|
86
|
-
|
|
87
|
-
class DataReceiveErrorEvent(RTEEvent):
|
|
88
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
89
|
-
super().__init__(parent, short_name)
|
|
90
|
-
|
|
91
|
-
self.variable_data_prototype_iref = None
|
|
92
|
-
|
|
93
|
-
class OperationInvokedEvent(RTEEvent):
|
|
94
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
95
|
-
super().__init__(parent, short_name)
|
|
96
|
-
self.operation_iref = None # type: POperationInAtomicSwcInstanceRef
|
|
97
|
-
|
|
98
|
-
@property
|
|
99
|
-
def operationIRef(self) -> POperationInAtomicSwcInstanceRef:
|
|
100
|
-
return self.operation_iref
|
|
101
|
-
|
|
102
|
-
@operationIRef.setter
|
|
103
|
-
def operationIRef(self, value: POperationInAtomicSwcInstanceRef):
|
|
104
|
-
self.operation_iref = value
|
|
105
|
-
|
|
106
|
-
class InitEvent(RTEEvent):
|
|
107
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
108
|
-
super().__init__(parent, short_name)
|
|
109
|
-
|
|
110
|
-
class TimingEvent(RTEEvent):
|
|
111
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
112
|
-
super().__init__(parent, short_name)
|
|
113
|
-
self.offset = None
|
|
114
|
-
self.period = 0
|
|
115
|
-
|
|
116
|
-
@property
|
|
117
|
-
def period_ms(self):
|
|
118
|
-
if (self.period < 0.001):
|
|
119
|
-
return self.period * 1000
|
|
120
|
-
else:
|
|
121
|
-
return (int)(self.period * 1000)
|
|
122
|
-
|
|
123
|
-
class InternalTriggerOccurredEvent(RTEEvent):
|
|
124
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
125
|
-
super().__init__(parent, short_name)
|
|
126
|
-
|
|
127
|
-
self.event_source_ref = None # type: RefType
|
|
128
|
-
|
|
129
|
-
class PortDefinedArgumentValue(ARObject):
|
|
130
|
-
def __init__(self):
|
|
131
|
-
super().__init__()
|
|
132
|
-
|
|
133
|
-
self.value = None # type: ValueSpecification
|
|
134
|
-
self.value_type = None # type: TRefType
|
|
135
|
-
|
|
136
|
-
class PortAPIOption(ARObject):
|
|
137
|
-
def __init__(self):
|
|
138
|
-
super().__init__()
|
|
139
|
-
|
|
140
|
-
self.enable_take_address = None # type: ARBoolean
|
|
141
|
-
self.indirect_api = None # type: ARBoolean
|
|
142
|
-
self.port_ref = None # type: RefType
|
|
143
|
-
self._port_arg_values = [] # type: List[PortDefinedArgumentValue]
|
|
144
|
-
|
|
145
|
-
def addPortArgValue(self, value:PortDefinedArgumentValue):
|
|
146
|
-
self._port_arg_values.append(value)
|
|
147
|
-
|
|
148
|
-
def getPortArgValues(self) -> List[PortDefinedArgumentValue]:
|
|
149
|
-
return self._port_arg_values
|
|
150
|
-
|
|
151
|
-
class ServiceDependency(Identifiable):
|
|
152
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
153
|
-
super().__init__(parent, short_name)
|
|
154
|
-
|
|
155
|
-
class SwcServiceDependency(ServiceDependency):
|
|
156
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
157
|
-
super().__init__(parent, short_name)
|
|
158
|
-
|
|
159
|
-
self._assigned_data = []
|
|
160
|
-
self._assigned_ports = []
|
|
161
|
-
|
|
162
|
-
def AddAssignedData(self, data: RoleBasedDataAssignment):
|
|
163
|
-
self._assigned_data.append(data)
|
|
164
|
-
|
|
165
|
-
def getAssignedData(self) -> List[RoleBasedDataAssignment]:
|
|
166
|
-
return self._assigned_data
|
|
167
|
-
|
|
168
|
-
def AddAssignedPort(self, data: RoleBasedPortAssignment):
|
|
169
|
-
self._assigned_ports.append(data)
|
|
170
|
-
|
|
171
|
-
def getAssignedPorts(self) -> List[RoleBasedPortAssignment]:
|
|
172
|
-
return self._assigned_ports
|
|
173
|
-
|
|
174
|
-
def createNvBlockNeeds(self, short_name: str) -> NvBlockNeeds:
|
|
175
|
-
if (short_name not in self.elements):
|
|
176
|
-
event = NvBlockNeeds(self, short_name)
|
|
177
|
-
self.elements[short_name] = event
|
|
178
|
-
return self.elements[short_name]
|
|
179
|
-
|
|
180
|
-
def getNvBlockNeeds(self) -> List[NvBlockNeeds]:
|
|
181
|
-
return sorted(filter(lambda c: isinstance(c, NvBlockNeeds), self.elements.values()), key=lambda e: e.short_name)
|
|
182
|
-
|
|
183
|
-
def getServiceNeeds(self) -> List[ServiceNeeds]:
|
|
184
|
-
return sorted(filter(lambda c: isinstance(c, ServiceNeeds), self.elements.values()), key=lambda e: e.short_name)
|
|
185
|
-
|
|
186
|
-
class SwcInternalBehavior(InternalBehavior):
|
|
187
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
188
|
-
super().__init__(parent, short_name)
|
|
189
|
-
|
|
190
|
-
self.handle_termination_and_restart = None # type: str
|
|
191
|
-
self.supports_multiple_instantiation = None # type: ARBoolean
|
|
192
|
-
self.explicit_inter_runnable_variables = [] # type: List[VariableDataPrototype]
|
|
193
|
-
self.implicit_inter_runnable_variables = [] # type: List[VariableDataPrototype]
|
|
194
|
-
self.per_instance_memories = [] # type: List[PerInstanceMemory]
|
|
195
|
-
self.per_instance_parameters = [] # type: List[ParameterDataPrototype]
|
|
196
|
-
self.port_api_options = [] # type: List[PortAPIOption]
|
|
197
|
-
self.included_data_type_sets = [] # type: List[IncludedDataTypeSet]
|
|
198
|
-
|
|
199
|
-
def getExplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
|
|
200
|
-
return self.explicit_inter_runnable_variables
|
|
201
|
-
|
|
202
|
-
def getImplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
|
|
203
|
-
return self.implicit_inter_runnable_variables
|
|
204
|
-
|
|
205
|
-
def getPerInstanceMemories(self) -> List[PerInstanceMemory]:
|
|
206
|
-
return self.per_instance_memories
|
|
207
|
-
|
|
208
|
-
def getPerInstanceParameters(self) -> List[ParameterDataPrototype]:
|
|
209
|
-
return self.per_instance_parameters
|
|
210
|
-
|
|
211
|
-
def addPortAPIOption(self, option: PortAPIOption):
|
|
212
|
-
self.port_api_options.append(option)
|
|
213
|
-
|
|
214
|
-
def getPortAPIOptions(self) -> List[PortAPIOption]:
|
|
215
|
-
return self.port_api_options
|
|
216
|
-
|
|
217
|
-
def addIncludedDataTypeSet(self, set: IncludedDataTypeSet):
|
|
218
|
-
self.included_data_type_sets.append(set)
|
|
219
|
-
|
|
220
|
-
def getIncludedDataTypeSets(self) -> List[IncludedDataTypeSet]:
|
|
221
|
-
return self.included_data_type_sets
|
|
222
|
-
|
|
223
|
-
def createOperationInvokedEvent(self, short_name: str) -> OperationInvokedEvent:
|
|
224
|
-
if (short_name not in self.elements):
|
|
225
|
-
event = OperationInvokedEvent(self, short_name)
|
|
226
|
-
self.elements[short_name] = event
|
|
227
|
-
return self.elements[short_name]
|
|
228
|
-
|
|
229
|
-
def createTimingEvent(self, short_name: str) -> TimingEvent:
|
|
230
|
-
if (short_name not in self.elements):
|
|
231
|
-
event = TimingEvent(self, short_name)
|
|
232
|
-
self.elements[short_name] = event
|
|
233
|
-
return self.elements[short_name]
|
|
234
|
-
|
|
235
|
-
def createInitEvent(self, short_name: str) -> InitEvent:
|
|
236
|
-
if (short_name not in self.elements):
|
|
237
|
-
event = InitEvent(self, short_name)
|
|
238
|
-
self.elements[short_name] = event
|
|
239
|
-
return self.elements[short_name]
|
|
240
|
-
|
|
241
|
-
def createDataReceivedEvent(self, short_name: str) -> DataReceivedEvent:
|
|
242
|
-
if (short_name not in self.elements):
|
|
243
|
-
event = DataReceivedEvent(self, short_name)
|
|
244
|
-
self.elements[short_name] = event
|
|
245
|
-
return self.elements[short_name]
|
|
246
|
-
|
|
247
|
-
def createSwcModeSwitchEvent(self, short_name: str) -> SwcModeSwitchEvent:
|
|
248
|
-
if (short_name not in self.elements):
|
|
249
|
-
event = SwcModeSwitchEvent(self, short_name)
|
|
250
|
-
self.elements[short_name] = event
|
|
251
|
-
return self.elements[short_name]
|
|
252
|
-
|
|
253
|
-
def createInternalTriggerOccurredEvent(self, short_name: str) -> InternalTriggerOccurredEvent:
|
|
254
|
-
if (short_name not in self.elements):
|
|
255
|
-
event = InternalTriggerOccurredEvent(self, short_name)
|
|
256
|
-
self.elements[short_name] = event
|
|
257
|
-
return self.elements[short_name]
|
|
258
|
-
|
|
259
|
-
def createSwcServiceDependency(self, short_name: str) -> SwcServiceDependency:
|
|
260
|
-
if (short_name not in self.elements):
|
|
261
|
-
event = SwcServiceDependency(self, short_name)
|
|
262
|
-
self.elements[short_name] = event
|
|
263
|
-
return self.elements[short_name]
|
|
264
|
-
|
|
265
|
-
def getRteEvents(self) -> List[RTEEvent]:
|
|
266
|
-
return sorted(filter(lambda c: isinstance(c, RTEEvent), self.elements.values()), key=lambda e: e.short_name)
|
|
267
|
-
|
|
268
|
-
def getOperationInvokedEvents(self) -> List[OperationInvokedEvent]:
|
|
269
|
-
return sorted(filter(lambda c: isinstance(c, OperationInvokedEvent), self.elements.values()), key=lambda e: e.short_name)
|
|
270
|
-
|
|
271
|
-
def getInitEvents(self) -> List[InitEvent]:
|
|
272
|
-
return sorted(filter(lambda c: isinstance(c, InitEvent), self.elements.values()), key=lambda e: e.short_name)
|
|
273
|
-
|
|
274
|
-
def getTimingEvents(self) -> List[TimingEvent]:
|
|
275
|
-
return sorted(filter(lambda c: isinstance(c, TimingEvent), self.elements.values()), key=lambda e: e.short_name)
|
|
276
|
-
|
|
277
|
-
def getDataReceivedEvents(self) -> List[DataReceivedEvent]:
|
|
278
|
-
return sorted(filter(lambda c: isinstance(c, DataReceivedEvent), self.elements.values()), key=lambda e: e.short_name)
|
|
279
|
-
|
|
280
|
-
def getSwcModeSwitchEvents(self) -> List[SwcModeSwitchEvent]:
|
|
281
|
-
return sorted(filter(lambda c: isinstance(c, SwcModeSwitchEvent), self.elements.values()), key=lambda e: e.short_name)
|
|
282
|
-
|
|
283
|
-
def getInternalTriggerOccurredEvents(self) -> List[InternalTriggerOccurredEvent]:
|
|
284
|
-
return sorted(filter(lambda c: isinstance(c, InternalTriggerOccurredEvent), self.elements.values()), key= lambda e: e.short_name)
|
|
285
|
-
|
|
286
|
-
def getSwcServiceDependencies(self) -> List[SwcServiceDependency]:
|
|
287
|
-
return sorted(filter(lambda c: isinstance(c, SwcServiceDependency), self.elements.values()), key= lambda e: e.short_name)
|
|
288
|
-
|
|
289
|
-
def getEvent(self, short_name: str) -> RTEEvent:
|
|
290
|
-
if (not isinstance(self.elements[short_name], RTEEvent)):
|
|
291
|
-
raise ValueError("Invalid Event Type <%s> of <%s>" % type(self.elements[short_name]), short_name)
|
|
292
|
-
return self.elements[short_name]
|
|
293
|
-
|
|
294
|
-
def createExplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
|
|
295
|
-
if (short_name not in self.elements):
|
|
296
|
-
prototype = VariableDataPrototype(self, short_name)
|
|
297
|
-
self.elements[short_name] = prototype
|
|
298
|
-
self.explicit_inter_runnable_variables.append(prototype)
|
|
299
|
-
return self.elements[short_name]
|
|
300
|
-
|
|
301
|
-
def createImplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
|
|
302
|
-
if (short_name not in self.elements):
|
|
303
|
-
prototype = VariableDataPrototype(self, short_name)
|
|
304
|
-
self.elements[short_name] = prototype
|
|
305
|
-
self.implicit_inter_runnable_variables.append(prototype)
|
|
306
|
-
return self.elements[short_name]
|
|
307
|
-
|
|
308
|
-
def createPerInstanceMemory(self, short_name: str) -> PerInstanceMemory:
|
|
309
|
-
if (short_name not in self.elements):
|
|
310
|
-
memory = PerInstanceMemory(self, short_name)
|
|
311
|
-
self.elements[short_name] = memory
|
|
312
|
-
self.per_instance_memories.append(memory)
|
|
313
|
-
return self.elements[short_name]
|
|
314
|
-
|
|
315
|
-
def createPerInstanceParameter(self, short_name: str) -> ParameterDataPrototype:
|
|
316
|
-
if (short_name not in self.elements):
|
|
317
|
-
prototype = ParameterDataPrototype(self, short_name)
|
|
318
|
-
self.elements[short_name] = prototype
|
|
319
|
-
self.per_instance_parameters.append(prototype)
|
|
320
|
-
return self.elements[short_name]
|
|
321
|
-
|
|
322
|
-
def getVariableDataPrototypes(self) -> List[VariableDataPrototype]:
|
|
323
|
-
return sorted(filter(lambda c: isinstance(c, VariableDataPrototype), self.elements.values()), key=lambda e: e.short_name)
|
|
324
|
-
|
|
325
|
-
def createRunnableEntity(self, short_name: str) -> RunnableEntity:
|
|
326
|
-
if (short_name not in self.elements):
|
|
327
|
-
runnable = RunnableEntity(self, short_name)
|
|
328
|
-
self.elements[short_name] = runnable
|
|
329
|
-
return self.elements[short_name]
|
|
330
|
-
|
|
331
|
-
def getRunnableEntities(self) -> List[RunnableEntity]:
|
|
332
|
-
return sorted(filter(lambda c: isinstance(c, RunnableEntity), self.elements.values()), key=lambda r: r.short_name)
|
|
333
|
-
|
|
334
|
-
def getRunnableEntity(self, short_name) -> RunnableEntity:
|
|
335
|
-
return self.elements[short_name]
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
class AtomicSwComponentType(SwComponentType):
|
|
340
|
-
__metaclass__ = ABCMeta
|
|
341
|
-
|
|
342
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
343
|
-
super().__init__(parent, short_name)
|
|
344
|
-
|
|
345
|
-
def createSwcInternalBehavior(self, short_name) -> SwcInternalBehavior:
|
|
346
|
-
if (short_name not in self.elements):
|
|
347
|
-
if (len(list(filter(lambda e: isinstance(e, SwcInternalBehavior), self.elements.values()))) >= 1):
|
|
348
|
-
raise ValueError("The internal behavior of <%s> can not more than 1" % self.short_name)
|
|
349
|
-
behavior = SwcInternalBehavior(self, short_name)
|
|
350
|
-
self.elements[short_name] = behavior
|
|
351
|
-
return self.elements[short_name]
|
|
352
|
-
|
|
353
|
-
@property
|
|
354
|
-
def internal_behavior(self) -> SwcInternalBehavior:
|
|
355
|
-
return next(filter(lambda e: isinstance(e, SwcInternalBehavior), self.elements.values()))
|
|
356
|
-
|
|
357
|
-
class EcuAbstractionSwComponentType(AtomicSwComponentType):
|
|
358
|
-
def __init__(self, parent:ARObject, short_name: str):
|
|
359
|
-
super().__init__(parent, short_name)
|
|
360
|
-
|
|
361
|
-
class ApplicationSwComponentType(AtomicSwComponentType):
|
|
362
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
363
|
-
super().__init__(parent, short_name)
|
|
364
|
-
|
|
365
|
-
class ComplexDeviceDriverSwComponentType(AtomicSwComponentType):
|
|
366
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
367
|
-
super().__init__(parent, short_name)
|
|
368
|
-
|
|
369
|
-
class NvBlockSwComponentType(AtomicSwComponentType):
|
|
370
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
371
|
-
super().__init__(parent, short_name)
|
|
372
|
-
|
|
373
|
-
class SensorActuatorSwComponentType(AtomicSwComponentType):
|
|
374
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
375
|
-
super().__init__(parent, short_name)
|
|
376
|
-
|
|
377
|
-
class ServiceProxySwComponentType(AtomicSwComponentType):
|
|
378
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
379
|
-
super().__init__(parent, short_name)
|
|
380
|
-
|
|
381
|
-
class ServiceSwComponentType(AtomicSwComponentType):
|
|
382
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
383
|
-
super().__init__(parent, short_name)
|
|
384
|
-
|
|
385
|
-
|
armodel/models/timing.py
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
from abc import ABCMeta
|
|
3
|
-
from typing import List
|
|
4
|
-
|
|
5
|
-
from armodel.models.ar_ref import RefType
|
|
6
|
-
|
|
7
|
-
from ..models.general_structure import Identifiable
|
|
8
|
-
from ..models.ar_object import ARObject
|
|
9
|
-
|
|
10
|
-
class EOCExecutableEntityRefAbstract(Identifiable):
|
|
11
|
-
__metaclass__ = ABCMeta
|
|
12
|
-
|
|
13
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
14
|
-
if type(self) == TimingConstraint:
|
|
15
|
-
raise NotImplementedError("TimingExtension is an abstract class.")
|
|
16
|
-
|
|
17
|
-
super().__init__(parent, short_name)
|
|
18
|
-
|
|
19
|
-
class EOCExecutableEntityRef(EOCExecutableEntityRefAbstract):
|
|
20
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
21
|
-
super().__init__(parent, short_name)
|
|
22
|
-
|
|
23
|
-
self.successor_refs = [] # List[RefType]
|
|
24
|
-
|
|
25
|
-
def addSuccessorRef(self, ref: RefType):
|
|
26
|
-
self.successor_refs.append(ref)
|
|
27
|
-
|
|
28
|
-
def getSuccessorRefs(self) -> List[RefType]:
|
|
29
|
-
return self.successor_refs
|
|
30
|
-
|
|
31
|
-
class TimingConstraint(Identifiable):
|
|
32
|
-
__metaclass__ = ABCMeta
|
|
33
|
-
|
|
34
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
35
|
-
if type(self) == TimingConstraint:
|
|
36
|
-
raise NotImplementedError("TimingExtension is an abstract class.")
|
|
37
|
-
|
|
38
|
-
super().__init__(parent, short_name)
|
|
39
|
-
|
|
40
|
-
self.timing_condition_ref = None # type: RefType
|
|
41
|
-
|
|
42
|
-
@property
|
|
43
|
-
def timingConditionRef(self) -> RefType:
|
|
44
|
-
return self.timing_condition_ref
|
|
45
|
-
|
|
46
|
-
@timingConditionRef.setter
|
|
47
|
-
def timingConditionRef(self, ref: RefType):
|
|
48
|
-
self.timing_condition_ref = ref
|
|
49
|
-
|
|
50
|
-
class ExecutionOrderConstraint(TimingConstraint):
|
|
51
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
52
|
-
super().__init__(parent, short_name)
|
|
53
|
-
|
|
54
|
-
self.ordered_elements = [] # type: List[EOCExecutableEntityRefAbstract]
|
|
55
|
-
|
|
56
|
-
def createEOCExecutableEntityRef(self, short_name: str)-> EOCExecutableEntityRef:
|
|
57
|
-
if short_name not in self.elements:
|
|
58
|
-
entity_ref = EOCExecutableEntityRef(self, short_name)
|
|
59
|
-
self.elements[short_name] = entity_ref
|
|
60
|
-
self.ordered_elements.append(entity_ref)
|
|
61
|
-
return self.elements[short_name]
|
|
62
|
-
|
|
63
|
-
def getOrderedElements(self) -> List[EOCExecutableEntityRefAbstract]:
|
|
64
|
-
return self.ordered_elements
|
|
65
|
-
|
|
66
|
-
class TimingExtension(Identifiable):
|
|
67
|
-
__metaclass__ = ABCMeta
|
|
68
|
-
|
|
69
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
70
|
-
if type(self) == TimingExtension:
|
|
71
|
-
raise NotImplementedError("TimingExtension is an abstract class.")
|
|
72
|
-
|
|
73
|
-
super().__init__(parent, short_name)
|
|
74
|
-
|
|
75
|
-
self.timing_requirements = [] # Type: List[TimingConstraint]
|
|
76
|
-
|
|
77
|
-
def createExecutionOrderConstraint(self, short_name: str)-> ExecutionOrderConstraint:
|
|
78
|
-
if short_name not in self.elements:
|
|
79
|
-
constraint = ExecutionOrderConstraint(self, short_name)
|
|
80
|
-
self.elements[short_name] = constraint
|
|
81
|
-
self.timing_requirements.append(constraint)
|
|
82
|
-
return self.elements[short_name]
|
|
83
|
-
|
|
84
|
-
def getTimingRequirements(self) -> List[TimingConstraint]:
|
|
85
|
-
return self.timing_requirements
|
|
86
|
-
|
|
87
|
-
class SwcTiming(TimingExtension):
|
|
88
|
-
def __init__(self, parent: ARObject, short_name: str):
|
|
89
|
-
super().__init__(parent, short_name)
|
|
90
|
-
|
|
91
|
-
|