armodel 1.7.4__py3-none-any.whl → 1.7.6__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 (33) hide show
  1. armodel/cli/file_list_cli.py +70 -0
  2. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +2 -2
  3. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +4 -0
  4. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +47 -0
  5. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +0 -0
  6. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +73 -3
  7. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +22 -0
  8. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +58 -0
  9. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +165 -4
  10. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +16 -1
  11. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +514 -17
  12. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +104 -1
  13. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +783 -13
  14. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +114 -6
  15. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +92 -0
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +76 -10
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +151 -6
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +143 -36
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +13 -0
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +135 -13
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +79 -2
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +4 -2
  23. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +1 -1
  24. armodel/models/__init__.py +3 -0
  25. armodel/parser/abstract_arxml_parser.py +7 -5
  26. armodel/parser/arxml_parser.py +927 -438
  27. armodel/writer/arxml_writer.py +799 -178
  28. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/METADATA +52 -1
  29. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/RECORD +33 -28
  30. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/entry_points.txt +1 -0
  31. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/LICENSE +0 -0
  32. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/WHEEL +0 -0
  33. {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/top_level.txt +0 -0
@@ -1,14 +1,15 @@
1
1
 
2
2
  from abc import ABCMeta
3
+ from typing import List
3
4
 
5
+ from ......M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
6
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
4
7
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARNumerical
8
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, ARNumerical, Integer, RefType, TimeValue
6
9
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
7
10
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import Frame, FrameTriggering
8
11
 
9
- class LinFrame(Frame):
10
- __metaclass__ = ABCMeta
11
-
12
+ class LinFrame(Frame, metaclass = ABCMeta):
12
13
  def __init__(self, parent: ARObject, short_name: str):
13
14
  if type(self) == LinFrame:
14
15
  raise NotImplementedError("LinFrame is an abstract class.")
@@ -30,12 +31,119 @@ class LinFrameTriggering(FrameTriggering):
30
31
  return self.identifier
31
32
 
32
33
  def setIdentifier(self, value):
33
- self.identifier = value
34
+ if value is not None:
35
+ self.identifier = value
34
36
  return self
35
37
 
36
38
  def getLinChecksum(self):
37
39
  return self.linChecksum
38
40
 
39
41
  def setLinChecksum(self, value):
40
- self.linChecksum = value
42
+ if value is not None:
43
+ self.linChecksum = value
44
+ return self
45
+
46
+ class ResumePosition(AREnum):
47
+ CONTINUE_AT_IT_POSITION = "continueAtItPosition"
48
+ START_FROM_BEGINNING = "startFromBeginning"
49
+
50
+ def __init__(self):
51
+ super().__init__((
52
+ ResumePosition.CONTINUE_AT_IT_POSITION,
53
+ ResumePosition.START_FROM_BEGINNING
54
+ ))
55
+
56
+ class ScheduleTableEntry(ARObject, metaclass = ABCMeta):
57
+ def __init__(self):
58
+
59
+ if type(self) == ScheduleTableEntry:
60
+ raise NotImplementedError("ScheduleTableEntry is an abstract class.")
61
+
62
+ super().__init__()
63
+
64
+ self.delay = None # type: TimeValue
65
+ self.introduction = None # type: DocumentationBlock
66
+ self.positionInTable = None # type: Integer
67
+
68
+ def getDelay(self):
69
+ return self.delay
70
+
71
+ def setDelay(self, value):
72
+ if value is not None:
73
+ self.delay = value
74
+ return self
75
+
76
+ def getIntroduction(self):
77
+ return self.introduction
78
+
79
+ def setIntroduction(self, value):
80
+ if value is not None:
81
+ self.introduction = value
82
+ return self
83
+
84
+ def getPositionInTable(self):
85
+ return self.positionInTable
86
+
87
+ def setPositionInTable(self, value):
88
+ if value is not None:
89
+ self.positionInTable = value
90
+ return self
91
+
92
+ class ApplicationEntry(ScheduleTableEntry):
93
+ def __init__(self):
94
+ super().__init__()
95
+
96
+ self.frameTriggeringRef = None # type: RefType
97
+
98
+ def getFrameTriggeringRef(self):
99
+ return self.frameTriggeringRef
100
+
101
+ def setFrameTriggeringRef(self, value):
102
+ if value is not None:
103
+ self.frameTriggeringRef = value
104
+ return self
105
+
106
+ class FreeFormatEntry(ScheduleTableEntry):
107
+ def __init__(self):
108
+ super().__init__()
109
+
110
+ class LinConfigurationEntry(ScheduleTableEntry, metaclass = ABCMeta):
111
+ def __init__(self):
112
+
113
+ if type(self) == LinConfigurationEntry:
114
+ raise NotImplementedError("LinConfigurationEntry is an abstract class.")
115
+
116
+ super().__init__()
117
+
118
+
119
+ class LinScheduleTable(Identifiable):
120
+ def __init__(self, parent, short_name):
121
+ super().__init__(parent, short_name)
122
+
123
+ self.resumePosition = None # type: ResumePosition
124
+ self.runMode = None # type: RunMode
125
+ self.tableEntries = [] # type: List[ScheduleTableEntry]
126
+
127
+ def getResumePosition(self):
128
+ return self.resumePosition
129
+
130
+ def setResumePosition(self, value):
131
+ if value is not None:
132
+ self.resumePosition = value
133
+ return self
134
+
135
+ def getRunMode(self):
136
+ return self.runMode
137
+
138
+ def setRunMode(self, value):
139
+ if value is not None:
140
+ self.runMode = value
141
+ return self
142
+
143
+ def getTableEntries(self):
144
+ return self.tableEntries
145
+
146
+ def addTableEntry(self, value):
147
+ if value is not None:
148
+ self.tableEntries.append(value)
41
149
  return self
@@ -0,0 +1,92 @@
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
+ self.linSlaves = [] # type: List[LinSlaveConfig]
26
+ self.timeBase = None # type: TimeValue
27
+ self.timeBaseJitter = None # type: TimeValue
28
+
29
+ def getLinSlaves(self):
30
+ return self.linSlaves
31
+
32
+ def addLinSlaves(self, value):
33
+ if value is not None:
34
+ self.linSlaves.append(value)
35
+ return self
36
+
37
+ def getTimeBase(self):
38
+ return self.timeBase
39
+
40
+ def setTimeBase(self, value):
41
+ if value is not None:
42
+ self.timeBase = value
43
+ return self
44
+
45
+ def getTimeBaseJitter(self):
46
+ return self.timeBaseJitter
47
+
48
+ def setTimeBaseJitter(self, value):
49
+ if value is not None:
50
+ self.timeBaseJitter = value
51
+ return self
52
+
53
+ class LinCommunicationConnector(CommunicationConnector):
54
+ def __init__(self, parent: ARObject, short_name: str):
55
+ super().__init__(parent, short_name)
56
+
57
+ self.initialNad = None # type: Integer
58
+ self.linConfigurableFrames = [] # type: List[LinConfigurableFrame]
59
+ self.linOrderedConfigurableFrames = [] # type: List[LinOrderedConfigurableFrame]
60
+ self.scheduleChangeNextTimeBase = None # type: Boolean
61
+
62
+ def getInitialNad(self):
63
+ return self.initialNad
64
+
65
+ def setInitialNad(self, value):
66
+ if value is not None:
67
+ self.initialNad = value
68
+ return self
69
+
70
+ def getLinConfigurableFrames(self):
71
+ return self.linConfigurableFrames
72
+
73
+ def addLinConfigurableFrame(self, value):
74
+ if value is not None:
75
+ self.linConfigurableFrames.append(value)
76
+ return self
77
+
78
+ def getLinOrderedConfigurableFrames(self):
79
+ return self.linOrderedConfigurableFrames
80
+
81
+ def addLinOrderedConfigurableFrame(self, value):
82
+ if value is not None:
83
+ self.linOrderedConfigurableFrames.append(value)
84
+ return self
85
+
86
+ def getScheduleChangeNextTimeBase(self):
87
+ return self.scheduleChangeNextTimeBase
88
+
89
+ def setScheduleChangeNextTimeBase(self, value):
90
+ if value is not None:
91
+ self.scheduleChangeNextTimeBase = value
92
+ return self
@@ -2,7 +2,7 @@ from typing import List
2
2
 
3
3
  from ....MSR.Documentation.TextModel.BlockElements import DocumentationBlock
4
4
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
5
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, RefType
6
6
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARPositiveInteger
7
7
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
8
8
 
@@ -63,6 +63,66 @@ class ISignalMapping(ARObject):
63
63
  def setTargetSignalRef(self, value):
64
64
  self.targetSignalRef = value
65
65
  return self
66
+
67
+ class DefaultValueElement(ARObject):
68
+ def __init__(self):
69
+ super().__init__()
70
+
71
+ self.elementByteValue = None # type: Integer
72
+ self.elementPosition = None # type: Integer
73
+
74
+ def getElementByteValue(self):
75
+ return self.elementByteValue
76
+
77
+ def setElementByteValue(self, value):
78
+ if value is not None:
79
+ self.elementByteValue = value
80
+ return self
81
+
82
+ def getElementPosition(self):
83
+ return self.elementPosition
84
+
85
+ def setElementPosition(self, value):
86
+ if value is not None:
87
+ self.elementPosition = value
88
+ return self
89
+
90
+ class PduMappingDefaultValue(ARObject):
91
+ def __init__(self):
92
+ super().__init__()
93
+
94
+ self.defaultValueElements = [] # type: List[DefaultValueElement]
95
+
96
+ def getDefaultValueElements(self):
97
+ return self.defaultValueElements
98
+
99
+ def addDefaultValueElements(self, value):
100
+ if value is not None:
101
+ self.defaultValueElements = value
102
+ return self
103
+
104
+ class TargetIPduRef(ARObject):
105
+ def __init__(self):
106
+ super().__init__()
107
+
108
+ self.defaultValue = None # type: PduMappingDefaultValue
109
+ self.targetIPdu = None # type: RefType
110
+
111
+ def getDefaultValue(self):
112
+ return self.defaultValue
113
+
114
+ def setDefaultValue(self, value):
115
+ if value is not None:
116
+ self.defaultValue = value
117
+ return self
118
+
119
+ def getTargetIPdu(self):
120
+ return self.targetIPdu
121
+
122
+ def setTargetIPdu(self, value):
123
+ if value is not None:
124
+ self.targetIPdu = value
125
+ return self
66
126
 
67
127
  class IPduMapping(ARObject):
68
128
  def __init__(self):
@@ -71,36 +131,42 @@ class IPduMapping(ARObject):
71
131
  self.introduction = None # type: DocumentationBlock
72
132
  self.pdurTpChunkSize = None # type: ARPositiveInteger
73
133
  self.sourceIpduRef = None # type: RefType
74
- self.targetIpduRef = None # type: RefType
134
+ self.targetIPdu = None # type: TargetIPduRef
75
135
 
76
136
  def getIntroduction(self):
77
137
  return self.introduction
78
138
 
79
139
  def setIntroduction(self, value):
80
- self.introduction = value
140
+ if value is not None:
141
+ self.introduction = value
81
142
  return self
82
143
 
83
144
  def getPdurTpChunkSize(self):
84
145
  return self.pdurTpChunkSize
85
146
 
86
147
  def setPdurTpChunkSize(self, value):
87
- self.pdurTpChunkSize = value
148
+ if value is not None:
149
+ self.pdurTpChunkSize = value
88
150
  return self
89
151
 
90
152
  def getSourceIpduRef(self):
91
153
  return self.sourceIpduRef
92
154
 
93
155
  def setSourceIpduRef(self, value):
94
- self.sourceIpduRef = value
156
+ if value is not None:
157
+ self.sourceIpduRef = value
95
158
  return self
96
159
 
97
- def getTargetIpduRef(self):
98
- return self.targetIpduRef
160
+ def getTargetIPdu(self):
161
+ return self.targetIPdu
99
162
 
100
- def setTargetIpduRef(self, value):
101
- self.targetIpduRef = value
163
+ def setTargetIPdu(self, value):
164
+ if value is not None:
165
+ self.targetIPdu = value
102
166
  return self
103
167
 
168
+
169
+
104
170
  class Gateway(FibexElement):
105
171
  def __init__(self, parent: ARObject, short_name: str):
106
172
  super().__init__(parent, short_name)
@@ -127,7 +193,7 @@ class Gateway(FibexElement):
127
193
  def getIPduMappings(self) -> List[FrameMapping]:
128
194
  return self.iPduMappings
129
195
 
130
- def addIPduMappings(self, mapping: FrameMapping):
196
+ def addIPduMapping(self, mapping: FrameMapping):
131
197
  self.iPduMappings.append(mapping)
132
198
  return self
133
199
 
@@ -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