armodel 1.7.3__py3-none-any.whl → 1.7.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- armodel/cli/file_list_cli.py +70 -0
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2 -1
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +1 -1
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +6 -7
- armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +47 -0
- armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +73 -3
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +37 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +17 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +31 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +4 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +17 -32
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +4 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +7 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +47 -15
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +58 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +244 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +281 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +328 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +522 -11
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +114 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +94 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +151 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +140 -12
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +31 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +7 -12
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +135 -13
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +25 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +4 -3
- armodel/models/M2/MSR/AsamHdo/BaseTypes.py +0 -1
- armodel/models/M2/MSR/DataDictionary/RecordLayout.py +1 -1
- armodel/models/__init__.py +6 -0
- armodel/parser/abstract_arxml_parser.py +2 -0
- armodel/parser/arxml_parser.py +561 -62
- armodel/tests/test_armodel/models/test_ar_ref.py +2 -2
- armodel/writer/abstract_arxml_writer.py +1 -3
- armodel/writer/arxml_writer.py +702 -223
- {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/METADATA +47 -2
- {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/RECORD +43 -34
- {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/entry_points.txt +1 -0
- {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/LICENSE +0 -0
- {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/WHEEL +0 -0
- {armodel-1.7.3.dist-info → armodel-1.7.5.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
3
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, String, TimeValue
|
|
4
|
+
from .......models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class LinCommunicationController(CommunicationController):
|
|
8
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
9
|
+
super().__init__(parent, short_name)
|
|
10
|
+
|
|
11
|
+
self.protocolVersion = None # type: String
|
|
12
|
+
|
|
13
|
+
def getProtocolVersion(self):
|
|
14
|
+
return self.protocolVersion
|
|
15
|
+
|
|
16
|
+
def setProtocolVersion(self, value):
|
|
17
|
+
if value is not None:
|
|
18
|
+
self.protocolVersion = value
|
|
19
|
+
return self
|
|
20
|
+
|
|
21
|
+
class LinMaster(LinCommunicationController):
|
|
22
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
23
|
+
super().__init__(parent, short_name)
|
|
24
|
+
|
|
25
|
+
# type: List[LinSlaveConfig]
|
|
26
|
+
self.linSlaves = []
|
|
27
|
+
# type: TimeValue
|
|
28
|
+
self.timeBase = None
|
|
29
|
+
self.timeBaseJitter = None # type: TimeValue
|
|
30
|
+
|
|
31
|
+
def getLinSlaves(self):
|
|
32
|
+
return self.linSlaves
|
|
33
|
+
|
|
34
|
+
def addLinSlaves(self, value):
|
|
35
|
+
if value is not None:
|
|
36
|
+
self.linSlaves.append(value)
|
|
37
|
+
return self
|
|
38
|
+
|
|
39
|
+
def getTimeBase(self):
|
|
40
|
+
return self.timeBase
|
|
41
|
+
|
|
42
|
+
def setTimeBase(self, value):
|
|
43
|
+
if value is not None:
|
|
44
|
+
self.timeBase = value
|
|
45
|
+
return self
|
|
46
|
+
|
|
47
|
+
def getTimeBaseJitter(self):
|
|
48
|
+
return self.timeBaseJitter
|
|
49
|
+
|
|
50
|
+
def setTimeBaseJitter(self, value):
|
|
51
|
+
if value is not None:
|
|
52
|
+
self.timeBaseJitter = value
|
|
53
|
+
return self
|
|
54
|
+
|
|
55
|
+
class LinCommunicationConnector(CommunicationConnector):
|
|
56
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
57
|
+
super().__init__(parent, short_name)
|
|
58
|
+
|
|
59
|
+
self.initialNad = None # type: Integer
|
|
60
|
+
self.linConfigurableFrames = [] # type: List[LinConfigurableFrame]
|
|
61
|
+
self.linOrderedConfigurableFrames = [] # type: List[LinOrderedConfigurableFrame]
|
|
62
|
+
self.scheduleChangeNextTimeBase = None # type: Boolean
|
|
63
|
+
|
|
64
|
+
def getInitialNad(self):
|
|
65
|
+
return self.initialNad
|
|
66
|
+
|
|
67
|
+
def setInitialNad(self, value):
|
|
68
|
+
if value is not None:
|
|
69
|
+
self.initialNad = value
|
|
70
|
+
return self
|
|
71
|
+
|
|
72
|
+
def getLinConfigurableFrames(self):
|
|
73
|
+
return self.linConfigurableFrames
|
|
74
|
+
|
|
75
|
+
def addLinConfigurableFrame(self, value):
|
|
76
|
+
if value is not None:
|
|
77
|
+
self.linConfigurableFrames.append(value)
|
|
78
|
+
return self
|
|
79
|
+
|
|
80
|
+
def getLinOrderedConfigurableFrames(self):
|
|
81
|
+
return self.linOrderedConfigurableFrames
|
|
82
|
+
|
|
83
|
+
def addLinOrderedConfigurableFrame(self, value):
|
|
84
|
+
if value is not None:
|
|
85
|
+
self.linOrderedConfigurableFrames.append(value)
|
|
86
|
+
return self
|
|
87
|
+
|
|
88
|
+
def getScheduleChangeNextTimeBase(self):
|
|
89
|
+
return self.scheduleChangeNextTimeBase
|
|
90
|
+
|
|
91
|
+
def setScheduleChangeNextTimeBase(self, value):
|
|
92
|
+
if value is not None:
|
|
93
|
+
self.scheduleChangeNextTimeBase = value
|
|
94
|
+
return self
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
2
|
from typing import List
|
|
3
|
-
|
|
4
|
-
from armodel.models.M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeDeclaration
|
|
5
|
-
|
|
6
3
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, Describable
|
|
7
4
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
8
|
-
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, RefType, ARBoolean, TimeValue
|
|
9
|
-
|
|
5
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, Boolean, Integer, RefType, ARBoolean, String, TimeValue, UnlimitedInteger
|
|
6
|
+
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeDeclaration
|
|
10
7
|
class FibexElement(Identifiable, metaclass = ABCMeta):
|
|
11
8
|
def __init__(self, parent: ARObject, short_name: str):
|
|
12
9
|
if type(self) == FibexElement:
|
|
@@ -500,7 +497,7 @@ class PduTriggering(Identifiable):
|
|
|
500
497
|
return self
|
|
501
498
|
|
|
502
499
|
def getISignalTriggeringRefs(self):
|
|
503
|
-
return self.iSignalTriggeringRefs
|
|
500
|
+
return sorted(self.iSignalTriggeringRefs, key = lambda i: i.getShortValue())
|
|
504
501
|
|
|
505
502
|
def addISignalTriggeringRef(self, value):
|
|
506
503
|
self.iSignalTriggeringRefs.append(value)
|
|
@@ -623,3 +620,151 @@ class ISignalTriggering(Identifiable):
|
|
|
623
620
|
def addISignalPortRef(self, value):
|
|
624
621
|
self.iSignalPortRefs.append(value)
|
|
625
622
|
return self
|
|
623
|
+
|
|
624
|
+
class MultiplexedIPdu(IPdu):
|
|
625
|
+
def __init__(self, parent, short_name):
|
|
626
|
+
super().__init__(parent, short_name)
|
|
627
|
+
|
|
628
|
+
self.dynamicPart = None # type: DynamicPart
|
|
629
|
+
self.selectorFieldByteOrder = None # type: ByteOrderEnum
|
|
630
|
+
self.selectorFieldLength = None # type: Integer
|
|
631
|
+
self.selectorFieldStartPosition = None # type: Integer
|
|
632
|
+
self.staticPart = None # type: StaticPart
|
|
633
|
+
self.triggerMode = None # type: TriggerMode
|
|
634
|
+
self.unusedBitPattern = None # type: Integer
|
|
635
|
+
|
|
636
|
+
def getDynamicPart(self):
|
|
637
|
+
return self.dynamicPart
|
|
638
|
+
|
|
639
|
+
def setDynamicPart(self, value):
|
|
640
|
+
if value is not None:
|
|
641
|
+
self.dynamicPart = value
|
|
642
|
+
return self
|
|
643
|
+
|
|
644
|
+
def getSelectorFieldByteOrder(self):
|
|
645
|
+
return self.selectorFieldByteOrder
|
|
646
|
+
|
|
647
|
+
def setSelectorFieldByteOrder(self, value):
|
|
648
|
+
if value is not None:
|
|
649
|
+
self.selectorFieldByteOrder = value
|
|
650
|
+
return self
|
|
651
|
+
|
|
652
|
+
def getSelectorFieldLength(self):
|
|
653
|
+
return self.selectorFieldLength
|
|
654
|
+
|
|
655
|
+
def setSelectorFieldLength(self, value):
|
|
656
|
+
if value is not None:
|
|
657
|
+
self.selectorFieldLength = value
|
|
658
|
+
return self
|
|
659
|
+
|
|
660
|
+
def getSelectorFieldStartPosition(self):
|
|
661
|
+
return self.selectorFieldStartPosition
|
|
662
|
+
|
|
663
|
+
def setSelectorFieldStartPosition(self, value):
|
|
664
|
+
if value is not None:
|
|
665
|
+
self.selectorFieldStartPosition = value
|
|
666
|
+
return self
|
|
667
|
+
|
|
668
|
+
def getStaticPart(self):
|
|
669
|
+
return self.staticPart
|
|
670
|
+
|
|
671
|
+
def setStaticPart(self, value):
|
|
672
|
+
if value is not None:
|
|
673
|
+
self.staticPart = value
|
|
674
|
+
return self
|
|
675
|
+
|
|
676
|
+
def getTriggerMode(self):
|
|
677
|
+
return self.triggerMode
|
|
678
|
+
|
|
679
|
+
def setTriggerMode(self, value):
|
|
680
|
+
if value is not None:
|
|
681
|
+
self.triggerMode = value
|
|
682
|
+
return self
|
|
683
|
+
|
|
684
|
+
def getUnusedBitPattern(self):
|
|
685
|
+
return self.unusedBitPattern
|
|
686
|
+
|
|
687
|
+
def setUnusedBitPattern(self, value):
|
|
688
|
+
if value is not None:
|
|
689
|
+
self.unusedBitPattern = value
|
|
690
|
+
return self
|
|
691
|
+
|
|
692
|
+
class UserDefinedIPdu(IPdu):
|
|
693
|
+
def __init__(self, parent, short_name):
|
|
694
|
+
super().__init__(parent, short_name)
|
|
695
|
+
|
|
696
|
+
self.cddType = None # type: String
|
|
697
|
+
|
|
698
|
+
def getCddType(self):
|
|
699
|
+
return self.cddType
|
|
700
|
+
|
|
701
|
+
def setCddType(self, value):
|
|
702
|
+
if value is not None:
|
|
703
|
+
self.cddType = value
|
|
704
|
+
return self
|
|
705
|
+
|
|
706
|
+
class GeneralPurposeIPdu(IPdu):
|
|
707
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
708
|
+
super().__init__(parent, short_name)
|
|
709
|
+
|
|
710
|
+
class UserDefinedPdu(Pdu):
|
|
711
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
712
|
+
super().__init__(parent, short_name)
|
|
713
|
+
|
|
714
|
+
self.cddType = None # type: String
|
|
715
|
+
|
|
716
|
+
def getCddType(self):
|
|
717
|
+
return self.cddType
|
|
718
|
+
|
|
719
|
+
def setCddType(self, value):
|
|
720
|
+
if value is not None:
|
|
721
|
+
self.cddType = value
|
|
722
|
+
return self
|
|
723
|
+
|
|
724
|
+
class GeneralPurposePdu(Pdu):
|
|
725
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
726
|
+
super().__init__(parent, short_name)
|
|
727
|
+
|
|
728
|
+
self.hasDynamicLength = None # type: Boolean
|
|
729
|
+
self.length = None # type: UnlimitedInteger
|
|
730
|
+
|
|
731
|
+
def getHasDynamicLength(self):
|
|
732
|
+
return self.hasDynamicLength
|
|
733
|
+
|
|
734
|
+
def setHasDynamicLength(self, value):
|
|
735
|
+
if value is not None:
|
|
736
|
+
self.hasDynamicLength = value
|
|
737
|
+
return self
|
|
738
|
+
|
|
739
|
+
def getLength(self):
|
|
740
|
+
return self.length
|
|
741
|
+
|
|
742
|
+
def setLength(self, value):
|
|
743
|
+
if value is not None:
|
|
744
|
+
self.length = value
|
|
745
|
+
return self
|
|
746
|
+
|
|
747
|
+
class SecureCommunicationPropsSet(Identifiable):
|
|
748
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
749
|
+
super().__init__(parent, short_name)
|
|
750
|
+
|
|
751
|
+
# type: List[SecureCommunicationAuthenticationProps]
|
|
752
|
+
self.authenticationProps = []
|
|
753
|
+
# type: List[SecureCommunicationFreshnessProps]
|
|
754
|
+
self.freshnessProps = []
|
|
755
|
+
|
|
756
|
+
def getAuthenticationProps(self):
|
|
757
|
+
return self.authenticationProps
|
|
758
|
+
|
|
759
|
+
def addAuthenticationProp(self, value):
|
|
760
|
+
if value is not None:
|
|
761
|
+
self.authenticationProps.append(value)
|
|
762
|
+
return self
|
|
763
|
+
|
|
764
|
+
def getFreshnessProps(self):
|
|
765
|
+
return self.freshnessProps
|
|
766
|
+
|
|
767
|
+
def addFreshnessProp(self, value):
|
|
768
|
+
if value is not None:
|
|
769
|
+
self.freshnessProps.append(value)
|
|
770
|
+
return self
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
2
|
from enum import Enum
|
|
3
3
|
from typing import List
|
|
4
|
-
|
|
5
|
-
from ......M2.AUTOSARTemplates.SWComponentTemplate.Communication import HandleInvalidEnum
|
|
6
|
-
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
|
|
7
|
-
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering
|
|
8
|
-
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement, FrameTriggering, ISignalTriggering, PduTriggering
|
|
9
4
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
10
|
-
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, Boolean, PositiveInteger, RefType, ARLiteral, TimeValue
|
|
5
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, Boolean, PositiveInteger, PositiveUnlimitedInteger, RefType, ARLiteral, TimeValue
|
|
11
6
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
7
|
+
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
|
|
8
|
+
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinFrameTriggering, LinScheduleTable
|
|
9
|
+
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement, FrameTriggering, ISignalTriggering, PduTriggering
|
|
10
|
+
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.NetworkEndpoint import NetworkEndpoint
|
|
12
11
|
|
|
13
12
|
class PhysicalChannel (Identifiable, metaclass = ABCMeta):
|
|
14
13
|
def __init__(self, parent: ARObject, short_name: str):
|
|
@@ -80,7 +79,77 @@ class CanPhysicalChannel(AbstractCanPhysicalChannel):
|
|
|
80
79
|
|
|
81
80
|
class LinPhysicalChannel(PhysicalChannel):
|
|
82
81
|
def __init__(self, parent: ARObject, short_name: str):
|
|
83
|
-
super().__init__(parent, short_name)
|
|
82
|
+
super().__init__(parent, short_name)
|
|
83
|
+
|
|
84
|
+
self.busIdleTimeoutPeriod = None # type: TimeValue
|
|
85
|
+
# type: List[LinScheduleTable]
|
|
86
|
+
self.scheduleTables = []
|
|
87
|
+
|
|
88
|
+
def getBusIdleTimeoutPeriod(self):
|
|
89
|
+
return self.busIdleTimeoutPeriod
|
|
90
|
+
|
|
91
|
+
def setBusIdleTimeoutPeriod(self, value):
|
|
92
|
+
if value is not None:
|
|
93
|
+
self.busIdleTimeoutPeriod = value
|
|
94
|
+
return self
|
|
95
|
+
|
|
96
|
+
def getScheduleTables(self):
|
|
97
|
+
return self.scheduleTables
|
|
98
|
+
|
|
99
|
+
def createLinScheduleTable(self, short_name:str) -> LinScheduleTable:
|
|
100
|
+
if (short_name not in self.elements):
|
|
101
|
+
end_point = LinScheduleTable(self, short_name)
|
|
102
|
+
self.addElement(end_point)
|
|
103
|
+
self.scheduleTables.append(end_point)
|
|
104
|
+
return self.getElement(short_name)
|
|
105
|
+
|
|
106
|
+
class VlanConfig(Identifiable):
|
|
107
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
108
|
+
super().__init__(parent, short_name)
|
|
109
|
+
|
|
110
|
+
self.vlanIdentifier = None # type: PositiveInteger
|
|
111
|
+
|
|
112
|
+
def getVlanIdentifier(self):
|
|
113
|
+
return self.vlanIdentifier
|
|
114
|
+
|
|
115
|
+
def setVlanIdentifier(self, value):
|
|
116
|
+
if value is not None:
|
|
117
|
+
self.vlanIdentifier = value
|
|
118
|
+
return self
|
|
119
|
+
class EthernetPhysicalChannel(PhysicalChannel):
|
|
120
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
121
|
+
super().__init__(parent, short_name)
|
|
122
|
+
|
|
123
|
+
self.networkEndpoints = [] # type: List[NetworkEndpoint]
|
|
124
|
+
self.soAdConfig = None # type: SoAdConfig
|
|
125
|
+
self.vlan = None # type: VlanConfig
|
|
126
|
+
|
|
127
|
+
def getNetworkEndpoints(self):
|
|
128
|
+
return self.networkEndpoints
|
|
129
|
+
|
|
130
|
+
def createNetworkEndPoint(self, short_name:str) -> NetworkEndpoint:
|
|
131
|
+
if (short_name not in self.elements):
|
|
132
|
+
end_point = NetworkEndpoint(self, short_name)
|
|
133
|
+
self.addElement(end_point)
|
|
134
|
+
self.networkEndpoints.append(end_point)
|
|
135
|
+
return self.getElement(short_name)
|
|
136
|
+
|
|
137
|
+
def getSoAdConfig(self):
|
|
138
|
+
return self.soAdConfig
|
|
139
|
+
|
|
140
|
+
def setSoAdConfig(self, value):
|
|
141
|
+
self.soAdConfig = value
|
|
142
|
+
return self
|
|
143
|
+
|
|
144
|
+
def getVlan(self):
|
|
145
|
+
return self.vlan
|
|
146
|
+
|
|
147
|
+
def createVlanConfig(self, short_name: str) -> VlanConfig:
|
|
148
|
+
if (short_name not in self.elements):
|
|
149
|
+
config = VlanConfig(self, short_name)
|
|
150
|
+
self.vlan = config
|
|
151
|
+
self.addElement(config)
|
|
152
|
+
return self.getElement(short_name)
|
|
84
153
|
|
|
85
154
|
class CommunicationCluster(FibexElement, metaclass = ABCMeta):
|
|
86
155
|
def __init__(self, parent: ARObject, short_name: str):
|
|
@@ -109,6 +178,9 @@ class CommunicationCluster(FibexElement, metaclass = ABCMeta):
|
|
|
109
178
|
def getLinPhysicalChannels(self) -> List[LinPhysicalChannel]:
|
|
110
179
|
return list(sorted(filter(lambda a: isinstance(a, LinPhysicalChannel), self.elements.values()), key= lambda o:o.getShortName()))
|
|
111
180
|
|
|
181
|
+
def getEthernetPhysicalChannels(self) -> List[EthernetPhysicalChannel]:
|
|
182
|
+
return list(sorted(filter(lambda a: isinstance(a, EthernetPhysicalChannel), self.elements.values()), key= lambda o:o.getShortName()))
|
|
183
|
+
|
|
112
184
|
def createCanPhysicalChannel(self, short_name: str):
|
|
113
185
|
if (short_name not in self.elements):
|
|
114
186
|
channel = CanPhysicalChannel(self, short_name)
|
|
@@ -120,6 +192,12 @@ class CommunicationCluster(FibexElement, metaclass = ABCMeta):
|
|
|
120
192
|
channel = LinPhysicalChannel(self, short_name)
|
|
121
193
|
self.addElement(channel)
|
|
122
194
|
return self.getElement(short_name)
|
|
195
|
+
|
|
196
|
+
def createEthernetPhysicalChannel(self, short_name: str):
|
|
197
|
+
if (short_name not in self.elements):
|
|
198
|
+
channel = EthernetPhysicalChannel(self, short_name)
|
|
199
|
+
self.addElement(channel)
|
|
200
|
+
return self.getElement(short_name)
|
|
123
201
|
|
|
124
202
|
def getProtocolName(self):
|
|
125
203
|
return self.protocolName
|
|
@@ -133,8 +211,58 @@ class CommunicationCluster(FibexElement, metaclass = ABCMeta):
|
|
|
133
211
|
|
|
134
212
|
def setProtocolVersion(self, value):
|
|
135
213
|
self.protocolVersion = value
|
|
136
|
-
return self
|
|
214
|
+
return self
|
|
137
215
|
|
|
216
|
+
class CanClusterBusOffRecovery(ARObject):
|
|
217
|
+
def __init__(self):
|
|
218
|
+
super().__init__()
|
|
219
|
+
|
|
220
|
+
self.borCounterL1ToL2 = None # type: PositiveInteger
|
|
221
|
+
self.borTimeL1 = None # type: TimeValue
|
|
222
|
+
self.borTimeL2 = None # type: TimeValue
|
|
223
|
+
self.borTimeTxEnsured = None # type: TimeValue
|
|
224
|
+
self.mainFunctionPeriod = None # type: TimeValue
|
|
225
|
+
|
|
226
|
+
def getBorCounterL1ToL2(self):
|
|
227
|
+
return self.borCounterL1ToL2
|
|
228
|
+
|
|
229
|
+
def setBorCounterL1ToL2(self, value):
|
|
230
|
+
if value is not None:
|
|
231
|
+
self.borCounterL1ToL2 = value
|
|
232
|
+
return self
|
|
233
|
+
|
|
234
|
+
def getBorTimeL1(self):
|
|
235
|
+
return self.borTimeL1
|
|
236
|
+
|
|
237
|
+
def setBorTimeL1(self, value):
|
|
238
|
+
if value is not None:
|
|
239
|
+
self.borTimeL1 = value
|
|
240
|
+
return self
|
|
241
|
+
|
|
242
|
+
def getBorTimeL2(self):
|
|
243
|
+
return self.borTimeL2
|
|
244
|
+
|
|
245
|
+
def setBorTimeL2(self, value):
|
|
246
|
+
if value is not None:
|
|
247
|
+
self.borTimeL2 = value
|
|
248
|
+
return self
|
|
249
|
+
|
|
250
|
+
def getBorTimeTxEnsured(self):
|
|
251
|
+
return self.borTimeTxEnsured
|
|
252
|
+
|
|
253
|
+
def setBorTimeTxEnsured(self, value):
|
|
254
|
+
if value is not None:
|
|
255
|
+
self.borTimeTxEnsured = value
|
|
256
|
+
return self
|
|
257
|
+
|
|
258
|
+
def getMainFunctionPeriod(self):
|
|
259
|
+
return self.mainFunctionPeriod
|
|
260
|
+
|
|
261
|
+
def setMainFunctionPeriod(self, value):
|
|
262
|
+
if value is not None:
|
|
263
|
+
self.mainFunctionPeriod = value
|
|
264
|
+
return self
|
|
265
|
+
|
|
138
266
|
class AbstractCanCluster(CommunicationCluster, metaclass = ABCMeta):
|
|
139
267
|
def __init__(self, parent: ARObject, short_name: str):
|
|
140
268
|
if type(self) == AbstractCanCluster:
|
|
@@ -142,10 +270,10 @@ class AbstractCanCluster(CommunicationCluster, metaclass = ABCMeta):
|
|
|
142
270
|
|
|
143
271
|
super().__init__(parent, short_name)
|
|
144
272
|
|
|
145
|
-
self.busOffRecovery = None
|
|
146
|
-
self.canFdBaudrate = None
|
|
147
|
-
self.canXlBaudrate = None
|
|
148
|
-
self.speed = None
|
|
273
|
+
self.busOffRecovery = None # type: CanClusterBusOffRecovery
|
|
274
|
+
self.canFdBaudrate = None # type: PositiveUnlimitedInteger
|
|
275
|
+
self.canXlBaudrate = None # type: PositiveUnlimitedInteger
|
|
276
|
+
self.speed = None # type: PositiveUnlimitedInteger
|
|
149
277
|
|
|
150
278
|
def getBusOffRecovery(self):
|
|
151
279
|
return self.busOffRecovery
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
from ......M2.AUTOSARTemplates.
|
|
1
|
+
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCommunicationConnector, EthernetCommunicationController
|
|
2
2
|
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
|
|
3
3
|
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
|
|
4
4
|
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
|
|
5
5
|
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
|
|
6
|
+
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinTopology import LinCommunicationConnector, LinMaster
|
|
6
7
|
from typing import List
|
|
7
8
|
|
|
8
9
|
class EcuInstance(FibexElement):
|
|
@@ -105,17 +106,41 @@ class EcuInstance(FibexElement):
|
|
|
105
106
|
def createCanCommunicationController(self, short_name: str) -> CanCommunicationController:
|
|
106
107
|
if (short_name not in self.elements):
|
|
107
108
|
controller = CanCommunicationController(self, short_name)
|
|
108
|
-
self.
|
|
109
|
-
return self.
|
|
109
|
+
self.addElement(controller)
|
|
110
|
+
return self.getElement(short_name)
|
|
111
|
+
|
|
112
|
+
def createEthernetCommunicationController(self, short_name: str) -> EthernetCommunicationController:
|
|
113
|
+
if (short_name not in self.elements):
|
|
114
|
+
controller = EthernetCommunicationController(self, short_name)
|
|
115
|
+
self.addElement(controller)
|
|
116
|
+
return self.getElement(short_name)
|
|
117
|
+
|
|
118
|
+
def createLinMaster(self, short_name: str) -> LinMaster:
|
|
119
|
+
if (short_name not in self.elements):
|
|
120
|
+
controller = LinMaster(self, short_name)
|
|
121
|
+
self.addElement(controller)
|
|
122
|
+
return self.getElement(short_name)
|
|
110
123
|
|
|
111
124
|
def getConnectors(self):
|
|
112
125
|
return list(sorted(filter(lambda a: isinstance(a, CommunicationConnector), self.elements.values()), key= lambda o:o.short_name))
|
|
113
126
|
|
|
114
127
|
def createCanCommunicationConnector(self, short_name: str) -> CanCommunicationConnector:
|
|
115
128
|
if (short_name not in self.elements):
|
|
116
|
-
|
|
117
|
-
self.
|
|
118
|
-
return self.
|
|
129
|
+
connector = CanCommunicationConnector(self, short_name)
|
|
130
|
+
self.addElement(connector)
|
|
131
|
+
return self.getElement(short_name)
|
|
132
|
+
|
|
133
|
+
def createEthernetCommunicationConnector(self, short_name: str) -> EthernetCommunicationConnector:
|
|
134
|
+
if (short_name not in self.elements):
|
|
135
|
+
connector = EthernetCommunicationConnector(self, short_name)
|
|
136
|
+
self.addElement(connector)
|
|
137
|
+
return self.getElement(short_name)
|
|
138
|
+
|
|
139
|
+
def createLinCommunicationConnector(self, short_name: str) -> LinCommunicationConnector:
|
|
140
|
+
if (short_name not in self.elements):
|
|
141
|
+
connector = LinCommunicationConnector(self, short_name)
|
|
142
|
+
self.addElement(connector)
|
|
143
|
+
return self.getElement(short_name)
|
|
119
144
|
|
|
120
145
|
def getDltConfig(self):
|
|
121
146
|
return self.dltConfig
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from typing import List
|
|
1
2
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Describable
|
|
2
3
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
3
4
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, RefType, TimeValue
|
|
@@ -109,8 +110,7 @@ class TransmissionModeTiming(ARObject):
|
|
|
109
110
|
super().__init__()
|
|
110
111
|
|
|
111
112
|
self.cyclicTiming = None # type: CyclicTiming
|
|
112
|
-
# type: EventControlledTiming
|
|
113
|
-
self.eventControlledTiming = None
|
|
113
|
+
self.eventControlledTiming = None # type: EventControlledTiming
|
|
114
114
|
|
|
115
115
|
def getCyclicTiming(self):
|
|
116
116
|
return self.cyclicTiming
|
|
@@ -130,16 +130,11 @@ class TransmissionModeDeclaration(ARObject):
|
|
|
130
130
|
def __init__(self):
|
|
131
131
|
super().__init__()
|
|
132
132
|
|
|
133
|
-
# type: ModeDrivenTransmissionModeCondition
|
|
134
|
-
self.
|
|
135
|
-
#
|
|
136
|
-
self.
|
|
137
|
-
# type:
|
|
138
|
-
self.transmissionModeConditions = []
|
|
139
|
-
# type: TransmissionModeTiming
|
|
140
|
-
self.transmissionModeFalseTiming = None
|
|
141
|
-
# type: TransmissionModeTiming
|
|
142
|
-
self.transmissionModeTrueTiming = None
|
|
133
|
+
self.modeDrivenFalseConditions = [] # type: List[ModeDrivenTransmissionModeCondition]
|
|
134
|
+
self.modeDrivenTrueConditions = [] # type: List[ModeDrivenTransmissionModeCondition]
|
|
135
|
+
self.transmissionModeConditions = [] # typeL List[TransmissionModeCondition]
|
|
136
|
+
self.transmissionModeFalseTiming = None # type: TransmissionModeTiming
|
|
137
|
+
self.transmissionModeTrueTiming = None # type: TransmissionModeTiming
|
|
143
138
|
|
|
144
139
|
def getModeDrivenFalseConditions(self):
|
|
145
140
|
return self.modeDrivenFalseConditions
|