armodel 1.6.4__py3-none-any.whl → 1.7.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 (43) hide show
  1. armodel/cli/arxml_format_cli.py +14 -11
  2. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +50 -13
  3. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +1 -1
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +86 -0
  5. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +3 -4
  6. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +1 -1
  7. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +95 -13
  8. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +14 -4
  9. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +103 -10
  10. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +5 -0
  11. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +21 -8
  12. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +24 -0
  13. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +1 -1
  14. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +173 -0
  15. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +1 -1
  16. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +6 -6
  17. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +237 -28
  18. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +223 -0
  19. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +177 -0
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +37 -0
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +88 -16
  22. armodel/models/M2/MSR/AsamHdo/AdminData.py +34 -8
  23. armodel/models/M2/MSR/Documentation/Annotation.py +1 -1
  24. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +54 -0
  25. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +9 -0
  26. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +25 -0
  27. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +33 -5
  28. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +15 -2
  29. armodel/models/M2/MSR/Documentation/__init__.py +1 -1
  30. armodel/models/__init__.py +15 -2
  31. armodel/parser/abstract_arxml_parser.py +55 -18
  32. armodel/parser/arxml_parser.py +344 -101
  33. armodel/tests/test_armodel/models/test_ar_ref.py +7 -4
  34. armodel/tests/test_armodel/parser/test_sw_components.py +6 -19
  35. armodel/tests/test_armodel/parser/test_system.py +2 -2
  36. armodel/writer/abstract_arxml_writer.py +17 -8
  37. armodel/writer/arxml_writer.py +291 -78
  38. {armodel-1.6.4.dist-info → armodel-1.7.1.dist-info}/METADATA +23 -1
  39. {armodel-1.6.4.dist-info → armodel-1.7.1.dist-info}/RECORD +43 -35
  40. {armodel-1.6.4.dist-info → armodel-1.7.1.dist-info}/LICENSE +0 -0
  41. {armodel-1.6.4.dist-info → armodel-1.7.1.dist-info}/WHEEL +0 -0
  42. {armodel-1.6.4.dist-info → armodel-1.7.1.dist-info}/entry_points.txt +0 -0
  43. {armodel-1.6.4.dist-info → armodel-1.7.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,223 @@
1
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, RefType, TimeValue
2
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrameTriggering
3
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import CanCommunicationConnector, CanCommunicationController
4
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import FibexElement
5
+ from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
6
+ from typing import List
7
+
8
+ class EcuInstance(FibexElement):
9
+ def __init__(self, parent, short_name):
10
+ super().__init__(parent, short_name)
11
+
12
+ self.associatedComIPduGroupRefs = [] # type: List[RefType]
13
+ self.associatedConsumedProvidedServiceInstanceGroupRefs = [] # type: List[RefType]
14
+ self.associatedPdurIPduGroupRefs = [] # type: List[RefType]
15
+ self.channelSynchronousWakeup = None # type: Boolean
16
+ self.clientIdRange = None # type: ClientIdRange
17
+ self.comConfigurationGwTimeBase = None # type: TimeValue
18
+ self.comConfigurationRxTimeBase = None # type: TimeValue
19
+ self.comConfigurationTxTimeBase = None # type: TimeValue
20
+ self.comEnableMDTForCyclicTransmission = None # type: Boolean
21
+ self.commControllers = [] # type: List[CommunicationController]
22
+ self.connectors = [] # type: List[CommunicationConnector]
23
+ self.dltConfig = None # type: DltConfig
24
+ self.doIpConfig = None # type: DoIpConfig
25
+ self.ecuTaskProxyRefs = [] # type: List[RefType]
26
+ self.ethSwitchPortGroupDerivation = None # type: Boolean
27
+ self.firewallRuleRef = None # type: RefType
28
+ self.partitions = [] # type: List[EcuPartition]
29
+ self.pncNmRequest = None # type: Boolean
30
+ self.pncPrepareSleepTimer = None # type: TimeValue
31
+ self.pncSynchronousWakeup = None # type: Boolean
32
+ self.pnResetTime = None # type: TimeValue
33
+ self.sleepModeSupported = None # type: Boolean
34
+ self.tcpIpIcmpPropsRef = None # type: RefType
35
+ self.tcpIpPropsRef = None # type: RefType
36
+ self.v2xSupported = None # type: V2xSupportEnum
37
+ self.wakeUpOverBusSupported = None # type: Boolean
38
+
39
+ def getAssociatedComIPduGroupRefs(self):
40
+ return self.associatedComIPduGroupRefs
41
+
42
+ def addAssociatedComIPduGroupRef(self, value):
43
+ self.associatedComIPduGroupRefs.append(value)
44
+ return self
45
+
46
+ def getAssociatedConsumedProvidedServiceInstanceGroupRefs(self):
47
+ return self.associatedConsumedProvidedServiceInstanceGroupRefs
48
+
49
+ def addAssociatedConsumedProvidedServiceInstanceGroupRef(self, value):
50
+ self.associatedConsumedProvidedServiceInstanceGroupRefs.append(value)
51
+ return self
52
+
53
+ def getAssociatedPdurIPduGroupRefs(self):
54
+ return self.associatedPdurIPduGroupRefs
55
+
56
+ def addAssociatedPdurIPduGroupRef(self, value):
57
+ self.associatedPdurIPduGroupRefs.append(value)
58
+ return self
59
+
60
+ def getChannelSynchronousWakeup(self):
61
+ return self.channelSynchronousWakeup
62
+
63
+ def setChannelSynchronousWakeup(self, value):
64
+ self.channelSynchronousWakeup = value
65
+ return self
66
+
67
+ def getClientIdRange(self):
68
+ return self.clientIdRange
69
+
70
+ def setClientIdRange(self, value):
71
+ self.clientIdRange = value
72
+ return self
73
+
74
+ def getComConfigurationGwTimeBase(self):
75
+ return self.comConfigurationGwTimeBase
76
+
77
+ def setComConfigurationGwTimeBase(self, value):
78
+ self.comConfigurationGwTimeBase = value
79
+ return self
80
+
81
+ def getComConfigurationRxTimeBase(self):
82
+ return self.comConfigurationRxTimeBase
83
+
84
+ def setComConfigurationRxTimeBase(self, value):
85
+ self.comConfigurationRxTimeBase = value
86
+ return self
87
+
88
+ def getComConfigurationTxTimeBase(self):
89
+ return self.comConfigurationTxTimeBase
90
+
91
+ def setComConfigurationTxTimeBase(self, value):
92
+ self.comConfigurationTxTimeBase = value
93
+ return self
94
+
95
+ def getComEnableMDTForCyclicTransmission(self):
96
+ return self.comEnableMDTForCyclicTransmission
97
+
98
+ def setComEnableMDTForCyclicTransmission(self, value):
99
+ self.comEnableMDTForCyclicTransmission = value
100
+ return self
101
+
102
+ def getCommControllers(self):
103
+ return list(sorted(filter(lambda a: isinstance(a, CommunicationController), self.elements.values()), key= lambda o:o.short_name))
104
+
105
+ def createCanCommunicationController(self, short_name: str) -> CanCommunicationController:
106
+ if (short_name not in self.elements):
107
+ controller = CanCommunicationController(self, short_name)
108
+ self.elements[short_name] = controller
109
+ return self.elements[short_name]
110
+
111
+ def getConnectors(self):
112
+ return list(sorted(filter(lambda a: isinstance(a, CommunicationConnector), self.elements.values()), key= lambda o:o.short_name))
113
+
114
+ def createCanCommunicationConnector(self, short_name: str) -> CanCommunicationConnector:
115
+ if (short_name not in self.elements):
116
+ controller = CanCommunicationConnector(self, short_name)
117
+ self.elements[short_name] = controller
118
+ return self.elements[short_name]
119
+
120
+ def getDltConfig(self):
121
+ return self.dltConfig
122
+
123
+ def setDltConfig(self, value):
124
+ self.dltConfig = value
125
+ return self
126
+
127
+ def getDoIpConfig(self):
128
+ return self.doIpConfig
129
+
130
+ def setDoIpConfig(self, value):
131
+ self.doIpConfig = value
132
+ return self
133
+
134
+ def getEcuTaskProxyRefs(self):
135
+ return self.ecuTaskProxyRefs
136
+
137
+ def setEcuTaskProxyRefs(self, value):
138
+ self.ecuTaskProxyRefs = value
139
+ return self
140
+
141
+ def getEthSwitchPortGroupDerivation(self):
142
+ return self.ethSwitchPortGroupDerivation
143
+
144
+ def setEthSwitchPortGroupDerivation(self, value):
145
+ self.ethSwitchPortGroupDerivation = value
146
+ return self
147
+
148
+ def getFirewallRuleRef(self):
149
+ return self.firewallRuleRef
150
+
151
+ def setFirewallRuleRef(self, value):
152
+ self.firewallRuleRef = value
153
+ return self
154
+
155
+ def getPartitions(self):
156
+ return self.partitions
157
+
158
+ def addPartition(self, value):
159
+ self.partitions.append(value)
160
+ return self
161
+
162
+ def getPncNmRequest(self):
163
+ return self.pncNmRequest
164
+
165
+ def setPncNmRequest(self, value):
166
+ self.pncNmRequest = value
167
+ return self
168
+
169
+ def getPncPrepareSleepTimer(self):
170
+ return self.pncPrepareSleepTimer
171
+
172
+ def setPncPrepareSleepTimer(self, value):
173
+ self.pncPrepareSleepTimer = value
174
+ return self
175
+
176
+ def getPncSynchronousWakeup(self):
177
+ return self.pncSynchronousWakeup
178
+
179
+ def setPncSynchronousWakeup(self, value):
180
+ self.pncSynchronousWakeup = value
181
+ return self
182
+
183
+ def getPnResetTime(self):
184
+ return self.pnResetTime
185
+
186
+ def setPnResetTime(self, value):
187
+ self.pnResetTime = value
188
+ return self
189
+
190
+ def getSleepModeSupported(self):
191
+ return self.sleepModeSupported
192
+
193
+ def setSleepModeSupported(self, value):
194
+ self.sleepModeSupported = value
195
+ return self
196
+
197
+ def getTcpIpIcmpPropsRef(self):
198
+ return self.tcpIpIcmpPropsRef
199
+
200
+ def setTcpIpIcmpPropsRef(self, value):
201
+ self.tcpIpIcmpPropsRef = value
202
+ return self
203
+
204
+ def getTcpIpPropsRef(self):
205
+ return self.tcpIpPropsRef
206
+
207
+ def setTcpIpPropsRef(self, value):
208
+ self.tcpIpPropsRef = value
209
+ return self
210
+
211
+ def getV2xSupported(self):
212
+ return self.v2xSupported
213
+
214
+ def setV2xSupported(self, value):
215
+ self.v2xSupported = value
216
+ return self
217
+
218
+ def getWakeUpOverBusSupported(self):
219
+ return self.wakeUpOverBusSupported
220
+
221
+ def setWakeUpOverBusSupported(self, value):
222
+ self.wakeUpOverBusSupported = value
223
+ return self
@@ -0,0 +1,177 @@
1
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Describable
2
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, RefType, TimeValue
4
+
5
+ class ModeDrivenTransmissionModeCondition(ARObject):
6
+ def __init__(self):
7
+ super().__init__()
8
+
9
+ self.modeDeclarationRef = None # type: RefType
10
+
11
+ def getModeDeclarationRef(self):
12
+ return self.modeDeclarationRef
13
+
14
+ def setModeDeclarationRef(self, value):
15
+ self.modeDeclarationRef = value
16
+ return self
17
+
18
+ class TransmissionModeCondition(ARObject):
19
+ def __init__(self):
20
+ super().__init__()
21
+
22
+ self.dataFilter = None # type: DataFilter
23
+ self.iSignalInIPduRef = None # type: RefType
24
+
25
+ def getDataFilter(self):
26
+ return self.dataFilter
27
+
28
+ def setDataFilter(self, value):
29
+ self.dataFilter = value
30
+ return self
31
+
32
+ def getISignalInIPduRef(self):
33
+ return self.iSignalInIPduRef
34
+
35
+ def setISignalInIPduRef(self, value):
36
+ self.iSignalInIPduRef = value
37
+ return self
38
+
39
+
40
+ class TimeRangeType(ARObject):
41
+ def __init__(self):
42
+ super().__init__()
43
+
44
+ # type: TimeRangeTypeTolerance
45
+ self.tolerance = None
46
+ self.value = None # type: TimeValue
47
+
48
+ def getTolerance(self):
49
+ return self.tolerance
50
+
51
+ def setTolerance(self, value):
52
+ self.tolerance = value
53
+ return self
54
+
55
+ def getValue(self):
56
+ return self.value
57
+
58
+ def setValue(self, value):
59
+ self.value = value
60
+ return self
61
+
62
+
63
+ class CyclicTiming(Describable):
64
+ def __init__(self):
65
+ super().__init__()
66
+
67
+ self.timeOffset = None # type: TimeRangeType
68
+ self.timePeriod = None # type: TimeRangeType
69
+
70
+ def getTimeOffset(self):
71
+ return self.timeOffset
72
+
73
+ def setTimeOffset(self, value):
74
+ self.timeOffset = value
75
+ return self
76
+
77
+ def getTimePeriod(self):
78
+ return self.timePeriod
79
+
80
+ def setTimePeriod(self, value):
81
+ self.timePeriod = value
82
+ return self
83
+
84
+
85
+ class EventControlledTiming(Describable):
86
+ def __init__(self):
87
+ super().__init__()
88
+
89
+ self.numberOfRepetitions = None # type: Integer
90
+ self.repetitionPeriod = None # type: TimeRangeType
91
+
92
+ def getNumberOfRepetitions(self):
93
+ return self.numberOfRepetitions
94
+
95
+ def setNumberOfRepetitions(self, value):
96
+ self.numberOfRepetitions = value
97
+ return self
98
+
99
+ def getRepetitionPeriod(self):
100
+ return self.repetitionPeriod
101
+
102
+ def setRepetitionPeriod(self, value):
103
+ self.repetitionPeriod = value
104
+ return self
105
+
106
+
107
+ class TransmissionModeTiming(ARObject):
108
+ def __init__(self):
109
+ super().__init__()
110
+
111
+ self.cyclicTiming = None # type: CyclicTiming
112
+ # type: EventControlledTiming
113
+ self.eventControlledTiming = None
114
+
115
+ def getCyclicTiming(self):
116
+ return self.cyclicTiming
117
+
118
+ def setCyclicTiming(self, value):
119
+ self.cyclicTiming = value
120
+ return self
121
+
122
+ def getEventControlledTiming(self):
123
+ return self.eventControlledTiming
124
+
125
+ def setEventControlledTiming(self, value):
126
+ self.eventControlledTiming = value
127
+ return self
128
+
129
+ class TransmissionModeDeclaration(ARObject):
130
+ def __init__(self):
131
+ super().__init__()
132
+
133
+ # type: ModeDrivenTransmissionModeCondition
134
+ self.modeDrivenFalseConditions = []
135
+ # type: ModeDrivenTransmissionModeCondition
136
+ self.modeDrivenTrueConditions = []
137
+ # type: TransmissionModeCondition
138
+ self.transmissionModeConditions = []
139
+ # type: TransmissionModeTiming
140
+ self.transmissionModeFalseTiming = None
141
+ # type: TransmissionModeTiming
142
+ self.transmissionModeTrueTiming = None
143
+
144
+ def getModeDrivenFalseConditions(self):
145
+ return self.modeDrivenFalseConditions
146
+
147
+ def addModeDrivenFalseCondition(self, value):
148
+ self.modeDrivenFalseConditions.append(value)
149
+ return self
150
+
151
+ def getModeDrivenTrueConditions(self):
152
+ return self.modeDrivenTrueConditions
153
+
154
+ def addModeDrivenTrueCondition(self, value):
155
+ self.modeDrivenTrueConditions.append(value)
156
+ return self
157
+
158
+ def getTransmissionModeConditions(self):
159
+ return self.transmissionModeConditions
160
+
161
+ def addTransmissionModeCondition(self, value):
162
+ self.transmissionModeConditions.append(value)
163
+ return self
164
+
165
+ def getTransmissionModeFalseTiming(self):
166
+ return self.transmissionModeFalseTiming
167
+
168
+ def setTransmissionModeFalseTiming(self, value):
169
+ self.transmissionModeFalseTiming = value
170
+ return self
171
+
172
+ def getTransmissionModeTrueTiming(self):
173
+ return self.transmissionModeTrueTiming
174
+
175
+ def setTransmissionModeTrueTiming(self, value):
176
+ self.transmissionModeTrueTiming = value
177
+ return self
@@ -46,3 +46,40 @@ class VariableDataPrototypeInSystemInstanceRef(AtpInstanceRef):
46
46
  def setTargetDataPrototypeRef(self, value):
47
47
  self.targetDataPrototypeRef = value
48
48
  return self
49
+
50
+ class ComponentInSystemInstanceRef(AtpInstanceRef):
51
+ def __init__(self):
52
+ super().__init__()
53
+
54
+ self.baseRef = None # type: RefType
55
+ self.contextComponentRefs = [] # type: List[RefType]
56
+ self.contextCompositionRef = None # type: RefType
57
+ self.targetComponentRef = None # type: RefType
58
+
59
+ def getBaseRef(self):
60
+ return self.baseRef
61
+
62
+ def setBaseRef(self, value):
63
+ self.baseRef = value
64
+ return self
65
+
66
+ def getContextComponentRefs(self):
67
+ return self.contextComponentRefs
68
+
69
+ def addContextComponentRef(self, value):
70
+ self.contextComponentRefs.append(value)
71
+ return self
72
+
73
+ def getContextCompositionRef(self):
74
+ return self.contextCompositionRef
75
+
76
+ def setContextCompositionRef(self, value):
77
+ self.contextCompositionRef = value
78
+ return self
79
+
80
+ def getTargetComponentRef(self):
81
+ return self.targetComponentRef
82
+
83
+ def setTargetComponentRef(self, value):
84
+ self.targetComponentRef = value
85
+ return self
@@ -1,10 +1,48 @@
1
1
  from typing import List
2
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
3
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
4
- from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
2
+ from ....M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import ComponentInSystemInstanceRef
3
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
4
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable
5
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import PositiveInteger, RefType, TRefType
6
+
7
+ class SwcToEcuMapping(Identifiable):
8
+ def __init__(self, parent: ARObject, short_name: str):
9
+ super().__init__(parent, short_name)
10
+
11
+ self.componentIRefs = [] # type: List[ComponentInSystemInstanceRef]
12
+ self.controlledHwElementRef = None # type: RefType
13
+ self.ecuInstanceRef = None # type: RefType
14
+ self.processingUnitRef = None # type: RefType
15
+
16
+ def getComponentIRefs(self):
17
+ return self.componentIRefs
18
+
19
+ def addComponentIRef(self, value):
20
+ self.componentIRefs.append(value)
21
+ return self
22
+
23
+ def getControlledHwElementRef(self):
24
+ return self.controlledHwElementRef
25
+
26
+ def setControlledHwElementRef(self, value):
27
+ self.controlledHwElementRef = value
28
+ return self
29
+
30
+ def getEcuInstanceRef(self):
31
+ return self.ecuInstanceRef
32
+
33
+ def setEcuInstanceRef(self, value):
34
+ self.ecuInstanceRef = value
35
+ return self
36
+
37
+ def getProcessingUnitRef(self):
38
+ return self.processingUnitRef
39
+
40
+ def setProcessingUnitRef(self, value):
41
+ self.processingUnitRef = value
42
+ return self
5
43
 
6
44
  class SystemMapping(Identifiable):
7
- def __init__(self, parent, short_name):
45
+ def __init__(self, parent: ARObject, short_name: str):
8
46
  super().__init__(parent, short_name)
9
47
 
10
48
  self.applicationPartitionToEcuPartitionMappings = []
@@ -28,7 +66,7 @@ class SystemMapping(Identifiable):
28
66
  self.swClusterMappings = []
29
67
  self.swcToApplicationPartitionMappings = []
30
68
  self.swImplMappings = []
31
- self.swMappings = []
69
+ self.swMappings = [] # type: List[SwcToEcuMapping]
32
70
  self.systemSignalGroupToComResourceMappings = []
33
71
  self.systemSignalToComResourceMappings = []
34
72
 
@@ -182,9 +220,12 @@ class SystemMapping(Identifiable):
182
220
  def getSwMappings(self):
183
221
  return self.swMappings
184
222
 
185
- def addSwMapping(self, value):
186
- self.swMappings.append(value)
187
- return self
223
+ def createSwcToEcuMapping(self, short_name: str) -> SwcToEcuMapping:
224
+ if short_name not in self.elements:
225
+ mapping = SwcToEcuMapping(self, short_name)
226
+ self.addElement(mapping)
227
+ self.swMappings.append(mapping)
228
+ return self.getElement(short_name)
188
229
 
189
230
  def getSystemSignalGroupToComResourceMappings(self):
190
231
  return self.systemSignalGroupToComResourceMappings
@@ -200,9 +241,37 @@ class SystemMapping(Identifiable):
200
241
  self.systemSignalToComResourceMappings.append(value)
201
242
  return self
202
243
 
244
+ class RootSwCompositionPrototype(Identifiable):
245
+ def __init__(self, parent: ARObject, short_name: str):
246
+ super().__init__(parent, short_name)
247
+
248
+ self.calibrationParameterValueSetRef = None # type: RefType
249
+ self.flatMapRef = None # type: RefType
250
+ self.softwareCompositionTRef = None # type: TRefType
251
+
252
+ def getCalibrationParameterValueSetRef(self):
253
+ return self.calibrationParameterValueSetRef
254
+
255
+ def setCalibrationParameterValueSetRef(self, value):
256
+ self.calibrationParameterValueSetRef = value
257
+ return self
258
+
259
+ def getFlatMapRef(self):
260
+ return self.flatMapRef
261
+
262
+ def setFlatMapRef(self, value):
263
+ self.flatMapRef = value
264
+ return self
265
+
266
+ def getSoftwareCompositionTRef(self):
267
+ return self.softwareCompositionTRef
268
+
269
+ def setSoftwareCompositionTRef(self, value):
270
+ self.softwareCompositionTRef = value
271
+ return self
203
272
 
204
273
  class System(ARElement):
205
- def __init__(self, parent, short_name):
274
+ def __init__(self, parent: ARObject, short_name: str):
206
275
  super().__init__(parent, short_name)
207
276
 
208
277
  self.clientIdDefinitionSetRefs = [] # type: List[RefType]
@@ -212,12 +281,12 @@ class System(ARElement):
212
281
  self.interpolationRoutineMappingSetRefs = [] # type: List[RefType]
213
282
  self.j1939SharedAddressClusters = []
214
283
  self.mappings = [] # type: List[SystemMapping]
215
- self.pncVectorLength = None
216
- self.pncVectorOffset = None
217
- self.rootSoftwareComposition = None
284
+ self.pncVectorLength = None # type: PositiveInteger
285
+ self.pncVectorOffset = None # type: PositiveInteger
286
+ self.rootSoftwareComposition = None # type: RootSwCompositionPrototype
218
287
  self.swClusters = []
219
288
  self.systemDocumentation = []
220
- self.systemVersion = None
289
+ self.systemVersion = None # type: RevisionLabelString
221
290
 
222
291
  def getClientIdDefinitionSetRefs(self):
223
292
  return self.clientIdDefinitionSetRefs
@@ -287,9 +356,12 @@ class System(ARElement):
287
356
  def getRootSoftwareComposition(self):
288
357
  return self.rootSoftwareComposition
289
358
 
290
- def setRootSoftwareComposition(self, value):
291
- self.rootSoftwareComposition = value
292
- return self
359
+ def createRootSoftwareComposition(self, short_name) -> RootSwCompositionPrototype:
360
+ if short_name not in self.elements:
361
+ prototype = RootSwCompositionPrototype(self, short_name)
362
+ self.addElement(prototype)
363
+ self.rootSoftwareComposition = prototype
364
+ return self.getElement(short_name)
293
365
 
294
366
  def getSwClusters(self):
295
367
  return self.swClusters
@@ -1,3 +1,5 @@
1
+ from ....M2.MSR.Documentation.TextModel.LanguageDataModel import LEnum
2
+ from ....M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguagePlainText
1
3
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
2
4
  from ....M2.MSR.AsamHdo.SpecialData import Sdg
3
5
  from typing import List
@@ -6,13 +8,37 @@ class AdminData(ARObject):
6
8
  def __init__(self):
7
9
  super().__init__()
8
10
 
9
- self.doc_revision = []
10
- self.language = None
11
- self.sdg = []
12
- self.used_languages = None
11
+ self.DocRevisions = [] # type: List[DocRevision]
12
+ self.language = None # type: LEnum
13
+ self.sdgs = [] # type: List[Sdg]
14
+ self.usedLanguages = None # type: MultiLanguagePlainText
13
15
 
14
- def addSdg(self, sdg: Sdg):
15
- self.sdg.append(sdg)
16
+ def getDocRevisions(self):
17
+ return self.DocRevisions
16
18
 
17
- def getSdgs(self) -> List[Sdg]:
18
- return self.sdg
19
+ def setDocRevisions(self, value):
20
+ self.DocRevisions.append(value)
21
+ return self
22
+
23
+ def getLanguage(self):
24
+ return self.language
25
+
26
+ def setLanguage(self, value):
27
+ self.language = value
28
+ return self
29
+
30
+ def getSdgs(self):
31
+ return self.sdgs
32
+
33
+ def addSdg(self, value):
34
+ self.sdgs.append(value)
35
+ return self
36
+
37
+ def getUsedLanguages(self):
38
+ return self.usedLanguages
39
+
40
+ def setUsedLanguages(self, value):
41
+ self.usedLanguages = value
42
+ return self
43
+
44
+
@@ -1,4 +1,4 @@
1
- from ....M2.MSR.Documentation.BlockElements import DocumentationBlock
1
+ from .TextModel.BlockElements import DocumentationBlock
2
2
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
3
3
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
4
4
  from ....M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName