armodel 1.6.1__py3-none-any.whl → 1.6.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. armodel/cli/arxml_dump_cli.py +31 -25
  2. armodel/cli/arxml_format_cli.py +1 -4
  3. armodel/cli/connector_update_cli.py +1 -1
  4. armodel/cli/swc_list_cli.py +1 -1
  5. armodel/lib/sw_component.py +3 -1
  6. armodel/lib/system_signal.py +3 -1
  7. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +123 -0
  8. armodel/models/{bsw_module_template.py → M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py} +115 -140
  9. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +21 -0
  10. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +52 -0
  11. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +78 -0
  12. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__init__.py +1 -0
  13. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +81 -0
  14. armodel/models/{m2/autosar_templates/common_structure/implementation_data_types.py → M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py} +20 -10
  15. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +108 -0
  16. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +96 -0
  17. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +72 -0
  18. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +22 -0
  19. armodel/models/{service_needs.py → M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py} +7 -7
  20. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +36 -0
  21. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +27 -0
  22. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +1 -0
  23. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +9 -0
  24. armodel/models/{m2/autosar_templates/common_structure → M2/AUTOSARTemplates/CommonStructure}/__init__.py +5 -2
  25. armodel/models/{m2/autosar_templates/generic_structure/abstract_structure.py → M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py} +25 -2
  26. armodel/models/{ar_package.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py} +113 -218
  27. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +16 -0
  28. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +1 -0
  29. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +55 -0
  30. armodel/models/{general_structure.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py} +37 -149
  31. armodel/models/{ar_object.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py} +163 -70
  32. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__init__.py +1 -0
  33. armodel/models/M2/AUTOSARTemplates/GenericStructure/__init__.py +1 -0
  34. armodel/models/{m2/autosar_templates/sw_component_template/communication.py → M2/AUTOSARTemplates/SWComponentTemplate/Communication.py} +22 -5
  35. armodel/models/{m2/autosar_templates/sw_component_template/components/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py} +2 -2
  36. armodel/models/{m2/autosar_templates/sw_component_template/components → M2/AUTOSARTemplates/SWComponentTemplate/Components}/__init__.py +10 -8
  37. armodel/models/{m2/autosar_templates/sw_component_template/composition/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py} +2 -2
  38. armodel/models/{m2/autosar_templates/sw_component_template/composition → M2/AUTOSARTemplates/SWComponentTemplate/Composition}/__init__.py +5 -5
  39. armodel/models/{m2/autosar_templates/sw_component_template/data_type/data_prototypes.py → M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py} +25 -7
  40. armodel/models/{datatype.py → M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py} +16 -74
  41. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__init__.py +1 -0
  42. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +177 -0
  43. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +11 -0
  44. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/access_count.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py} +2 -2
  45. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py} +7 -5
  46. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +24 -0
  47. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/instance_refs_usage.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py} +3 -3
  48. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py} +3 -3
  49. armodel/models/{per_instance_memory.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py} +5 -6
  50. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py} +3 -3
  51. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +23 -0
  52. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/trigger.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py} +2 -2
  53. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior}/__init__.py +9 -10
  54. armodel/models/{m2/autosar_templates/sw_component_template → M2/AUTOSARTemplates/SWComponentTemplate}/port_interface/__init__.py +12 -8
  55. armodel/models/{m2/autosar_templates/sw_component_template → M2/AUTOSARTemplates/SWComponentTemplate}/port_interface/instance_refs.py +2 -2
  56. armodel/models/{m2/autosar_templates/system_template/instance_refs.py → M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py} +2 -2
  57. armodel/models/{m2/autosar_templates/system_template → M2/AUTOSARTemplates/SystemTemplate}/__init__.py +4 -2
  58. armodel/models/{m2/autosar_templates/system_template → M2/AUTOSARTemplates/SystemTemplate}/data_mapping.py +2 -2
  59. armodel/models/{m2/autosar_templates/system_template → M2/AUTOSARTemplates/SystemTemplate}/network_management.py +7 -3
  60. armodel/models/{m2/autosar_templates/system_template → M2/AUTOSARTemplates/SystemTemplate}/transport_protocols.py +1 -1
  61. armodel/models/{m2/autosar_templates → M2/AUTOSARTemplates}/ecuc_description_template.py +10 -6
  62. armodel/models/M2/MSR/AsamHdo/AdminData.py +21 -0
  63. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +77 -0
  64. armodel/models/{m2_msr.py → M2/MSR/AsamHdo/ComputationMethod.py} +44 -28
  65. armodel/models/{global_constraints.py → M2/MSR/AsamHdo/Constraints/GlobalConstraints.py} +7 -4
  66. armodel/models/M2/MSR/AsamHdo/Constraints/__init__.py +1 -0
  67. armodel/models/M2/MSR/AsamHdo/SpecialData.py +63 -0
  68. armodel/models/{m2/msr/asam_hdo/units.py → M2/MSR/AsamHdo/Units.py} +6 -3
  69. armodel/models/M2/MSR/AsamHdo/__init__.py +1 -0
  70. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +30 -0
  71. armodel/models/M2/MSR/CalibrationData/__init__.py +1 -0
  72. armodel/models/{m2/msr/data_dictionary/auxillary_objects.py → M2/MSR/DataDictionary/AuxillaryObjects.py} +4 -2
  73. armodel/models/M2/MSR/DataDictionary/Axis.py +145 -0
  74. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +37 -0
  75. armodel/models/{m2/msr/data_dictionary/data_def_properties.py → M2/MSR/DataDictionary/DataDefProperties.py} +19 -9
  76. armodel/models/{record_layout.py → M2/MSR/DataDictionary/RecordLayout.py} +26 -25
  77. armodel/models/M2/MSR/DataDictionary/__init__.py +1 -0
  78. armodel/models/{annotation.py → M2/MSR/Documentation/Annotation.py} +8 -8
  79. armodel/models/{m2/msr/documentation/block_elements.py → M2/MSR/Documentation/BlockElements.py} +2 -2
  80. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +17 -0
  81. armodel/models/{multilanguage_data.py → M2/MSR/Documentation/TextModel/MultilanguageData.py} +21 -30
  82. armodel/models/M2/MSR/Documentation/TextModel/__init__.py +2 -0
  83. armodel/models/M2/MSR/Documentation/__init__.py +3 -0
  84. armodel/models/M2/MSR/__init__.py +1 -0
  85. armodel/models/M2/__init__.py +1 -0
  86. armodel/models/__init__.py +6 -23
  87. armodel/models/fibex/can_communication.py +3 -2
  88. armodel/models/fibex/fibex_4_multiplatform.py +5 -3
  89. armodel/models/fibex/fibex_core/core_communication.py +9 -3
  90. armodel/models/fibex/fibex_core/core_topology.py +7 -3
  91. armodel/models/fibex/lin_communication.py +5 -1
  92. armodel/models/rpt_scenario.py +2 -2
  93. armodel/models/sw_component.py +19 -14
  94. armodel/models/timing.py +3 -3
  95. armodel/parser/abstract_arxml_parser.py +8 -4
  96. armodel/parser/arxml_parser.py +120 -86
  97. armodel/parser/connector_xlsx_parser.py +6 -2
  98. armodel/report/connector_xls_report.py +2 -1
  99. armodel/tests/test_armodel/models/test_ar_object.py +2 -1
  100. armodel/tests/test_armodel/models/test_ar_package.py +20 -8
  101. armodel/tests/test_armodel/models/test_ar_ref.py +7 -5
  102. armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -1
  103. armodel/tests/test_armodel/models/test_common_structure.py +11 -5
  104. armodel/tests/test_armodel/models/test_data_dictionary.py +2 -2
  105. armodel/tests/test_armodel/models/test_data_prototype.py +7 -3
  106. armodel/tests/test_armodel/models/test_datatype.py +22 -8
  107. armodel/tests/test_armodel/models/test_general_structure.py +12 -2
  108. armodel/tests/test_armodel/models/test_implementation.py +3 -2
  109. armodel/tests/test_armodel/models/test_m2_msr.py +4 -2
  110. armodel/tests/test_armodel/models/test_port_interface.py +16 -6
  111. armodel/tests/test_armodel/models/test_port_prototype.py +1 -1
  112. armodel/tests/test_armodel/parser/test_parse_bswmd.py +3 -1
  113. armodel/tests/test_armodel/parser/test_sw_components.py +2 -2
  114. armodel/tests/test_armodel/parser/test_system.py +30 -0
  115. armodel/writer/abstract_arxml_writer.py +5 -2
  116. armodel/writer/arxml_writer.py +100 -67
  117. {armodel-1.6.1.dist-info → armodel-1.6.3.dist-info}/METADATA +366 -356
  118. armodel-1.6.3.dist-info/RECORD +148 -0
  119. {armodel-1.6.1.dist-info → armodel-1.6.3.dist-info}/WHEEL +1 -1
  120. armodel/lib/data_analyzer.py +0 -34
  121. armodel/models/ar_ref.py +0 -25
  122. armodel/models/calibration.py +0 -119
  123. armodel/models/common_structure.py +0 -272
  124. armodel/models/communication.py +0 -17
  125. armodel/models/data_def_properties.py +0 -16
  126. armodel/models/data_dictionary.py +0 -59
  127. armodel/models/data_prototype.py +0 -103
  128. armodel/models/ecuc_parameter_def_template.py +0 -0
  129. armodel/models/end_to_end_protection.py +0 -67
  130. armodel/models/fibex/fibex_core.py +0 -341
  131. armodel/models/fibex/lin_topology.py +0 -7
  132. armodel/models/implementation.py +0 -135
  133. armodel/models/internal_behavior.py +0 -63
  134. armodel/models/m2/autosar_templates/common_structure/constants.py +0 -0
  135. armodel/models/m2/autosar_templates/common_structure/implementation.py +0 -21
  136. armodel/models/m2/autosar_templates/generic_structure/__init__.py +0 -0
  137. armodel/models/m2/autosar_templates/sw_component_template/__init__.py +0 -0
  138. armodel/models/m2/autosar_templates/sw_component_template/data_type/__init__.py +0 -0
  139. armodel/models/m2/autosar_templates/sw_component_template/port_interface.py +0 -236
  140. armodel/models/m2/msr/__init__.py +0 -0
  141. armodel/models/m2/msr/asam_hdo/__init__.py +0 -0
  142. armodel/models/m2/msr/data_dictionary/__init__.py +0 -0
  143. armodel/models/m2/msr/documentation/__init__.py +0 -0
  144. armodel/models/mode_declaration.py +0 -8
  145. armodel/models/port_interface.py +0 -165
  146. armodel/models/port_prototype.py +0 -6
  147. armodel/models/service_mapping.py +0 -11
  148. armodel/models/system_template/__init__.py +0 -0
  149. armodel/models/system_template/network_management.py +0 -7
  150. armodel/models/system_template/transport_protocols.py +0 -7
  151. armodel/models/unit.py +0 -14
  152. armodel-1.6.1.dist-info/RECORD +0 -140
  153. /armodel/models/{m2 → M2/AUTOSARTemplates/SWComponentTemplate}/__init__.py +0 -0
  154. /armodel/models/{m2/autosar_templates → M2/AUTOSARTemplates}/__init__.py +0 -0
  155. {armodel-1.6.1.dist-info → armodel-1.6.3.dist-info}/LICENSE +0 -0
  156. {armodel-1.6.1.dist-info → armodel-1.6.3.dist-info}/entry_points.txt +0 -0
  157. {armodel-1.6.1.dist-info → armodel-1.6.3.dist-info}/top_level.txt +0 -0
@@ -2,46 +2,52 @@ import getopt
2
2
  import sys
3
3
  import logging
4
4
 
5
- from ..models import AUTOSAR, ARPackage, VariableAccess, SwComponentType, DataTypeMappingSet
5
+ from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
6
+
7
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import PPortPrototype, PortPrototype, RPortPrototype
8
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
9
+ from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswInternalBehavior, BswModuleEntity
10
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.DataElements import VariableAccess
11
+ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
12
+ from ..models import AUTOSAR, SwComponentType
6
13
  from ..models import SwcInternalBehavior, ImplementationDataType
7
- from ..models import BswModuleDescription, BswInternalBehavior, BswModuleEntity, BswModuleEntry
8
- from ..models import PortPrototype, RPortPrototype, PPortPrototype
14
+ from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
9
15
  from ..models import SenderReceiverInterface, ClientServerInterface
10
16
  from ..parser import ARXMLParser
11
17
 
12
18
  def show_variable_access(indent:int, variable_access: VariableAccess):
13
- if (variable_access.accessed_variable_ref != None):
14
- accessed_variable_ref = variable_access.accessed_variable_ref
15
- if (accessed_variable_ref.autosar_variable_in_impl_datatype != None):
16
- autosar_variable_in_impl_datatype = accessed_variable_ref.autosar_variable_in_impl_datatype
17
- print("%s: %s" % (" " * indent, autosar_variable_in_impl_datatype.port_prototype.value))
18
- print("%s: %s" % (" " * indent, autosar_variable_in_impl_datatype.target_data_prototype.value))
19
+ if (variable_access.getAccessedVariableRef() != None):
20
+ accessed_variable_ref = variable_access.getAccessedVariableRef()
21
+ if (accessed_variable_ref.getAutosarVariableInImplDatatype() != None):
22
+ autosar_variable_in_impl_datatype = accessed_variable_ref.getAutosarVariableInImplDatatype()
23
+ print("%s: %s" % (" " * indent, autosar_variable_in_impl_datatype.getPortPrototypeRef().getValue()))
24
+ print("%s: %s" % (" " * indent, autosar_variable_in_impl_datatype.getTargetDataPrototypeRef().getValue()))
19
25
 
20
26
  def show_port(indent:int, port_prototype: PortPrototype):
21
27
  if (isinstance(port_prototype, RPortPrototype)):
22
- print("%s-RPort: %s (%s)" % (" " * indent, port_prototype.short_name, port_prototype.required_interface_tref.value))
28
+ print("%s-RPort: %s (%s)" % (" " * indent, port_prototype.short_name, port_prototype.getRequiredInterfaceTRef().getValue()))
23
29
  for client_com_spec in port_prototype.getClientComSpecs():
24
- print("%s : %s (ClientComSpec)" % (" " * (indent + 2), client_com_spec.operationRef.value))
30
+ print("%s : %s (ClientComSpec)" % (" " * (indent + 2), client_com_spec.getOperationRef().getValue()))
25
31
  for com_spec in port_prototype.getNonqueuedReceiverComSpecs():
26
- print("%s : %s (NonqueuedReceiverComSpec)" % (" " * (indent + 2), com_spec.dataElementRef.value))
32
+ print("%s : %s (NonqueuedReceiverComSpec)" % (" " * (indent + 2), com_spec.getDataElementRef().getValue()))
27
33
  elif (isinstance(port_prototype, PPortPrototype)):
28
- print("%s-PPort: %s (%s)" % (" " * indent, port_prototype.short_name, port_prototype.provided_interface_tref.value))
34
+ print("%s-PPort: %s (%s)" % (" " * indent, port_prototype.short_name, port_prototype.getProvidedInterfaceTRef().getValue()))
29
35
  for com_spec in port_prototype.getNonqueuedSenderComSpecs():
30
- print("%s : %s (NonqueuedSenderComSpec)" % (" " * (indent + 2), com_spec.dataElementRef.value))
36
+ print("%s : %s (NonqueuedSenderComSpec)" % (" " * (indent + 2), com_spec.getDataElementRef().getValue()))
31
37
  else:
32
38
  raise ValueError("Unsupported Port prototype")
33
39
 
34
40
  def show_type(indent: int, data_type: ImplementationDataType):
35
41
  print("%s-Implementation Type: %s (%s)" % (" " * indent, data_type.short_name, data_type._parent.full_name))
36
- print("%s : %s" % (" " * indent, data_type.category))
37
- if (data_type.swDataDefProps != None):
38
- if (data_type.swDataDefProps.baseTypeRef != None):
39
- base_type_ref = data_type.swDataDefProps.baseTypeRef
40
- print("%s : %s (%s)" % (" " * indent, base_type_ref.value, base_type_ref.dest))
42
+ print("%s : %s" % (" " * indent, data_type.getCategory()))
43
+ if (data_type.getSwDataDefProps() != None):
44
+ if (data_type.getSwDataDefProps().getBaseTypeRef() != None):
45
+ base_type_ref = data_type.getSwDataDefProps().getBaseTypeRef()
46
+ print("%s : %s (%s)" % (" " * indent, base_type_ref.getValue(), base_type_ref.getDest()))
41
47
 
42
- if (data_type.swDataDefProps.implementationDataTypeRef != None):
43
- implementation_data_type_ref = data_type.swDataDefProps.implementationDataTypeRef
44
- print("%s : %s (%s)" % (" " * indent, implementation_data_type_ref.value, implementation_data_type_ref.dest))
48
+ if (data_type.getSwDataDefProps().getImplementationDataTypeRef() != None):
49
+ implementation_data_type_ref = data_type.getSwDataDefProps().getImplementationDataTypeRef()
50
+ print("%s : %s (%s)" % (" " * indent, implementation_data_type_ref.getValue(), implementation_data_type_ref.getDest()))
45
51
 
46
52
  def show_data_type_mapping(indent: int, mapping_set: DataTypeMappingSet):
47
53
  print("%s- Data Mapping Set <%s>:" % (" " * indent, mapping_set.short_name))
@@ -63,8 +69,8 @@ def show_behavior(indent:int, behavior: SwcInternalBehavior):
63
69
  for server_call_point in runnable.getServerCallPoints():
64
70
  print("%s-scp : %s" % (" " * (indent + 4), variable_access.short_name))
65
71
  if (server_call_point.operation_iref != None):
66
- print("%s: %s" % (" " * (indent + 9), server_call_point.operation_iref.conext_r_port.value))
67
- print("%s: %s" % (" " * (indent + 9), server_call_point.operation_iref.target_required_operation.value))
72
+ print("%s: %s" % (" " * (indent + 9), server_call_point.getOperationIRef().getContextRPortRef().getValue()))
73
+ print("%s: %s" % (" " * (indent + 9), server_call_point.getOperationIRef().getTargetRequiredOperationRef().getValue()))
68
74
  for event in behavior.getOperationInvokedEvents():
69
75
  print(" - OperationInvokedEvent : %s" % event.short_name)
70
76
  print(" : %s" % (event.start_on_event_ref.value))
@@ -84,7 +90,7 @@ def show_sw_component(indent: int, sw_component: SwComponentType):
84
90
  def show_sender_receiver_interface(indent: int, sr_interface: SenderReceiverInterface):
85
91
  print("%s%s" % (" " * indent, sr_interface.short_name))
86
92
  for data_element in sr_interface.getDataElements():
87
- print("%sData Element:%s (%s) " % (" " * (indent + 2), data_element.short_name, data_element.type_ref.value))
93
+ print("%sData Element:%s (%s) " % (" " * (indent + 2), data_element.short_name, data_element.getTypeTRef().getValue()))
88
94
 
89
95
  def show_client_server_interface(indent: int, cs_interface: ClientServerInterface):
90
96
  print("%s%s" % (" " * indent, cs_interface.short_name))
@@ -5,11 +5,8 @@ import sys
5
5
  import os.path
6
6
 
7
7
 
8
- from ..models.ar_package import AUTOSAR
8
+ from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
9
9
  from ..parser.arxml_parser import ARXMLParser
10
- from ..parser.connector_xlsx_parser import ConnectorXlsReader
11
-
12
- from ..lib import InputFileParser
13
10
  from ..writer import ARXMLWriter
14
11
 
15
12
  def main():
@@ -5,7 +5,7 @@ import sys
5
5
  import os.path
6
6
 
7
7
 
8
- from ..models.ar_package import AUTOSAR
8
+ from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
9
9
  from ..parser.arxml_parser import ARXMLParser
10
10
  from ..parser.connector_xlsx_parser import ConnectorXlsReader
11
11
 
@@ -4,7 +4,7 @@ import logging
4
4
  import sys
5
5
  import os.path
6
6
 
7
- from armodel import AUTOSAR, ARPackage
7
+ from armodel import AUTOSAR
8
8
  from armodel.parser import ARXMLParser
9
9
 
10
10
  from ..lib import InputFileParser, SwComponentAnalyzer
@@ -1,7 +1,9 @@
1
1
  import logging
2
2
 
3
3
  from typing import List
4
- from ..models import AUTOSAR, ARPackage, AtomicSwComponentType, CompositionSwComponentType
4
+
5
+ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
6
+ from ..models import AUTOSAR, AtomicSwComponentType, CompositionSwComponentType
5
7
 
6
8
  class SwComponentAnalyzer:
7
9
  def __init__(self) -> None:
@@ -1,7 +1,9 @@
1
1
  import logging
2
2
  from typing import List
3
3
 
4
- from ..models.ar_package import AUTOSAR, ARPackage
4
+ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
5
+
6
+ from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
5
7
  from ..models.fibex.fibex_core.core_communication import SystemSignal
6
8
 
7
9
  class SystemSignalAnalyzer:
@@ -0,0 +1,123 @@
1
+ from typing import Dict, List
2
+
3
+ from .SWComponentTemplate.Datatype.Datatypes import ApplicationDataType
4
+
5
+ from ..MSR.AsamHdo.BaseTypes import SwBaseType
6
+
7
+ from .GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement
8
+ from .GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
9
+ from .CommonStructure.ImplementationDataTypes import ImplementationDataType
10
+ from .GenericStructure.GeneralTemplateClasses.Identifiable import Referrable
11
+ from .SWComponentTemplate.Datatype.Datatypes import DataTypeMap
12
+
13
+ class AbstractAUTOSAR(CollectableElement):
14
+ def __init__(self):
15
+ super().__init__()
16
+
17
+ CollectableElement.__init__(self)
18
+
19
+ self.schema_location = ""
20
+ self._appl_impl_type_maps = {}
21
+ self._impl_appl_type_maps = {}
22
+
23
+
24
+ self._ar_packages = {} # type: Dict[str, ARPackage]
25
+ self.short_name_mappings = {} # type: Dict[str, str]
26
+
27
+ def reload(self):
28
+ pass
29
+
30
+ @property
31
+ def full_name(self):
32
+ return ""
33
+
34
+ def clear(self):
35
+ self._ar_packages = {}
36
+ self.elements = {}
37
+
38
+ def getElement(self, short_name: str) -> Referrable:
39
+ if (short_name in self._ar_packages):
40
+ return self._ar_packages[short_name]
41
+ return CollectableElement.getElement(self, short_name)
42
+
43
+ def getARPackages(self) -> List[ARPackage]:
44
+ #return list(filter(lambda e: isinstance(e, ARPackage), self.elements.values()))
45
+ return list(sorted(self._ar_packages.values(), key= lambda a: a.short_name))
46
+
47
+ def createARPackage(self, short_name: str) -> ARPackage:
48
+ if (short_name not in self._ar_packages):
49
+ ar_package = ARPackage(self, short_name)
50
+ self._ar_packages[short_name] = ar_package
51
+ return self._ar_packages[short_name]
52
+
53
+ def find(self, referred_name: str) -> Referrable:
54
+ short_name_list = referred_name.split("/")
55
+ element = AUTOSAR.getInstance()
56
+ for short_name in short_name_list:
57
+ if (short_name == ""):
58
+ continue
59
+ element = element.getElement(short_name)
60
+ if (element == None):
61
+ return element
62
+ # raise ValueError("The %s of reference <%s> does not exist." % (short_name, referred_name))
63
+ return element
64
+
65
+ def findByShortName(self, short_name: str) -> Referrable:
66
+ pass
67
+
68
+ def getDataType(self, data_type: ImplementationDataType) -> ImplementationDataType:
69
+ if (isinstance(data_type, ImplementationDataType) or isinstance(data_type, SwBaseType)):
70
+ if (data_type.category == ImplementationDataType.CATEGORY_TYPE_REFERENCE):
71
+ referred_type = self.find(data_type.swDataDefProps.implementationDataTypeRef.value)
72
+ return self.getDataType(referred_type)
73
+ if (data_type.category == ImplementationDataType.CATEGORY_DATA_REFERENCE):
74
+ if (data_type.swDataDefProps.swPointerTargetProps.target_category == "VALUE"):
75
+ referred_type = self.find(data_type.swDataDefProps.swPointerTargetProps.sw_data_def_props.baseTypeRef.value)
76
+ return self.getDataType(referred_type)
77
+ return data_type
78
+ else:
79
+ raise ValueError("%s is not ImplementationDataType." % data_type)
80
+
81
+ def addDataTypeMap(self, data_type_map: DataTypeMap):
82
+ if (data_type_map.application_data_type_ref is None) or (data_type_map.implementation_data_type_ref is None):
83
+ return
84
+ self._appl_impl_type_maps[data_type_map.application_data_type_ref.value] = data_type_map.implementation_data_type_ref.value
85
+ self._impl_appl_type_maps[data_type_map.implementation_data_type_ref.value] = data_type_map.application_data_type_ref.value
86
+
87
+ def convertToImplementationDataType(self, appl_data_type: str) -> ImplementationDataType:
88
+ if (appl_data_type not in self._appl_impl_type_maps.keys()):
89
+ raise IndexError("Invalid application data type <%s>" % appl_data_type)
90
+
91
+ return self.find(self._appl_impl_type_maps[appl_data_type])
92
+
93
+ def convertToApplicationDataType(self, impl_data_type: str) -> ApplicationDataType:
94
+ if (impl_data_type not in self._impl_appl_type_maps.keys()):
95
+ raise IndexError("Invalid Implementation data type <%s>" % impl_data_type)
96
+
97
+ return self.find(self._impl_appl_type_maps[impl_data_type])
98
+
99
+
100
+ class AUTOSAR (AbstractAUTOSAR):
101
+ __instance = None
102
+
103
+ @staticmethod
104
+ def getInstance():
105
+ if (AUTOSAR.__instance == None):
106
+ AUTOSAR()
107
+ return AUTOSAR.__instance
108
+
109
+ def new(self):
110
+ self.clear()
111
+
112
+ def __init__(self):
113
+ if (AUTOSAR.__instance != None):
114
+ raise Exception("The AUTOSAR is singleton!")
115
+
116
+ AUTOSAR.__instance = self
117
+
118
+ super().__init__()
119
+
120
+ class AUTOSARDoc(AbstractAUTOSAR):
121
+ def __init__(self):
122
+ super().__init__()
123
+