armodel 1.7.9__py3-none-any.whl → 1.8.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. armodel/cli/arxml_format_cli.py +1 -0
  2. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +50 -12
  3. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +14 -14
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +2 -3
  5. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +1 -1
  6. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +36 -34
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +1 -1
  8. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +4 -4
  9. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +3 -3
  10. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +5 -0
  11. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +3 -3
  12. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +3 -3
  13. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +86 -9
  14. armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1249 -0
  15. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +13 -10
  16. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +238 -225
  17. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +5 -4
  18. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +46 -25
  19. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +38 -3
  20. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +18 -20
  21. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -19
  22. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +4 -4
  23. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +71 -27
  24. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +27 -17
  25. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +172 -128
  26. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +11 -10
  27. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +11 -11
  28. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +16 -10
  29. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +2 -2
  30. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +6 -6
  31. armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +35 -0
  32. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +25 -0
  33. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +83 -0
  34. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +90 -38
  35. armodel/models/M2/MSR/AsamHdo/AdminData.py +101 -8
  36. armodel/models/__init__.py +2 -0
  37. armodel/models/utils/__init__.py +0 -0
  38. armodel/models/utils/uuid_mgr.py +23 -0
  39. armodel/parser/abstract_arxml_parser.py +13 -5
  40. armodel/parser/arxml_parser.py +412 -85
  41. armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +116 -0
  42. armodel/tests/test_armodel/models/test_Identifiable.py +85 -0
  43. armodel/tests/test_armodel/models/test_ar_object.py +85 -86
  44. armodel/tests/test_armodel/models/test_ar_package.py +70 -70
  45. armodel/tests/test_armodel/models/test_ar_ref.py +36 -36
  46. armodel/tests/test_armodel/models/test_common_structure.py +37 -35
  47. armodel/tests/test_armodel/models/test_datatype.py +140 -142
  48. armodel/tests/test_armodel/models/test_general_structure.py +19 -18
  49. armodel/tests/test_armodel/models/test_port_interface.py +2 -6
  50. armodel/tests/test_armodel/parser/test_arxml_parser.py +8 -8
  51. armodel/writer/abstract_arxml_writer.py +6 -2
  52. armodel/writer/arxml_writer.py +414 -57
  53. {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/METADATA +31 -1
  54. {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/RECORD +58 -51
  55. {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/LICENSE +0 -0
  56. {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/WHEEL +0 -0
  57. {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/entry_points.txt +0 -0
  58. {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/top_level.txt +0 -0
@@ -2,9 +2,7 @@ from typing import List
2
2
  import xml.etree.ElementTree as ET
3
3
  import os
4
4
 
5
- from armodel.models.M2.MSR.Documentation.TextModel.BlockElements.PaginationAndView import DocumentViewSelectable, Paginateable
6
-
7
- from ..models.M2.MSR.AsamHdo.AdminData import AdminData
5
+ from ..models.M2.MSR.AsamHdo.AdminData import AdminData, DocRevision, Modification
8
6
  from ..models.M2.MSR.AsamHdo.BaseTypes import BaseTypeDirectDefinition, SwBaseType
9
7
  from ..models.M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstrRule, InternalConstrs, PhysConstrs, DataConstr
10
8
  from ..models.M2.MSR.AsamHdo.ComputationMethod import CompuConstContent, CompuConstFormulaContent, CompuConstNumericContent, CompuMethod, Compu
@@ -29,6 +27,7 @@ from ..models.M2.MSR.Documentation.TextModel.BlockElements.ListElements import A
29
27
  from ..models.M2.MSR.Documentation.TextModel.LanguageDataModel import LLongName, LOverviewParagraph, LParagraph, LanguageSpecific
30
28
  from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph, MultiLanguageParagraph, MultiLanguagePlainText
31
29
  from ..models.M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
30
+ from ..models.M2.MSR.Documentation.TextModel.BlockElements.PaginationAndView import DocumentViewSelectable, Paginateable
32
31
 
33
32
  from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
34
33
  from ..models.M2.AUTOSARTemplates.BswModuleTemplate.BswBehavior import BswApiOptions, BswAsynchronousServerCallPoint, BswBackgroundEvent
@@ -48,12 +47,13 @@ from ..models.M2.AUTOSARTemplates.CommonStructure.Filter import DataFilter
48
47
  from ..models.M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatInstanceDescriptor, FlatMap
49
48
  from ..models.M2.AUTOSARTemplates.CommonStructure.Implementation import ImplementationProps, Code
50
49
  from ..models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity, InternalBehavior
51
- from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup, ModeRequestTypeMap, ModeDeclarationGroupPrototype
50
+ from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup, ModeDeclarationGroupPrototypeMapping
51
+ from ..models.M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeRequestTypeMap, ModeDeclarationGroupPrototype
52
52
  from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption import ResourceConsumption
53
53
  from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.MemorySectionUsage import MemorySection
54
54
  from ..models.M2.AUTOSARTemplates.CommonStructure.ResourceConsumption.StackUsage import RoughEstimateStackUsage, StackUsage
55
55
  from ..models.M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping, SwcBswRunnableMapping
56
- from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagEventDebounceMonitorInternal
56
+ from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import CryptoServiceNeeds, DiagEventDebounceMonitorInternal, DltUserNeeds, ServiceNeeds
57
57
  from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticCapabilityElement, DtcStatusChangeNotificationNeeds
58
58
  from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticCommunicationManagerNeeds, DiagnosticEventInfoNeeds
59
59
  from ..models.M2.AUTOSARTemplates.CommonStructure.ServiceNeeds import DiagnosticEventNeeds, DiagnosticRoutineNeeds, DiagnosticValueNeeds
@@ -67,11 +67,22 @@ from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.Execut
67
67
  from ..models.M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming, TimingExtension
68
68
  from ..models.M2.AUTOSARTemplates.CommonStructure.TriggerDeclaration import Trigger
69
69
  from ..models.M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import DiagnosticServiceTable
70
- from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucInstanceReferenceValue
70
+ from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucAbstractReferenceValue, EcucContainerValue, EcucDefinitionElement
71
+ from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleDef, EcucInstanceReferenceValue
71
72
  from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleConfigurationValues, EcucNumericalParamValue, EcucParameterValue
72
73
  from ..models.M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucReferenceValue, EcucTextualParamValue, EcucValueCollection
73
74
  from ..models.M2.AUTOSARTemplates.EcuResourceTemplate import HwDescriptionEntity, HwElement, HwPinGroup
74
75
  from ..models.M2.AUTOSARTemplates.EcuResourceTemplate.HwElementCategory import HwAttributeDef, HwCategory, HwType
76
+ from ..models.M2.AUTOSARTemplates.ECUCParameterDefTemplate import EcucAbstractConfigurationClass, EcucAbstractInternalReferenceDef
77
+ from ..models.M2.AUTOSARTemplates.ECUCParameterDefTemplate import EcucFunctionNameDef, EcucReferenceDef
78
+ from ..models.M2.AUTOSARTemplates.ECUCParameterDefTemplate import EcucAbstractReferenceDef, EcucSymbolicNameReferenceDef
79
+ from ..models.M2.AUTOSARTemplates.ECUCParameterDefTemplate import EcucAbstractStringParamDef, EcucBooleanParamDef
80
+ from ..models.M2.AUTOSARTemplates.ECUCParameterDefTemplate import EcucValueConfigurationClass
81
+ from ..models.M2.AUTOSARTemplates.ECUCParameterDefTemplate import EcucCommonAttributes, EcucEnumerationLiteralDef, EcucEnumerationParamDef
82
+ from ..models.M2.AUTOSARTemplates.ECUCParameterDefTemplate import EcucFloatParamDef, EcucIntegerParamDef
83
+ from ..models.M2.AUTOSARTemplates.ECUCParameterDefTemplate import EcucChoiceContainerDef, EcucStringParamDef
84
+ from ..models.M2.AUTOSARTemplates.ECUCParameterDefTemplate import EcucContainerDef, EcucParameterDef
85
+ from ..models.M2.AUTOSARTemplates.ECUCParameterDefTemplate import EcucMultiplicityConfigurationClass, EcucParamConfContainerDef
75
86
  from ..models.M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
76
87
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ElementCollection import Collection
77
88
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Describable, Identifiable
@@ -112,6 +123,8 @@ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes im
112
123
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import ApplicationRecordElement, AutosarDataPrototype
113
124
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Datatype.DataPrototypes import DataPrototype, ParameterDataPrototype, VariableDataPrototype
114
125
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ArgumentDataPrototype, ClientServerInterface, ClientServerInterfaceMapping
126
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ModeDeclarationMapping
127
+ from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ModeDeclarationMappingSet, ModeInterfaceMapping
115
128
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerOperation, ClientServerOperationMapping
116
129
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import DataPrototypeMapping, InvalidationPolicy, ModeSwitchInterface
117
130
  from ..models.M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ParameterInterface, PortInterface, PortInterfaceMappingSet
@@ -248,13 +261,45 @@ class ARXMLParser(AbstractARXMLParser):
248
261
  self.readSdgSdxRefs(element, sdg)
249
262
  return sdg
250
263
 
251
- def readSdgs(self, element: ET.Element, admin_data: AdminData):
264
+ def readAdminDataSdgs(self, element: ET.Element, admin_data: AdminData):
252
265
  for child_element in self.findall(element, "SDGS/*"):
253
266
  tag_name = self.getTagName(child_element)
254
267
  if tag_name == "SDG":
255
268
  admin_data.addSdg(self.getSdg(child_element))
256
269
  else:
257
270
  self.notImplemented("Unsupported SDG <%s>" % tag_name)
271
+
272
+ def readModification(self, element: ET.Element, modification: Modification):
273
+ modification.setChange(self.getMultiLanguageOverviewParagraph(element, "CHANGE")) \
274
+ .setReason(self.getMultiLanguageOverviewParagraph(element, "REASON"))
275
+
276
+ def readDocRevisionModifications(self, element: ET.Element, revision: DocRevision):
277
+ for child_element in self.findall(element, "MODIFICATIONS/*"):
278
+ tag_name = self.getTagName(child_element)
279
+ if tag_name == "MODIFICATION":
280
+ modification = Modification()
281
+ self.readModification(child_element, modification)
282
+ revision.addModification(modification)
283
+ else:
284
+ self.notImplemented("Unsupported Modification <%s>" % tag_name)
285
+
286
+ def readDocRevision(self, element: ET.Element, revision: DocRevision):
287
+ revision.setDate(self.getChildElementOptionalDataTime(element, "DATE")) \
288
+ .setIssuedBy(self.getChildElementOptionalLiteral(element, "ISSUED-BY")) \
289
+ .setRevisionLabel(self.getChildElementOptionalRevisionLabelString(element, "REVISION-LABEL")) \
290
+ .setState(self.getChildElementOptionalLiteral(element, "STATE"))
291
+
292
+ self.readDocRevisionModifications(element, revision)
293
+
294
+ def readAdminDataDocRevisions(self, element: ET.Element, admin_data: AdminData):
295
+ for child_element in self.findall(element, "DOC-REVISIONS/*"):
296
+ tag_name = self.getTagName(child_element)
297
+ if tag_name == "DOC-REVISION":
298
+ revision = DocRevision()
299
+ self.readDocRevision(child_element, revision)
300
+ admin_data.addDocRevision(revision)
301
+ else:
302
+ self.notImplemented("Unsupported DocRevision <%s>" % tag_name)
258
303
 
259
304
  def getAdminData(self, element: ET.Element, key: str) -> AdminData:
260
305
  admin_data = None
@@ -265,7 +310,8 @@ class ARXMLParser(AbstractARXMLParser):
265
310
  admin_data.setLanguage(self.getChildElementOptionalLiteral(child_element, "LANGUAGE")) \
266
311
  .setUsedLanguages(self.getMultiLanguagePlainText(child_element, "USED-LANGUAGES"))
267
312
 
268
- self.readSdgs(child_element, admin_data)
313
+ self.readAdminDataSdgs(child_element, admin_data)
314
+ self.readAdminDataDocRevisions(child_element, admin_data)
269
315
  return admin_data
270
316
 
271
317
  def readReferrable(self, element: ET.Element, referrable: Referrable):
@@ -367,7 +413,7 @@ class ARXMLParser(AbstractARXMLParser):
367
413
  for child_element in self.findall(element, "%s/VARIABLE-ACCESS" % key):
368
414
  short_name = self.getShortName(child_element)
369
415
 
370
- self.logger.debug("readVariableAccesses %s" % short_name)
416
+ # self.logger.debug("Read VariableAccesses %s" % short_name)
371
417
 
372
418
  if (key == "DATA-RECEIVE-POINT-BY-ARGUMENTS"):
373
419
  variable_access = parent.createDataReceivePointByArgument(short_name)
@@ -400,7 +446,7 @@ class ARXMLParser(AbstractARXMLParser):
400
446
  ref = self.getChildElementOptionalRefType(child_element, "BSW-MODULE-ENTRY-REF")
401
447
  if (ref is not None):
402
448
  parent.addImplementedEntryRef(ref)
403
- self.logger.debug("ImplementedEntry <%s> of BswModuleDescription <%s> has been added", ref.value, parent.getShortName())
449
+ # self.logger.debug("ImplementedEntry <%s> of BswModuleDescription <%s> has been added", ref.value, parent.getShortName())
404
450
 
405
451
  def readModeDeclarationGroupPrototype(self, element: ET.Element, prototype: ModeDeclarationGroupPrototype):
406
452
  self.readIdentifiable(element, prototype)
@@ -429,7 +475,7 @@ class ARXMLParser(AbstractARXMLParser):
429
475
  entity.addCanEnterExclusiveAreaRef(ref)
430
476
 
431
477
  def readExecutableEntity(self, element: ET.Element, entity: ExecutableEntity):
432
- self.logger.debug("readExecutableEntity %s" % entity.getShortName())
478
+ # self.logger.debug("Read ExecutableEntity %s" % entity.getShortName())
433
479
  self.readIdentifiable(element, entity)
434
480
  self.readCanEnterExclusiveAreaRefs(element, entity)
435
481
  entity.setMinimumStartInterval(self.getChildElementOptionalFloatValue(element, "MINIMUM-START-INTERVAL")) \
@@ -448,7 +494,7 @@ class ARXMLParser(AbstractARXMLParser):
448
494
  self.readBswEvent(element, event)
449
495
 
450
496
  def readBswModeSwitchEvent(self, element: ET.Element, event: BswModeSwitchEvent):
451
- self.logger.debug("Read BswModeSwitchEvent <%s>" % event.getShortName())
497
+ # self.logger.debug("Read BswModeSwitchEvent <%s>" % event.getShortName())
452
498
  # Read the Inherit BswScheduleEvent
453
499
  self.readBswScheduleEvent(element, event)
454
500
 
@@ -463,13 +509,13 @@ class ARXMLParser(AbstractARXMLParser):
463
509
  self.logger.debug(" Period: <%f, %s>" % (event.getPeriod().getValue(), event.getPeriod().getText()))
464
510
 
465
511
  def readBswDataReceivedEvent(self, element: ET.Element, event: BswDataReceivedEvent):
466
- self.logger.debug("Read BswDataReceivedEvent <%s>" % event.getShortName())
512
+ # self.logger.debug("Read BswDataReceivedEvent <%s>" % event.getShortName())
467
513
  # Read the Inherit BswScheduleEvent
468
514
  self.readBswScheduleEvent(element, event)
469
515
  event.setDataRef(self.getChildElementOptionalRefType(element, "DATA-REF"))
470
516
 
471
517
  def readBswInternalTriggerOccurredEvent(self, element: ET.Element, event: BswInternalTriggerOccurredEvent):
472
- self.logger.debug("Read BswInternalTriggerOccurredEvent <%s>" % event.getShortName())
518
+ # self.logger.debug("Read BswInternalTriggerOccurredEvent <%s>" % event.getShortName())
473
519
  # Read the Inherit BswScheduleEvent
474
520
  self.readBswScheduleEvent(element, event)
475
521
  event.setEventSourceRef(self.getChildElementOptionalRefType(element, "EVENT-SOURCE-REF"))
@@ -566,9 +612,12 @@ class ARXMLParser(AbstractARXMLParser):
566
612
  else:
567
613
  self.raiseError("Unsupported assigned ports <%s>" % tag_name)
568
614
 
569
- def readNvBlockNeeds(self, element: ET.Element, needs: NvBlockNeeds):
570
- self.logger.debug("Read NvBlockNeeds <%s>" % needs.getShortName())
615
+ def readServiceNeeds(self, element: ET.Element, needs: ServiceNeeds):
571
616
  self.readIdentifiable(element, needs)
617
+
618
+ def readNvBlockNeeds(self, element: ET.Element, needs: NvBlockNeeds):
619
+ # self.logger.debug("Read NvBlockNeeds <%s>" % needs.getShortName())
620
+ self.readServiceNeeds(element, needs)
572
621
  needs.setCalcRamBlockCrc(self.getChildElementOptionalBooleanValue(element, "CALC-RAM-BLOCK-CRC")) \
573
622
  .setCheckStaticBlockId(self.getChildElementOptionalBooleanValue(element, "CHECK-STATIC-BLOCK-ID")) \
574
623
  .setNDataSets(self.getChildElementOptionalNumericalValue(element, "N-DATA-SETS")) \
@@ -590,21 +639,21 @@ class ARXMLParser(AbstractARXMLParser):
590
639
  .setWritingPriority(self.getChildElementOptionalLiteral(element, "WRITING-PRIORITY"))
591
640
 
592
641
  def readDiagnosticCapabilityElement(self, element: ET.Element, needs: DiagnosticCapabilityElement):
593
- self.readIdentifiable(element, needs)
642
+ self.readServiceNeeds(element, needs)
594
643
 
595
644
  def readDiagnosticCommunicationManagerNeeds(self, element: ET.Element, needs: DiagnosticCommunicationManagerNeeds):
596
- self.logger.debug("Read DiagnosticCommunicationManagerNeeds <%s>" % needs.getShortName())
645
+ # self.logger.debug("Read DiagnosticCommunicationManagerNeeds <%s>" % needs.getShortName())
597
646
  self.readDiagnosticCapabilityElement(element, needs)
598
647
  needs.setServiceRequestCallbackType(self.getChildElementOptionalLiteral(element, "SERVICE-REQUEST-CALLBACK-TYPE"))
599
648
 
600
649
  def readDiagnosticRoutineNeeds(self, element: ET.Element, needs: DiagnosticRoutineNeeds):
601
- self.logger.debug("Read DiagnosticRoutineNeeds %s" % needs.getShortName())
650
+ # self.logger.debug("Read DiagnosticRoutineNeeds %s" % needs.getShortName())
602
651
  self.readDiagnosticCapabilityElement(element, needs)
603
652
  needs.setDiagRoutineType(self.getChildElementOptionalLiteral(element, "DIAG-ROUTINE-TYPE")) \
604
653
  .setRidNumber(self.getChildElementOptionalIntegerValue(element, "RID-NUMBER"))
605
654
 
606
655
  def readDiagnosticValueNeeds(self, element: ET.Element, needs: DiagnosticValueNeeds):
607
- self.logger.debug("Read DiagnosticValueNeeds %s" % needs.getShortName())
656
+ # self.logger.debug("Read DiagnosticValueNeeds %s" % needs.getShortName())
608
657
  self.readDiagnosticCapabilityElement(element, needs)
609
658
  needs.setDataLength(self.getChildElementOptionalPositiveInteger(element, "DATA-LENGTH")) \
610
659
  .setDiagnosticValueAccess(self.getChildElementOptionalLiteral(element, "DIAGNOSTIC-VALUE-ACCESS")) \
@@ -625,32 +674,36 @@ class ARXMLParser(AbstractARXMLParser):
625
674
  self.notImplemented("Unsupported DiagEventDebounceAlgorithm <%s>" % tag_name)
626
675
 
627
676
  def readDiagnosticEventNeeds(self, element: ET.Element, needs: DiagnosticEventNeeds):
628
- self.logger.debug("Read DiagnosticEventNeeds <%s>" % needs.getShortName())
677
+ # self.logger.debug("Read DiagnosticEventNeeds <%s>" % needs.getShortName())
629
678
  self.readDiagnosticCapabilityElement(element, needs)
630
679
  self.readDiagEventDebounceAlgorithm(element, needs)
631
680
  needs.setDtcKind(self.getChildElementOptionalLiteral(element, "DTC-KIND")) \
632
681
  .setUdsDtcNumber(self.getChildElementOptionalIntegerValue(element, "UDS-DTC-NUMBER"))
633
682
 
634
683
  def readDiagnosticEventInfoNeeds(self, element: ET.Element, needs: DiagnosticEventInfoNeeds):
635
- self.logger.debug("Read DiagnosticEventInfoNeeds <%s>" % needs.getShortName())
684
+ # self.logger.debug("Read DiagnosticEventInfoNeeds <%s>" % needs.getShortName())
636
685
  self.readDiagnosticCapabilityElement(element, needs)
637
686
  needs.setDtcKind(self.getChildElementOptionalLiteral(element, "DTC-KIND"))
638
687
  needs.setUdsDtcNumber(self.getChildElementOptionalPositiveInteger(element, "UDS-DTC-NUMBER"))
639
688
 
640
689
  def readCryptoServiceNeeds(self, element: ET.Element, needs: CryptoServiceNeeds):
641
- self.logger.debug("Read CryptoServiceNeeds <%s>" % needs.getShortName())
642
- self.readIdentifiable(element, needs)
690
+ # self.logger.debug("Read CryptoServiceNeeds <%s>" % needs.getShortName())
691
+ self.readServiceNeeds(element, needs)
643
692
  needs.setMaximumKeyLength(self.getChildElementOptionalPositiveInteger(element, "MAXIMUM-KEY-LENGTH"))
644
693
 
645
694
  def readEcuStateMgrUserNeeds(self, element: ET.Element, needs: EcuStateMgrUserNeeds):
646
- self.logger.debug("Read EcuStateMgrUserNeeds %s" % needs.getShortName())
647
- self.readIdentifiable(element, needs)
695
+ # self.logger.debug("Read EcuStateMgrUserNeeds %s" % needs.getShortName())
696
+ self.readServiceNeeds(element, needs)
648
697
 
649
698
  def readDtcStatusChangeNotificationNeeds(self, element: ET.Element, needs: DtcStatusChangeNotificationNeeds):
650
- self.logger.debug("Read DtcStatusChangeNotificationNeeds %s" % needs.getShortName())
699
+ # self.logger.debug("Read DtcStatusChangeNotificationNeeds %s" % needs.getShortName())
651
700
  self.readDiagnosticCapabilityElement(element, needs)
652
701
  needs.setDtcFormatType(self.getChildElementOptionalLiteral(element, "DTC-FORMAT-TYPE"))
653
702
 
703
+ def readDltUserNeeds(self, element: ET.Element, needs: DltUserNeeds):
704
+ # self.logger.debug("Read DltUserNeeds %s" % needs.getShortName())
705
+ self.readServiceNeeds(element, needs)
706
+
654
707
  def readSwcServiceDependencyServiceNeeds(self, element: ET.Element, parent: SwcServiceDependency):
655
708
  for child_element in self.findall(element, "SERVICE-NEEDS/*"):
656
709
  tag_name = self.getTagName(child_element)
@@ -681,13 +734,16 @@ class ARXMLParser(AbstractARXMLParser):
681
734
  elif tag_name == "DTC-STATUS-CHANGE-NOTIFICATION-NEEDS":
682
735
  needs = parent.createDtcStatusChangeNotificationNeeds(self.getShortName(child_element))
683
736
  self.readDtcStatusChangeNotificationNeeds(child_element, needs)
737
+ elif tag_name == "DLT-USER-NEEDS":
738
+ needs = parent.createDltUserNeeds(self.getShortName(child_element))
739
+ self.readDltUserNeeds(child_element, needs)
684
740
  else:
685
741
  self.notImplemented("Unsupported service needs <%s>" % tag_name)
686
742
 
687
743
  def readSwcServiceDependency(self, element: ET.Element, parent: SwcInternalBehavior):
688
744
  short_name = self.getShortName(element)
689
745
  dependency = parent.createSwcServiceDependency(short_name)
690
- self.logger.debug("read SwcServiceDependency %s" % short_name)
746
+ # self.logger.debug("Read SwcServiceDependency %s" % short_name)
691
747
  self.readServiceDependency(element, dependency)
692
748
  self.readSwcServiceDependencyAssignedData(element, dependency)
693
749
  self.readSwcServiceDependencyAssignedPorts(element, dependency)
@@ -831,15 +887,15 @@ class ARXMLParser(AbstractARXMLParser):
831
887
  self.readBswModuleEntityIssuedTriggerRefs(element, entity)
832
888
 
833
889
  def readBswCalledEntity(self, element: ET.Element, entity: BswCalledEntity):
834
- self.logger.debug("read BswCalledEntity %s" % entity.getShortName())
890
+ # self.logger.debug("Read BswCalledEntity %s" % entity.getShortName())
835
891
  self.readBswModuleEntity(element, entity)
836
892
 
837
893
  def readBswSchedulableEntity(self, element: ET.Element, entity: BswSchedulableEntity):
838
- self.logger.debug("read BswSchedulableEntity %s" % entity.getShortName())
894
+ # self.logger.debug("Read BswSchedulableEntity %s" % entity.getShortName())
839
895
  self.readBswModuleEntity(element, entity)
840
896
 
841
897
  def readBswInterruptEntity(self, element: ET.Element, entity: BswInterruptEntity):
842
- self.logger.debug("read BswSchedulableEntity %s" % entity.getShortName())
898
+ # self.logger.debug("Read BswSchedulableEntity %s" % entity.getShortName())
843
899
  self.readBswModuleEntity(element, entity)
844
900
  entity.setInterruptCategory(self.getChildElementOptionalLiteral(element, "INTERRUPT-CATEGORY")) \
845
901
  .setInterruptSource(self.getChildElementOptionalLiteral(element, "INTERRUPT-SOURCE"))
@@ -1056,8 +1112,6 @@ class ARXMLParser(AbstractARXMLParser):
1056
1112
  .setExecutionContext(self.getChildElementOptionalLiteral(element, "EXECUTION-CONTEXT")) \
1057
1113
  .setSwServiceImplPolicy(self.getChildElementOptionalLiteral(element, "SW-SERVICE-IMPL-POLICY"))
1058
1114
 
1059
- self.logger.debug("read BswModuleEntry %s" % entry.getShortName())
1060
-
1061
1115
  def readEngineeringObject(self, element: ET.Element, engineering_obj: EngineeringObject):
1062
1116
  self.readARObjectAttributes(element, engineering_obj)
1063
1117
  engineering_obj.setShortLabel(self.getChildElementOptionalLiteral(element, "SHORT-LABEL")) \
@@ -1066,7 +1120,7 @@ class ARXMLParser(AbstractARXMLParser):
1066
1120
  def getAutosarEngineeringObject(self, element: ET.Element) -> AutosarEngineeringObject:
1067
1121
  obj = AutosarEngineeringObject()
1068
1122
  self.readEngineeringObject(element, obj)
1069
- self.logger.debug("getAutosarEngineeringObject %s", obj.short_label)
1123
+ # self.logger.debug("Get AutosarEngineeringObject %s", obj.short_label)
1070
1124
  return obj
1071
1125
 
1072
1126
  def readArtifactDescriptor(self, element: ET.Element, code_desc: Code):
@@ -1080,7 +1134,7 @@ class ARXMLParser(AbstractARXMLParser):
1080
1134
  def readCodeDescriptor(self, element: ET.Element, impl: Implementation):
1081
1135
  for child_element in self.findall(element, "CODE-DESCRIPTORS/CODE"):
1082
1136
  short_name = self.getShortName(child_element)
1083
- self.logger.debug("readCodeDescriptor %s" % short_name)
1137
+ # self.logger.debug("Read CodeDescriptor %s" % short_name)
1084
1138
  code_desc = impl.createCodeDescriptor(short_name)
1085
1139
  self.readIdentifiable(child_element, code_desc)
1086
1140
  self.readArtifactDescriptor(child_element, code_desc)
@@ -1101,7 +1155,7 @@ class ARXMLParser(AbstractARXMLParser):
1101
1155
  memory_section.setSize(self.getChildElementOptionalNumericalValue(child_element, "SIZE")) \
1102
1156
  .setSwAddrMethodRef(self.getChildElementOptionalRefType(child_element, "SW-ADDRMETHOD-REF")) \
1103
1157
  .setSymbol(self.getChildElementOptionalLiteral(child_element, "SYMBOL"))
1104
- self.logger.debug("read MemorySections %s" % memory_section.getShortName())
1158
+ # self.logger.debug("read MemorySections %s" % memory_section.getShortName())
1105
1159
 
1106
1160
  def readStackUsage(self, element: ET.Element, usage: StackUsage):
1107
1161
  self.logger.debug("read StackUsage %s" % usage.getShortName())
@@ -1226,16 +1280,16 @@ class ARXMLParser(AbstractARXMLParser):
1226
1280
  parent.addModeIRef(mode_iref)
1227
1281
 
1228
1282
  def readSynchronousServerCallPoint(self, element: ET.Element, parent: RunnableEntity):
1283
+ # self.logger.debug("readSynchronousServerCallPoint %s" % short_name)
1229
1284
  short_name = self.getShortName(element)
1230
- self.logger.debug("readSynchronousServerCallPoint %s" % short_name)
1231
1285
  server_call_point = parent.createSynchronousServerCallPoint(short_name)
1232
1286
  self.readIdentifiable(element, server_call_point)
1233
1287
  server_call_point.setTimeout(self.getChildElementOptionalFloatValue(element, "TIMEOUT"))
1234
1288
  self.readROperationIRef(element, "OPERATION-IREF", server_call_point)
1235
1289
 
1236
1290
  def readAsynchronousServerCallPoint(self, element: ET.Element, parent: RunnableEntity):
1291
+ # self.logger.debug("readAsynchronousServerCallPoint %s" % short_name)
1237
1292
  short_name = self.getShortName(element)
1238
- self.logger.debug("readAsynchronousServerCallPoint %s" % short_name)
1239
1293
  server_call_point = parent.createAsynchronousServerCallPoint(short_name)
1240
1294
  self.readIdentifiable(element, server_call_point)
1241
1295
  server_call_point.setTimeout(self.getChildElementOptionalFloatValue(element, "TIMEOUT"))
@@ -1388,7 +1442,7 @@ class ARXMLParser(AbstractARXMLParser):
1388
1442
  parent.setOperationIRef(operation_iref)
1389
1443
 
1390
1444
  def readOperationInvokedEvent(self, element: ET.Element, event: OperationInvokedEvent):
1391
- self.logger.debug("Read OperationInvokedEvent <%s>" % event.getShortName())
1445
+ # self.logger.debug("Read OperationInvokedEvent <%s>" % event.getShortName())
1392
1446
  self.readPOperationIRef(element, "OPERATION-IREF", event)
1393
1447
  self.readRTEEvent(element, event)
1394
1448
 
@@ -1446,43 +1500,43 @@ class ARXMLParser(AbstractARXMLParser):
1446
1500
  behavior.addPortAPIOption(option)
1447
1501
 
1448
1502
  def readTimingEvent(self, element: ET.Element, event: TimingEvent):
1449
- self.logger.debug("Read TimingEvent <%s>" % event.getShortName())
1503
+ # self.logger.debug("Read TimingEvent <%s>" % event.getShortName())
1450
1504
  self.readRTEEvent(element, event)
1451
1505
  event.setOffset(self.getChildElementOptionalTimeValue(element, "OFFSET")) \
1452
1506
  .setPeriod(self.getChildElementOptionalTimeValue(element, "PERIOD"))
1453
1507
 
1454
1508
  def readDataReceivedEvent(self, element: ET.Element, event: DataReceivedEvent):
1455
- self.logger.debug("Read DataReceivedEvent <%s>" % event.getShortName())
1509
+ # self.logger.debug("Read DataReceivedEvent <%s>" % event.getShortName())
1456
1510
  self.readRTEEvent(element, event)
1457
1511
  self.readRVariableInAtomicSwcInstanceRef(element, event)
1458
1512
 
1459
1513
  def readSwcModeSwitchEvent(self, element: ET.Element, event: SwcModeSwitchEvent):
1460
- self.logger.debug("Read SwcModeSwitchEvent <%s>" % event.getShortName())
1514
+ # self.logger.debug("Read SwcModeSwitchEvent <%s>" % event.getShortName())
1461
1515
  self.readRTEEvent(element, event)
1462
1516
  event.setActivation(self.getChildElementOptionalLiteral(element, "ACTIVATION"))
1463
1517
  self.readRModeInAtomicSwcInstanceRef(element, event)
1464
1518
 
1465
1519
  def readInternalTriggerOccurredEvent(self, element: ET.Element, event: InternalTriggerOccurredEvent):
1466
- self.logger.debug("Read InternalTriggerOccurredEvent <%s>" % event.getShortName())
1520
+ # self.logger.debug("Read InternalTriggerOccurredEvent <%s>" % event.getShortName())
1467
1521
  self.readRTEEvent(element, event)
1468
1522
  event.setEventSourceRef(self.getChildElementOptionalRefType(element, "EVENT-SOURCE-REF"))
1469
1523
 
1470
1524
  def readInitEvent(self, element, event: InitEvent):
1471
- self.logger.debug("Read InitEvent <%s>" % event.getShortName())
1525
+ # self.logger.debug("Read InitEvent <%s>" % event.getShortName())
1472
1526
  self.readRTEEvent(element, event)
1473
1527
 
1474
1528
  def readAsynchronousServerCallReturnsEvent(self, element, event: AsynchronousServerCallReturnsEvent):
1475
- self.logger.debug("Read AsynchronousServerCallReturnsEvent <%s>" % event.getShortName())
1529
+ # self.logger.debug("Read AsynchronousServerCallReturnsEvent <%s>" % event.getShortName())
1476
1530
  self.readRTEEvent(element, event)
1477
1531
  event.setActivationReasonRepresentationRef(self.getChildElementOptionalRefType(element, "EVENT-SOURCE-REF"))
1478
1532
 
1479
1533
  def readModeSwitchedAckEvent(self, element, event: ModeSwitchedAckEvent):
1480
- self.logger.debug("Read ModeSwitchedAckEvent <%s>" % event.getShortName())
1534
+ # self.logger.debug("Read ModeSwitchedAckEvent <%s>" % event.getShortName())
1481
1535
  self.readRTEEvent(element, event)
1482
1536
  event.setEventSourceRef(self.getChildElementOptionalRefType(element, "EVENT-SOURCE-REF"))
1483
1537
 
1484
1538
  def readBackgroundEvent(self, element, event: BackgroundEvent):
1485
- self.logger.debug("Read BackgroundEvent <%s>" % event.getShortName())
1539
+ # self.logger.debug("Read BackgroundEvent <%s>" % event.getShortName())
1486
1540
  self.readRTEEvent(element, event)
1487
1541
 
1488
1542
  def readSwcInternalBehaviorEvents(self, element: ET.Element, parent: SwcInternalBehavior):
@@ -1749,7 +1803,7 @@ class ARXMLParser(AbstractARXMLParser):
1749
1803
  self.readAutosarDataType(element, data_type)
1750
1804
 
1751
1805
  def readApplicationRecordElement(self, element: ET.Element, record_element: ApplicationRecordElement):
1752
- self.logger.debug("read ApplicationRecordElement %s" % record_element.getShortName())
1806
+ # self.logger.debug("Read ApplicationRecordElement %s" % record_element.getShortName())
1753
1807
  self.readApplicationCompositeElementDataPrototype(element, record_element)
1754
1808
 
1755
1809
  def readApplicationRecordDataTypeElements(self, element: ET.Element, parent: ApplicationRecordDataType):
@@ -1808,7 +1862,7 @@ class ARXMLParser(AbstractARXMLParser):
1808
1862
  return iref
1809
1863
 
1810
1864
  def getCompositeNetworkRepresentation(self, element: ET.Element) -> CompositeNetworkRepresentation:
1811
- self.logger.debug("getCompositeNetworkRepresentation")
1865
+ # self.logger.debug("getCompositeNetworkRepresentation")
1812
1866
  representation = CompositeNetworkRepresentation()
1813
1867
  representation.setLeafElementIRef(self.getApplicationCompositeElementInPortInterfaceInstanceRef(element, "LEAF-ELEMENT-IREF")) \
1814
1868
  .setNetworkRepresentation(self.getSwDataDefProps(element, "NETWORK-REPRESENTATION"))
@@ -1839,7 +1893,7 @@ class ARXMLParser(AbstractARXMLParser):
1839
1893
  value_list = None
1840
1894
  child_element = self.find(element, key)
1841
1895
  if child_element is not None:
1842
- self.logger.debug("getValueList %s" % key)
1896
+ # self.logger.debug("Get ValueList %s" % key)
1843
1897
  value_list = ValueList()
1844
1898
  self.readARObjectAttributes(child_element, value_list)
1845
1899
  value_list.setV(self.getChildElementOptionalFloatValue(child_element, "V"))
@@ -1849,7 +1903,7 @@ class ARXMLParser(AbstractARXMLParser):
1849
1903
  cont = None
1850
1904
  child_element = self.find(element, "SW-VALUE-CONT")
1851
1905
  if child_element is not None:
1852
- self.logger.debug("getSwValueCont")
1906
+ # self.logger.debug("Get SwValueCont")
1853
1907
  cont = SwValueCont()
1854
1908
  self.readARObjectAttributes(child_element, cont)
1855
1909
  cont.setUnitRef(self.getChildElementOptionalRefType(child_element, "UNIT-REF")) \
@@ -1931,7 +1985,7 @@ class ARXMLParser(AbstractARXMLParser):
1931
1985
  self.readProvidedComSpec(element, prototype)
1932
1986
 
1933
1987
  def readPPortPrototype(self, element: ET.Element, prototype: PPortPrototype):
1934
- self.logger.debug("Read PPortPrototype %s" % prototype.getShortName())
1988
+ # self.logger.debug("Read PPortPrototype %s" % prototype.getShortName())
1935
1989
  self.readIdentifiable(element, prototype)
1936
1990
  self.readAbstractRequiredPortPrototype(element, prototype)
1937
1991
  prototype.setProvidedInterfaceTRef(self.getChildElementOptionalRefType(element, "PROVIDED-INTERFACE-TREF"))
@@ -1940,13 +1994,13 @@ class ARXMLParser(AbstractARXMLParser):
1940
1994
  self.readRequiredComSpec(element, prototype)
1941
1995
 
1942
1996
  def readRPortPrototype(self, element: ET.Element, prototype: RPortPrototype):
1943
- self.logger.debug("Read RPortPrototype %s" % prototype.getShortName())
1997
+ # self.logger.debug("Read RPortPrototype %s" % prototype.getShortName())
1944
1998
  self.readIdentifiable(element, prototype)
1945
1999
  self.readAbstractProvidedPortPrototype(element, prototype)
1946
2000
  prototype.setRequiredInterfaceTRef(self.getChildElementOptionalRefType(element, "REQUIRED-INTERFACE-TREF"))
1947
2001
 
1948
2002
  def readPRPortPrototype(self, element: ET.Element, prototype: PRPortPrototype):
1949
- self.logger.debug("Read PRPortPrototype %s" % prototype.getShortName())
2003
+ # self.logger.debug("Read PRPortPrototype %s" % prototype.getShortName())
1950
2004
  self.readIdentifiable(element, prototype)
1951
2005
  self.readAbstractRequiredPortPrototype(element, prototype)
1952
2006
  self.readAbstractProvidedPortPrototype(element, prototype)
@@ -2093,6 +2147,7 @@ class ARXMLParser(AbstractARXMLParser):
2093
2147
  p_port_in_composition_instance_ref.setContextComponentRef(self.getChildElementOptionalRefType(element, "CONTEXT-COMPONENT-REF")) \
2094
2148
  .setTargetPPortRef(self.getChildElementOptionalRefType(element, "TARGET-P-PORT-REF"))
2095
2149
 
2150
+ '''
2096
2151
  self.logger.debug("PPortInCompositionInstanceRef")
2097
2152
  self.logger.debug(" CONTEXT-COMPONENT-REF DEST: %s, %s"
2098
2153
  % (p_port_in_composition_instance_ref.getContextComponentRef().getDest(),
@@ -2100,11 +2155,13 @@ class ARXMLParser(AbstractARXMLParser):
2100
2155
  self.logger.debug(" TARGET-P-PORT-REF DEST: %s, %s"
2101
2156
  % (p_port_in_composition_instance_ref.getTargetPPortRef().getDest(),
2102
2157
  p_port_in_composition_instance_ref.getTargetPPortRef().getValue()))
2158
+ '''
2103
2159
 
2104
2160
  def readRPortInCompositionInstanceRef(self, element, r_port_in_composition_instance_ref: RPortInCompositionInstanceRef):
2105
2161
  r_port_in_composition_instance_ref.setContextComponentRef(self.getChildElementOptionalRefType(element, "CONTEXT-COMPONENT-REF")) \
2106
2162
  .setTargetRPortRef(self.getChildElementOptionalRefType(element, "TARGET-R-PORT-REF"))
2107
2163
 
2164
+ '''
2108
2165
  self.logger.debug("RPortInCompositionInstanceRef")
2109
2166
  self.logger.debug(" CONTEXT-COMPONENT-REF DEST: %s, %s"
2110
2167
  % (r_port_in_composition_instance_ref.getContextComponentRef().getDest(),
@@ -2112,6 +2169,7 @@ class ARXMLParser(AbstractARXMLParser):
2112
2169
  self.logger.debug(" TARGET-P-PORT-REF DEST: %s, %s"
2113
2170
  % (r_port_in_composition_instance_ref.getTargetRPortRef().getDest(),
2114
2171
  r_port_in_composition_instance_ref.getTargetRPortRef().getValue()))
2172
+ '''
2115
2173
 
2116
2174
  def readAssemblySwConnectorProviderIRef(self, element: ET.Element, parent: AssemblySwConnector):
2117
2175
  child_element = self.find(element, "PROVIDER-IREF")
@@ -2134,7 +2192,7 @@ class ARXMLParser(AbstractARXMLParser):
2134
2192
  connector.setMappingRef(self.getChildElementOptionalRefType(element, "MAPPING-REF"))
2135
2193
 
2136
2194
  def readAssemblySwConnector(self, element: ET.Element, connector: AssemblySwConnector):
2137
- self.logger.debug("Read AssemblySwConnectors %s" % connector.getShortName())
2195
+ # self.logger.debug("Read AssemblySwConnectors %s" % connector.getShortName())
2138
2196
  self.readSwConnector(element, connector)
2139
2197
  self.readAssemblySwConnectorProviderIRef(element, connector)
2140
2198
  self.readAssemblySwConnectorRequesterIRef(element, connector)
@@ -2171,7 +2229,7 @@ class ARXMLParser(AbstractARXMLParser):
2171
2229
  self.raiseError("Unsupported child element of INNER-PORT-IREF")
2172
2230
 
2173
2231
  def readDelegationSwConnector(self, element, connector: DelegationSwConnector):
2174
- self.logger.debug("Read DelegationSwConnectors %s" % connector.getShortName())
2232
+ # self.logger.debug("Read DelegationSwConnectors %s" % connector.getShortName())
2175
2233
  self.readSwConnector(element, connector)
2176
2234
  self.readDelegationSwConnectorInnerPortIRef(element, connector)
2177
2235
 
@@ -2179,7 +2237,7 @@ class ARXMLParser(AbstractARXMLParser):
2179
2237
  self.raiseError("Invalid PortPrototype of DELEGATION-SW-CONNECTOR")
2180
2238
 
2181
2239
  connector.setOuterPortRef(self.getChildElementOptionalRefType(element, "OUTER-PORT-REF"))
2182
- self.logger.debug("OUTER-PORT-REF DEST: %s, %s" % (connector.getOuterPortRef().getDest(), connector.getOuterPortRef().getValue()))
2240
+ # self.logger.debug("OUTER-PORT-REF DEST: %s, %s" % (connector.getOuterPortRef().getDest(), connector.getOuterPortRef().getValue()))
2183
2241
 
2184
2242
  def readSwComponentPrototype(self, element: ET.Element, prototype: SwComponentPrototype):
2185
2243
  self.logger.debug("Read SwComponentPrototypes <%s>" % prototype.getShortName())
@@ -2197,7 +2255,6 @@ class ARXMLParser(AbstractARXMLParser):
2197
2255
 
2198
2256
  def readCompositionSwComponentTypeDataTypeMappingSet(self, element: ET.Element, parent: CompositionSwComponentType):
2199
2257
  child_element = self.find(element, "DATA-TYPE-MAPPING-REFS")
2200
- self.logger.debug("readDataTypeMappingSet")
2201
2258
  if child_element is not None:
2202
2259
  for ref in self.getChildElementRefTypeList(child_element, "DATA-TYPE-MAPPING-REF"):
2203
2260
  parent.addDataTypeMapping(ref)
@@ -2331,7 +2388,7 @@ class ARXMLParser(AbstractARXMLParser):
2331
2388
  self.readParameterInterfaceParameters(element, interface)
2332
2389
 
2333
2390
  def readClientServerInterface(self, element: ET.Element, cs_interface: ClientServerInterface):
2334
- self.logger.debug("Read readClientServerInterface <%s>" % cs_interface.getShortName())
2391
+ self.logger.debug("Read ClientServerInterface <%s>" % cs_interface.getShortName())
2335
2392
  self.readPortInterface(element, cs_interface)
2336
2393
  self.readClientServerInterfaceOperations(element, cs_interface)
2337
2394
  self.readPossibleErrors(element, cs_interface)
@@ -2366,7 +2423,7 @@ class ARXMLParser(AbstractARXMLParser):
2366
2423
  def readCompuConst(self, element: ET.Element, parent: CompuScale):
2367
2424
  child_element = self.find(element, "COMPU-CONST/VT")
2368
2425
  if (child_element is not None):
2369
- self.logger.debug("readCompuConst VT: %s" % child_element.text)
2426
+ # self.logger.debug("Read CompuConst VT: %s" % child_element.text)
2370
2427
  contents = CompuScaleConstantContents()
2371
2428
  contents.compuConst = CompuConst()
2372
2429
  contents.compuConst.compuConstContentType = CompuConstTextContent()
@@ -2376,13 +2433,13 @@ class ARXMLParser(AbstractARXMLParser):
2376
2433
 
2377
2434
  def readCompuNominatorDenominator(self, element: ET.Element, key: str, parent: CompuNominatorDenominator):
2378
2435
  for child_element in self.findall(element, "%s/V" % key):
2379
- self.logger.debug("readCompuNominatorDenominator - %s: %s" % (key, child_element.text))
2436
+ # self.logger.debug("Read CompuNominatorDenominator - %s: %s" % (key, child_element.text))
2380
2437
  parent.add_v(child_element.text)
2381
2438
 
2382
2439
  def readCompuRationCoeffs(self, element: ET.Element, parent: CompuScale):
2383
2440
  child_element = self.find(element, "COMPU-RATIONAL-COEFFS")
2384
2441
  if (child_element is not None):
2385
- self.logger.debug("readCompuRationCoeffs")
2442
+ # self.logger.debug("Read CompuRationCoeffs")
2386
2443
  contents = CompuScaleRationalFormula()
2387
2444
  contents.compuRationalCoeffs = CompuRationalCoeffs()
2388
2445
  contents.compuRationalCoeffs.compuDenominator = CompuNominatorDenominator()
@@ -2426,7 +2483,7 @@ class ARXMLParser(AbstractARXMLParser):
2426
2483
  return compu
2427
2484
 
2428
2485
  def readCompuMethod(self, element: ET.Element, compu_method: CompuMethod):
2429
- self.logger.debug("Read CompuMethods <%s>" % compu_method.getShortName())
2486
+ self.logger.debug("Read CompuMethod <%s>" % compu_method.getShortName())
2430
2487
  self.readIdentifiable(element, compu_method)
2431
2488
  compu_method.setUnitRef(self.getChildElementOptionalRefType(element, "UNIT-REF")) \
2432
2489
  .setCompuInternalToPhys(self.getCompu(element, "COMPU-INTERNAL-TO-PHYS")) \
@@ -2440,7 +2497,7 @@ class ARXMLParser(AbstractARXMLParser):
2440
2497
  parent.addRunnableMapping(mapping)
2441
2498
 
2442
2499
  def readSwcBswMapping(self, element: ET.Element, mapping: SwcBswMapping):
2443
- self.logger.debug("read SwcBswMappings %s" % mapping.getShortName())
2500
+ self.logger.debug("Read SwcBswMapping <%s>" % mapping.getShortName())
2444
2501
  self.readIdentifiable(element, mapping)
2445
2502
  mapping.setBswBehaviorRef(self.getChildElementOptionalRefType(element, "BSW-BEHAVIOR-REF"))
2446
2503
  self.readSwcBswMappingSwcBswRunnableMappings(element, mapping)
@@ -2467,7 +2524,7 @@ class ARXMLParser(AbstractARXMLParser):
2467
2524
  return value_spec
2468
2525
 
2469
2526
  def getTextValueSpecification(self, element: ET.Element) -> TextValueSpecification:
2470
- self.logger.debug("getTextValueSpecification")
2527
+ # self.logger.debug("Get TextValueSpecification")
2471
2528
  value_spec = TextValueSpecification()
2472
2529
  self.readValueSpecification(element, value_spec)
2473
2530
  value_spec.setShortLabel(self.getChildElementOptionalLiteral(element, "SHORT-LABEL")) \
@@ -2475,7 +2532,7 @@ class ARXMLParser(AbstractARXMLParser):
2475
2532
  return value_spec
2476
2533
 
2477
2534
  def getArrayValueSpecification(self, element: ET.Element) -> ArrayValueSpecification:
2478
- self.logger.debug("getArrayValueSpecification")
2535
+ # self.logger.debug("Get ArrayValueSpecification")
2479
2536
  value_spec = ArrayValueSpecification()
2480
2537
  self.readValueSpecification(element, value_spec)
2481
2538
  child_elements = element.findall("./xmlns:ELEMENTS/*", self.nsmap)
@@ -2484,7 +2541,7 @@ class ARXMLParser(AbstractARXMLParser):
2484
2541
  return value_spec
2485
2542
 
2486
2543
  def getConstantReference(self, element: ET.Element) -> ConstantReference:
2487
- self.logger.debug("getConstantReference")
2544
+ # self.logger.debug("getConstantReference")
2488
2545
  value_spec = ConstantReference()
2489
2546
  self.readValueSpecification(element, value_spec)
2490
2547
  value_spec.setConstantRef(self.getChildElementOptionalRefType(element, "CONSTANT-REF"))
@@ -2518,7 +2575,7 @@ class ARXMLParser(AbstractARXMLParser):
2518
2575
  return value_spec
2519
2576
 
2520
2577
  def readConstantSpecification(self, element: ET.Element, spec: ConstantSpecification):
2521
- self.logger.debug("readConstantSpecification %s" % spec.getShortName())
2578
+ self.logger.debug("Read ConstantSpecification <%s>" % spec.getShortName())
2522
2579
  self.readIdentifiable(element, spec)
2523
2580
  for child_element in self.findall(element, "VALUE-SPEC/*"):
2524
2581
  spec.setValueSpec(self.getValueSpecification(child_element, self.getTagName(child_element)))
@@ -2533,7 +2590,7 @@ class ARXMLParser(AbstractARXMLParser):
2533
2590
  parent.internalConstrs = constrs
2534
2591
 
2535
2592
  def readPhysConstrs(self, element: ET.Element, parent: DataConstrRule):
2536
- child_element = element.find("./xmlns:PHYS-CONSTRS", self.nsmap)
2593
+ child_element = self.find(element, "PHYS-CONSTRS")
2537
2594
  if child_element is not None:
2538
2595
  constrs = PhysConstrs()
2539
2596
  self.readARObjectAttributes(child_element, constrs)
@@ -2543,8 +2600,8 @@ class ARXMLParser(AbstractARXMLParser):
2543
2600
  parent.physConstrs = constrs
2544
2601
 
2545
2602
  def readDataConstrRule(self, element: ET.Element, parent: DataConstr):
2546
- for child_element in element.findall("./xmlns:DATA-CONSTR-RULES/xmlns:DATA-CONSTR-RULE", self.nsmap):
2547
- self.logger.debug("readDataConstrRule")
2603
+ for child_element in self.findall(element, "DATA-CONSTR-RULES/DATA-CONSTR-RULE"):
2604
+ # self.logger.debug("Read DataConstrRule")
2548
2605
  rule = DataConstrRule()
2549
2606
  self.readARObjectAttributes(child_element, rule)
2550
2607
  rule.constrLevel = self.getChildElementOptionalNumericalValue(child_element, "CONSTR-LEVEL")
@@ -2553,7 +2610,7 @@ class ARXMLParser(AbstractARXMLParser):
2553
2610
  parent.addDataConstrRule(rule)
2554
2611
 
2555
2612
  def readDataConstr(self, element: ET.Element, constr: DataConstr):
2556
- self.logger.debug("Read DataConstr <%s>" % constr.getShortName())
2613
+ # self.logger.debug("Read DataConstr <%s>" % constr.getShortName())
2557
2614
  self.readIdentifiable(element, constr)
2558
2615
  self.readDataConstrRule(element, constr)
2559
2616
 
@@ -4236,6 +4293,253 @@ class ARXMLParser(AbstractARXMLParser):
4236
4293
  self.readARElement(element, blueprint)
4237
4294
  blueprint.setInterfaceRef(self.getChildElementOptionalRefType(element, "INTERFACE-REF"))
4238
4295
 
4296
+ def readModeDeclarationMappingFirstModeRefs(self, element: ET.Element, mapping: ModeDeclarationMapping):
4297
+ for ref_link in self.getChildElementRefTypeList(element, "FIRST-MODE-REFS/FIRST-MODE-REF"):
4298
+ mapping.addFirstModeRef(ref_link)
4299
+
4300
+ def readModeDeclarationMapping(self, element: ET.Element, mapping: ModeDeclarationMapping):
4301
+ # self.logger.debug("Read ModeDeclarationMapping <%s>" % mapping.getShortName())
4302
+ self.readIdentifiable(element, mapping)
4303
+ self.readModeDeclarationMappingFirstModeRefs(element, mapping)
4304
+ mapping.setSecondModeRef(self.getChildElementOptionalRefType(element, "SECOND-MODE-REF"))
4305
+
4306
+ def readModeDeclarationMappingSetModeDeclarationMappings(self, element: ET.Element, mapping_set: ModeDeclarationMappingSet):
4307
+ for child_element in self.findall(element, "MODE-DECLARATION-MAPPINGS/*"):
4308
+ tag_name = self.getTagName(child_element)
4309
+ if tag_name == "MODE-DECLARATION-MAPPING":
4310
+ mapping = mapping_set.createModeDeclarationMapping(self.getShortName(child_element))
4311
+ self.readModeDeclarationMapping(child_element, mapping)
4312
+ else:
4313
+ self.notImplemented("Unsupported ModeDeclarationMapping <%s>" % tag_name)
4314
+
4315
+ def readModeDeclarationMappingSet(self, element: ET.Element, mapping_set: ModeDeclarationMappingSet):
4316
+ self.logger.debug("Read ModeDeclarationMappingSet <%s>" % mapping_set.getShortName())
4317
+ self.readARElement(element, mapping_set)
4318
+ self.readModeDeclarationMappingSetModeDeclarationMappings(element, mapping_set)
4319
+
4320
+ def readEcucDefinitionElement(self, element: ET.Element, def_element: EcucDefinitionElement):
4321
+ self.readIdentifiable(element, def_element)
4322
+ def_element.setLowerMultiplicity(self.getChildElementOptionalPositiveInteger(element, "LOWER-MULTIPLICITY"))
4323
+ def_element.setUpperMultiplicity(self.getChildElementOptionalPositiveInteger(element, "UPPER-MULTIPLICITY"))
4324
+ def_element.setScope(self.getChildElementOptionalLiteral(element, "SCOPE"))
4325
+
4326
+ def readEcucModuleDefSupportedConfigVariants(self, element: ET.Element, module_def: EcucModuleDef):
4327
+ for variant in self.getChildElementLiteralValueList(element, "SUPPORTED-CONFIG-VARIANTS/SUPPORTED-CONFIG-VARIANT"):
4328
+ module_def.addSupportedConfigVariant(variant)
4329
+
4330
+ def readEcucAbstractConfigurationClass(self, element: ET.Element, cfg_class: EcucAbstractConfigurationClass):
4331
+ self.readARObjectAttributes(element, cfg_class)
4332
+ cfg_class.setConfigClass(self.getChildElementOptionalLiteral(element, "CONFIG-CLASS"))
4333
+ cfg_class.setConfigVariant(self.getChildElementOptionalLiteral(element, "CONFIG-VARIANT"))
4334
+
4335
+ def readEcucMultiplicityConfigurationClass(self, element: ET.Element, cfg_class: EcucMultiplicityConfigurationClass):
4336
+ self.readEcucAbstractConfigurationClass(element, cfg_class)
4337
+
4338
+ def getEcucMultiplicityConfigurationClasses(self, element: ET.Element) -> List[EcucMultiplicityConfigurationClass]:
4339
+ cfg_classes = []
4340
+ for child_element in self.findall(element, "MULTIPLICITY-CONFIG-CLASSES/*"):
4341
+ tag_name = self.getTagName(child_element)
4342
+ if tag_name == "ECUC-MULTIPLICITY-CONFIGURATION-CLASS":
4343
+ cfg_class = EcucMultiplicityConfigurationClass()
4344
+ self.readEcucMultiplicityConfigurationClass(child_element, cfg_class)
4345
+ cfg_classes.append(cfg_class)
4346
+ else:
4347
+ self.notImplemented("Unsupported MultiplicityConfigClass <%s>" % tag_name)
4348
+ return cfg_classes
4349
+
4350
+ def readEcucContainerDef(self, element: ET.Element, container_def: EcucContainerDef):
4351
+ self.readEcucDefinitionElement(element, container_def)
4352
+ for cfg_class in self.getEcucMultiplicityConfigurationClasses(element):
4353
+ container_def.addMultiplicityConfigClass(cfg_class)
4354
+ container_def.setPostBuildVariantMultiplicity(self.getChildElementOptionalBooleanValue(element, "POST-BUILD-VARIANT-MULTIPLICITY"))
4355
+ container_def.setRequiresIndex(self.getChildElementOptionalBooleanValue(element, "REQUIRES-INDEX"))
4356
+ container_def.setMultipleConfigurationContainer(self.getChildElementOptionalBooleanValue(element, "MULTIPLE-CONFIGURATION-CONTAINER"))
4357
+
4358
+ def readEcucValueConfigurationClass(self, element: ET.Element, cfg_class: EcucValueConfigurationClass):
4359
+ self.readEcucAbstractConfigurationClass(element, cfg_class)
4360
+
4361
+ def getEcucValueConfigurationClasses(self, element: ET.Element) -> List[EcucValueConfigurationClass]:
4362
+ cfg_classes = []
4363
+ for child_element in self.findall(element, "VALUE-CONFIG-CLASSES/*"):
4364
+ tag_name = self.getTagName(child_element)
4365
+ if tag_name == "ECUC-VALUE-CONFIGURATION-CLASS":
4366
+ cfg_class = EcucValueConfigurationClass()
4367
+ self.readEcucValueConfigurationClass(child_element, cfg_class)
4368
+ cfg_classes.append(cfg_class)
4369
+ else:
4370
+ self.notImplemented("Unsupported ValueConfigClass <%s>" % tag_name)
4371
+ return cfg_classes
4372
+
4373
+ def readEcucCommonAttributes(self, element: ET.Element, common_attrs: EcucCommonAttributes):
4374
+ self.readEcucDefinitionElement(element, common_attrs)
4375
+ for cfg_class in self.getEcucMultiplicityConfigurationClasses(element):
4376
+ common_attrs.addMultiplicityConfigClass(cfg_class)
4377
+ common_attrs.setOrigin(self.getChildElementOptionalLiteral(element, "ORIGIN"))
4378
+ common_attrs.setPostBuildVariantMultiplicity(self.getChildElementOptionalBooleanValue(element, "POST-BUILD-VARIANT-MULTIPLICITY"))
4379
+ common_attrs.setPostBuildVariantValue(self.getChildElementOptionalBooleanValue(element, "POST-BUILD-VARIANT-VALUE"))
4380
+ common_attrs.setRequiresIndex(self.getChildElementOptionalBooleanValue(element, "REQUIRES-INDEX"))
4381
+ for cfg_class in self.getEcucValueConfigurationClasses(element):
4382
+ common_attrs.addValueConfigClass(cfg_class)
4383
+
4384
+ def readEcucParameterDef(self, element: ET.Element, param_def: EcucParameterDef):
4385
+ self.readEcucCommonAttributes(element, param_def)
4386
+ param_def.setDerivation(self.getChildElementOptionalLiteral(element, "DERIVATION"))
4387
+ param_def.setSymbolicNameValue(self.getChildElementOptionalBooleanValue(element, "SYMBOLIC-NAME-VALUE"))
4388
+ param_def.setWithAuto(self.getChildElementOptionalBooleanValue(element, "WITH-AUTO"))
4389
+
4390
+ def readEcucBooleanParamDef(self, element: ET.Element, param_def: EcucBooleanParamDef):
4391
+ self.readEcucParameterDef(element, param_def)
4392
+ param_def.setDefaultValue(self.getChildElementOptionalBooleanValue(element, "DEFAULT-VALUE"))
4393
+
4394
+ def readEcucAbstractStringParamDef(self, element: ET.Element, param_def: EcucAbstractStringParamDef):
4395
+ self.readEcucParameterDef(element, param_def)
4396
+ param_def.setDefaultValue(self.getChildElementOptionalLiteral(element, "DEFAULT-VALUE"))
4397
+ param_def.setMaxLength(self.getChildElementOptionalIntegerValue(element, "MAX-LENGTH"))
4398
+ param_def.setMinLength(self.getChildElementOptionalIntegerValue(element, "MIN-LENGTH"))
4399
+ param_def.setRegularExpression(self.getChildElementOptionalLiteral(element, "REGULAR-EXPRESSION"))
4400
+
4401
+ def readEcucStringParamDef(self, element: ET.Element, param_def: EcucStringParamDef):
4402
+ self.readEcucAbstractStringParamDef(element, param_def)
4403
+
4404
+ def readEcucIntegerParamDef(self, element: ET.Element, param_def: EcucIntegerParamDef):
4405
+ self.readEcucParameterDef(element, param_def)
4406
+ param_def.setDefaultValue(self.getChildElementOptionalIntegerValue(element, "DEFAULT-VALUE"))
4407
+ param_def.setMax(self.getChildElementOptionalIntegerValue(element, "MAX"))
4408
+ param_def.setMin(self.getChildElementOptionalIntegerValue(element, "MIN"))
4409
+
4410
+ def readEcucFloatParamDef(self, element: ET.Element, param_def: EcucFloatParamDef):
4411
+ self.readEcucParameterDef(element, param_def)
4412
+ param_def.setDefaultValue(self.getChildElementOptionalFloatValue(element, "DEFAULT-VALUE"))
4413
+ param_def.setMax(self.getChildLimitElement(element, "MAX"))
4414
+ param_def.setMin(self.getChildLimitElement(element, "MIN"))
4415
+
4416
+ def readEcucEnumerationLiteral(self, element: ET.Element, literal: EcucEnumerationLiteralDef):
4417
+ self.readIdentifiable(element, literal)
4418
+ literal.setOrigin(self.getChildElementOptionalLiteral(element, "ORIGIN"))
4419
+
4420
+ def readEcucEnumerationParamDefLiterals(self, element: ET.Element, literal_def: EcucEnumerationParamDef):
4421
+ for child_element in self.findall(element, "LITERALS/*"):
4422
+ tag_name = self.getTagName(child_element)
4423
+ if tag_name == "ECUC-ENUMERATION-LITERAL-DEF":
4424
+ literal = literal_def.createLiteral(self.getShortName(child_element))
4425
+ self.readEcucEnumerationLiteral(child_element, literal)
4426
+ else:
4427
+ self.notImplemented("Unsupported EnumerationLiteral <%s>" % tag_name)
4428
+
4429
+ def readEcucEnumerationParamDef(self, element: ET.Element, param_def: EcucEnumerationParamDef):
4430
+ self.readEcucParameterDef(element, param_def)
4431
+ param_def.setDefaultValue(self.getChildElementOptionalLiteral(element, "DEFAULT-VALUE"))
4432
+ self.readEcucEnumerationParamDefLiterals(element, param_def)
4433
+
4434
+ def readEcucFunctionNameDef(self, element: ET.Element, ref_def: EcucFunctionNameDef):
4435
+ self.readEcucAbstractStringParamDef(element, ref_def)
4436
+ child_element = self.find(element, "ECUC-FUNCTION-NAME-DEF-VARIANTS/ECUC-FUNCTION-NAME-DEF-CONDITIONAL")
4437
+ if child_element is not None:
4438
+ ref_def.setDefaultValue(self.getChildElementOptionalLiteral(child_element, "DEFAULT-VALUE"))
4439
+ ref_def.setMinLength(self.getChildElementOptionalIntegerValue(child_element, "MIN-LENGTH"))
4440
+ ref_def.setMaxLength(self.getChildElementOptionalIntegerValue(child_element, "MAX-LENGTH"))
4441
+
4442
+ def readEcucContainerDefParameters(self, element: ET.Element, container_def: EcucParamConfContainerDef):
4443
+ for child_element in self.findall(element, "PARAMETERS/*"):
4444
+ tag_name = self.getTagName(child_element)
4445
+ if tag_name == "ECUC-BOOLEAN-PARAM-DEF":
4446
+ param_def = container_def.createEcucBooleanParamDef(self.getShortName(child_element))
4447
+ self.readEcucBooleanParamDef(child_element, param_def)
4448
+ elif tag_name == "ECUC-STRING-PARAM-DEF":
4449
+ param_def = container_def.createEcucStringParamDef(self.getShortName(child_element))
4450
+ self.readEcucStringParamDef(child_element, param_def)
4451
+ elif tag_name == "ECUC-INTEGER-PARAM-DEF":
4452
+ param_def = container_def.createEcucIntegerParamDef(self.getShortName(child_element))
4453
+ self.readEcucIntegerParamDef(child_element, param_def)
4454
+ elif tag_name == "ECUC-FLOAT-PARAM-DEF":
4455
+ param_def = container_def.createEcucFloatParamDef(self.getShortName(child_element))
4456
+ self.readEcucFloatParamDef(child_element, param_def)
4457
+ elif tag_name == "ECUC-ENUMERATION-PARAM-DEF":
4458
+ param_def = container_def.createEcucEnumerationParamDef(self.getShortName(child_element))
4459
+ self.readEcucEnumerationParamDef(child_element, param_def)
4460
+ elif tag_name == "ECUC-FUNCTION-NAME-DEF":
4461
+ param_def = container_def.createEcucFunctionNameDef(self.getShortName(child_element))
4462
+ self.readEcucFunctionNameDef(child_element, param_def)
4463
+ else:
4464
+ self.notImplemented("Unsupported Parameter <%s>" % tag_name)
4465
+
4466
+ def readEcucAbstractReferenceDef(self, element: ET.Element, ref_def: EcucAbstractReferenceDef):
4467
+ self.readEcucCommonAttributes(element, ref_def)
4468
+ ref_def.setWithAuto(self.getChildElementOptionalBooleanValue(element, "WITH-AUTO"))
4469
+
4470
+ def readEcucAbstractInternalReferenceDef(self, element: ET.Element, ref_def: EcucAbstractInternalReferenceDef):
4471
+ self.readEcucAbstractReferenceDef(element, ref_def)
4472
+
4473
+ def readEcucSymbolicNameReferenceDef(self, element: ET.Element, ref_def: EcucSymbolicNameReferenceDef):
4474
+ self.readEcucAbstractInternalReferenceDef(element, ref_def)
4475
+ ref_def.setDestinationRef(self.getChildElementOptionalRefType(element, "DESTINATION-REF"))
4476
+
4477
+ def readEcucReferenceDef(self, element: ET.Element, ref_def: EcucReferenceDef):
4478
+ self.readEcucAbstractInternalReferenceDef(element, ref_def)
4479
+ ref_def.setDestinationRef(self.getChildElementOptionalRefType(element, "DESTINATION-REF"))
4480
+
4481
+ def readEcucContainerDefReferences(self, element: ET.Element, container_def: EcucParamConfContainerDef):
4482
+ for child_element in self.findall(element, "REFERENCES/*"):
4483
+ tag_name = self.getTagName(child_element)
4484
+ if tag_name == "ECUC-SYMBOLIC-NAME-REFERENCE-DEF":
4485
+ ref_def = container_def.createEcucSymbolicNameReferenceDef(self.getShortName(child_element))
4486
+ self.readEcucSymbolicNameReferenceDef(child_element, ref_def)
4487
+ elif tag_name == "ECUC-REFERENCE-DEF":
4488
+ ref_def = container_def.createEcucReferenceDef(self.getShortName(child_element))
4489
+ self.readEcucReferenceDef(child_element, ref_def)
4490
+ else:
4491
+ self.notImplemented("Unsupported EcucReferenceDef <%s>" % tag_name)
4492
+
4493
+ def readEcucContainerDefSubContainers(self, element: ET.Element, container_def: EcucParamConfContainerDef):
4494
+ for child_element in self.findall(element, "SUB-CONTAINERS/*"):
4495
+ tag_name = self.getTagName(child_element)
4496
+ if tag_name == "ECUC-PARAM-CONF-CONTAINER-DEF":
4497
+ sub_container_def = container_def.createEcucParamConfContainerDef(self.getShortName(child_element))
4498
+ self.readEcucParamConfContainerDef(child_element, sub_container_def)
4499
+ elif tag_name == "ECUC-CHOICE-CONTAINER-DEF":
4500
+ sub_container_def = container_def.createEcucChoiceContainerDef(self.getShortName(child_element))
4501
+ self.readEcucChoiceContainerDef(child_element, sub_container_def)
4502
+ else:
4503
+ self.notImplemented("Unsupported SubContainer <%s>" % tag_name)
4504
+
4505
+ def readEcucParamConfContainerDef(self, element: ET.Element, container_def: EcucParamConfContainerDef):
4506
+ self.readEcucContainerDef(element, container_def)
4507
+ self.readEcucContainerDefParameters(element, container_def)
4508
+ self.readEcucContainerDefReferences(element, container_def)
4509
+ self.readEcucContainerDefSubContainers(element, container_def)
4510
+
4511
+ def readEcucChoiceContainerDefChoices(self, element: ET.Element, container_def: EcucChoiceContainerDef):
4512
+ for child_element in self.findall(element, "CHOICES/*"):
4513
+ tag_name = self.getTagName(child_element)
4514
+ if tag_name == "ECUC-PARAM-CONF-CONTAINER-DEF":
4515
+ ref_def = container_def.createEcucParamConfContainerDef(self.getShortName(child_element))
4516
+ self.readEcucParamConfContainerDef(child_element, ref_def)
4517
+ else:
4518
+ self.notImplemented("Unsupported Choice <%s>" % tag_name)
4519
+
4520
+ def readEcucChoiceContainerDef(self, element: ET.Element, container_def: EcucChoiceContainerDef):
4521
+ self.readEcucContainerDef(element, container_def)
4522
+ self.readEcucChoiceContainerDefChoices(element, container_def)
4523
+
4524
+ def readEcucModuleDefContainers(self, element: ET.Element, module_def: EcucModuleDef):
4525
+ for child_element in self.findall(element, "CONTAINERS/*"):
4526
+ tag_name = self.getTagName(child_element)
4527
+ if tag_name == "ECUC-PARAM-CONF-CONTAINER-DEF":
4528
+ container_def = module_def.createEcucParamConfContainerDef(self.getShortName(child_element))
4529
+ self.readEcucParamConfContainerDef(child_element, container_def)
4530
+ elif tag_name == "ECUC-CHOICE-CONTAINER-DEF":
4531
+ container_def = module_def.createEcucChoiceContainerDef(self.getShortName(child_element))
4532
+ self.readEcucChoiceContainerDef(child_element, container_def)
4533
+ else:
4534
+ self.notImplemented("Unsupported Container <%s>" % tag_name)
4535
+
4536
+ def readEcucModuleDef(self, element: ET.Element, module_def: EcucModuleDef):
4537
+ self.logger.debug("Read EcucModuleDef <%s>" % module_def.getShortName())
4538
+ self.readEcucDefinitionElement(element, module_def)
4539
+ module_def.setPostBuildVariantSupport(self.getChildElementOptionalBooleanValue(element, "POST-BUILD-VARIANT-SUPPORT"))
4540
+ self.readEcucModuleDefSupportedConfigVariants(element, module_def)
4541
+ self.readEcucModuleDefContainers(element, module_def)
4542
+
4239
4543
  def readCommunicationController(self, element: ET.Element, controller: CommunicationController):
4240
4544
  controller.setWakeUpByControllerSupported(self.getChildElementOptionalBooleanValue(element, "WAKE-UP-BY-CONTROLLER-SUPPORTED"))
4241
4545
 
@@ -4685,13 +4989,13 @@ class ARXMLParser(AbstractARXMLParser):
4685
4989
  def readPhysicalDimension(self, element: ET.Element, dimension: PhysicalDimension):
4686
4990
  self.logger.debug("Read PhysicalDimension <%s>" % dimension.getShortName())
4687
4991
  self.readIdentifiable(element, dimension)
4688
- dimension.setLengthExp(self.getChildElementOptionalNumericalValue(element, "LENGTH-EXP")) \
4689
- .setLuminousIntensityExp(self.getChildElementOptionalNumericalValue(element, "LUMINOUS-INTENSITY-EXP")) \
4690
- .setMassExp(self.getChildElementOptionalNumericalValue(element, "MASS-EXP")) \
4691
- .setMolarAmountExp(self.getChildElementOptionalNumericalValue(element, "MOLAR-AMOUNT-EXP")) \
4692
- .setTemperatureExp(self.getChildElementOptionalNumericalValue(element, "TEMPERATURE-EXP")) \
4693
- .setTimeExp(self.getChildElementOptionalNumericalValue(element, "TIME-EXP")) \
4694
- .setCurrentExp(self.getChildElementOptionalNumericalValue(element, "CURRENT-EXP"))
4992
+ dimension.setLengthExp(self.getChildElementOptionalNumericalValue(element, "LENGTH-EXP"))
4993
+ dimension.setLuminousIntensityExp(self.getChildElementOptionalNumericalValue(element, "LUMINOUS-INTENSITY-EXP"))
4994
+ dimension.setMassExp(self.getChildElementOptionalNumericalValue(element, "MASS-EXP"))
4995
+ dimension.setMolarAmountExp(self.getChildElementOptionalNumericalValue(element, "MOLAR-AMOUNT-EXP"))
4996
+ dimension.setTemperatureExp(self.getChildElementOptionalNumericalValue(element, "TEMPERATURE-EXP"))
4997
+ dimension.setTimeExp(self.getChildElementOptionalNumericalValue(element, "TIME-EXP"))
4998
+ dimension.setCurrentExp(self.getChildElementOptionalNumericalValue(element, "CURRENT-EXP"))
4695
4999
 
4696
5000
  def readISignalGroupISignalRef(self, element: ET.Element, group: ISignalGroup):
4697
5001
  for ref_type in self.getChildElementRefTypeList(element, "I-SIGNAL-REFS/I-SIGNAL-REF"):
@@ -4810,7 +5114,7 @@ class ARXMLParser(AbstractARXMLParser):
4810
5114
  timing = None
4811
5115
  child_element = self.find(element, key)
4812
5116
  if child_element is not None:
4813
- self.logger.debug("Get TransmissionModeTiming of <%s>" % key)
5117
+ # self.logger.debug("Get TransmissionModeTiming of <%s>" % key)
4814
5118
  timing = TransmissionModeTiming()
4815
5119
  timing.setCyclicTiming(self.getCyclicTiming(child_element, "CYCLIC-TIMING")) \
4816
5120
  .setEventControlledTiming(self.getEventControlledTiming(child_element, "EVENT-CONTROLLED-TIMING"))
@@ -4919,7 +5223,7 @@ class ARXMLParser(AbstractARXMLParser):
4919
5223
  self.notImplemented("Unsupported Data Mapping %s" % tag_name)
4920
5224
 
4921
5225
  def readSwcToEcuMapping(self, element: ET.Element, mapping: SwcToEcuMapping):
4922
- self.logger.debug("SwcToEcuMapping %s" % mapping.getShortName())
5226
+ # self.logger.debug("SwcToEcuMapping %s" % mapping.getShortName())
4923
5227
  self.readIdentifiable(element, mapping)
4924
5228
  for child_element in self.findall(element, "COMPONENT-IREFS/COMPONENT-IREF"):
4925
5229
  mapping.addComponentIRef(self.getComponentInSystemInstanceRef(child_element))
@@ -4964,7 +5268,7 @@ class ARXMLParser(AbstractARXMLParser):
4964
5268
  self.notImplemented("Unsupported SwImplMapping <%s>" % tag_name)
4965
5269
 
4966
5270
  def readSystemMapping(self, element: ET.Element, mapping: SystemMapping):
4967
- self.logger.debug("SystemMapping %s" % mapping.getShortName())
5271
+ # self.logger.debug("Read SystemMapping <%s>" % mapping.getShortName())
4968
5272
  self.readIdentifiable(element, mapping)
4969
5273
  self.readSystemMappingDataMappings(element, mapping)
4970
5274
  self.readSystemMappingEcuResourceMappings(element, mapping)
@@ -5100,6 +5404,20 @@ class ARXMLParser(AbstractARXMLParser):
5100
5404
  self.readIdentifiable(element, mapping)
5101
5405
  self.readClientServerInterfaceMappingOperationMappings(element, mapping)
5102
5406
 
5407
+ def readModeInterfaceMappingModeMapping(self, element: ET.Element, mapping: ModeInterfaceMapping):
5408
+ child_element = self.find(element, "MODE-MAPPING")
5409
+ if child_element is not None:
5410
+ mode_mapping = ModeDeclarationGroupPrototypeMapping()
5411
+ mode_mapping.setFirstModeGroupRef(self.getChildElementOptionalRefType(child_element, "FIRST-MODE-GROUP-REF")) \
5412
+ .setModeDeclarationMappingSetRef(self.getChildElementOptionalRefType(child_element, "MODE-DECLARATION-MAPPING-SET-REF")) \
5413
+ .setSecondModeGroupRef(self.getChildElementOptionalRefType(child_element, "SECOND-MODE-GROUP-REF"))
5414
+ mapping.setModeMapping(mode_mapping)
5415
+
5416
+ def readModeInterfaceMapping(self, element: ET.Element, mapping: ModeInterfaceMapping):
5417
+ # self.logger.debug("Read ModeInterfaceMapping %s" % mapping.getShortName())
5418
+ self.readIdentifiable(element, mapping)
5419
+ self.readModeInterfaceMappingModeMapping(element, mapping)
5420
+
5103
5421
  def readPortInterfaceMappings(self, element: ET.Element, mapping_set: PortInterfaceMappingSet):
5104
5422
  for child_element in self.findall(element, "PORT-INTERFACE-MAPPINGS/*"):
5105
5423
  tag_name = self.getTagName(child_element)
@@ -5109,6 +5427,9 @@ class ARXMLParser(AbstractARXMLParser):
5109
5427
  elif tag_name == "CLIENT-SERVER-INTERFACE-MAPPING":
5110
5428
  mapping = mapping_set.createClientServerInterfaceMapping(self.getShortName(child_element))
5111
5429
  self.readClientServerInterfaceMapping(child_element, mapping)
5430
+ elif tag_name == "MODE-INTERFACE-MAPPING":
5431
+ mapping = mapping_set.createModeInterfaceMapping(self.getShortName(child_element))
5432
+ self.readModeInterfaceMapping(child_element, mapping)
5112
5433
  else:
5113
5434
  self.notImplemented("Unsupported PortInterfaceMapping <%s>" % tag_name)
5114
5435
 
@@ -5352,8 +5673,14 @@ class ARXMLParser(AbstractARXMLParser):
5352
5673
  keyword_set = parent.createKeywordSet(self.getShortName(child_element))
5353
5674
  self.readKeywordSet(child_element, keyword_set)
5354
5675
  elif tag_name == "PORT-PROTOTYPE-BLUEPRINT":
5355
- keyword_set = parent.createPortPrototypeBlueprint(self.getShortName(child_element))
5356
- self.readPortPrototypeBlueprint(child_element, keyword_set)
5676
+ blueprint = parent.createPortPrototypeBlueprint(self.getShortName(child_element))
5677
+ self.readPortPrototypeBlueprint(child_element, blueprint)
5678
+ elif tag_name == "MODE-DECLARATION-MAPPING-SET":
5679
+ mapping_set = parent.createModeDeclarationMappingSet(self.getShortName(child_element))
5680
+ self.readModeDeclarationMappingSet(child_element, mapping_set)
5681
+ elif tag_name == "ECUC-MODULE-DEF":
5682
+ module_def = parent.createEcucModuleDef(self.getShortName(child_element))
5683
+ self.readEcucModuleDef(child_element, module_def)
5357
5684
  else:
5358
5685
  self.notImplemented("Unsupported Element type of ARPackage <%s>" % tag_name)
5359
5686
 
@@ -5368,7 +5695,7 @@ class ARXMLParser(AbstractARXMLParser):
5368
5695
  parent.addReferenceBase(base)
5369
5696
 
5370
5697
  def readARPackage(self, element: ET.Element, ar_package: ARPackage):
5371
- self.logger.debug("Read ARPackages %s" % ar_package.getFullName())
5698
+ self.logger.debug("Read ARPackages <%s>" % ar_package.getFullName())
5372
5699
 
5373
5700
  self.readIdentifiable(element, ar_package)
5374
5701
  self.readARPackages(element, ar_package)