armodel 1.7.5__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 (22) hide show
  1. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +2 -2
  2. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +4 -0
  3. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +7 -1
  4. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +13 -0
  5. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +165 -4
  6. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +400 -17
  7. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +356 -8
  8. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +2 -4
  9. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +76 -10
  10. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +45 -23
  11. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +1 -0
  12. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +55 -2
  13. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +2 -1
  14. armodel/parser/abstract_arxml_parser.py +5 -5
  15. armodel/parser/arxml_parser.py +632 -466
  16. armodel/writer/arxml_writer.py +347 -52
  17. {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/METADATA +22 -1
  18. {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/RECORD +22 -22
  19. {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/LICENSE +0 -0
  20. {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/WHEEL +0 -0
  21. {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/entry_points.txt +0 -0
  22. {armodel-1.7.5.dist-info → armodel-1.7.6.dist-info}/top_level.txt +0 -0
@@ -156,9 +156,9 @@ class ImplementationDataType(AbstractImplementationDataType):
156
156
  return self._struct_type
157
157
 
158
158
  def createSymbolProps(self, short_name: str) -> SymbolProps:
159
- if short_name not in self.element:
159
+ if short_name not in self.elements:
160
160
  symbol_props = SymbolProps(self, short_name)
161
- self.elements[short_name] = symbol_props
161
+ self.addElement(symbol_props)
162
162
  self.symbolProps = symbol_props
163
163
  return self.symbolProps
164
164
 
@@ -56,6 +56,7 @@ class MemorySection(Identifiable):
56
56
 
57
57
  @alignment.setter
58
58
  def alignment(self, value: ARLiteral):
59
+ '''
59
60
  if value is not None and value.getValue() != "":
60
61
  match = False
61
62
  if value.getValue() in ("UNKNOWN", "UNSPECIFIED", "BOOLEAN", "PTR"):
@@ -69,6 +70,9 @@ class MemorySection(Identifiable):
69
70
 
70
71
  if not match:
71
72
  raise ValueError("Invalid alignment <%s> of memory section <%s>" % (value, self.getShortName()))
73
+ '''
74
+ if value is not None:
75
+ self._alignment = value
72
76
 
73
77
  def addOption(self, option: ARLiteral):
74
78
  self.options.append(option)
@@ -40,7 +40,7 @@ from .....M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleConfigura
40
40
  from .....M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerInterface, ModeSwitchInterface, ParameterInterface, PortInterfaceMappingSet, SenderReceiverInterface, TriggerInterface
41
41
  from .....M2.AUTOSARTemplates.SystemTemplate import System
42
42
  from .....M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import NmConfig
43
- from .....M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig, DoIpTpConfig
43
+ from .....M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig, DoIpTpConfig, LinTpConfig
44
44
 
45
45
  class ReferenceBase(ARObject):
46
46
  def __init__(self):
@@ -390,6 +390,12 @@ class ARPackage(Identifiable, CollectableElement):
390
390
  element = CanTpConfig(self, short_name)
391
391
  self.addElement(element)
392
392
  return self.getElement(short_name)
393
+
394
+ def createLinTpConfig(self, short_name: str) -> LinTpConfig:
395
+ if (short_name not in self.elements):
396
+ element = LinTpConfig(self, short_name)
397
+ self.addElement(element)
398
+ return self.getElement(short_name)
393
399
 
394
400
  def createCanFrame(self, short_name: str) -> CanFrame:
395
401
  if (short_name not in self.elements):
@@ -493,5 +493,18 @@ class Ip6AddressString(ARLiteral):
493
493
  * xml.xsd.pattern=[0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4}){7,7}|ANY
494
494
  * xml.xsd.type=string
495
495
  '''
496
+ def __init__(self):
497
+ super().__init__()
498
+
499
+ class MacAddressString(ARLiteral):
500
+ '''
501
+ This primitive specifies a Mac Address. Notation: FF:FF:FF:FF:FF:FF
502
+ Alternative notations, e.g. using dash instead of colon, or another grouping of numbers, is not allowed.
503
+
504
+ Tags:
505
+ * xml.xsd.customType=MAC-ADDRESS-STRING
506
+ * xml.xsd.pattern=([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}
507
+ * xml.xsd.type=string
508
+ '''
496
509
  def __init__(self):
497
510
  super().__init__()
@@ -1,9 +1,172 @@
1
1
  from abc import ABCMeta
2
2
 
3
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Float, Integer, PositiveInteger, PositiveUnlimitedInteger
3
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Float, Integer, PositiveInteger, PositiveUnlimitedInteger, TimeValue
4
4
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
5
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
6
6
 
7
+ class CanControllerFdConfiguration(ARObject):
8
+ def __init__(self):
9
+ super().__init__()
10
+
11
+ self.paddingValue = None # type: PositiveInteger
12
+ self.propSeg = None # type: PositiveInteger
13
+ self.sspOffset = None # type: PositiveInteger
14
+ self.syncJumpWidth = None # type: PositiveInteger
15
+ self.timeSeg1 = None # type: PositiveInteger
16
+ self.timeSeg2 = None # type: PositiveInteger
17
+ self.txBitRateSwitch = None # type: Boolean
18
+
19
+ def getPaddingValue(self):
20
+ return self.paddingValue
21
+
22
+ def setPaddingValue(self, value):
23
+ if value is not None:
24
+ self.paddingValue = value
25
+ return self
26
+
27
+ def getPropSeg(self):
28
+ return self.propSeg
29
+
30
+ def setPropSeg(self, value):
31
+ if value is not None:
32
+ self.propSeg = value
33
+ return self
34
+
35
+ def getSspOffset(self):
36
+ return self.sspOffset
37
+
38
+ def setSspOffset(self, value):
39
+ if value is not None:
40
+ self.sspOffset = value
41
+ return self
42
+
43
+ def getSyncJumpWidth(self):
44
+ return self.syncJumpWidth
45
+
46
+ def setSyncJumpWidth(self, value):
47
+ if value is not None:
48
+ self.syncJumpWidth = value
49
+ return self
50
+
51
+ def getTimeSeg1(self):
52
+ return self.timeSeg1
53
+
54
+ def setTimeSeg1(self, value):
55
+ if value is not None:
56
+ self.timeSeg1 = value
57
+ return self
58
+
59
+ def getTimeSeg2(self):
60
+ return self.timeSeg2
61
+
62
+ def setTimeSeg2(self, value):
63
+ if value is not None:
64
+ self.timeSeg2 = value
65
+ return self
66
+
67
+ def getTxBitRateSwitch(self):
68
+ return self.txBitRateSwitch
69
+
70
+ def setTxBitRateSwitch(self, value):
71
+ if value is not None:
72
+ self.txBitRateSwitch = value
73
+ return self
74
+
75
+ class CanControllerFdConfigurationRequirements(ARObject):
76
+ def __init__(self):
77
+ super().__init__()
78
+
79
+ self.maxNumberOfTimeQuantaPerBit = None # type: Integer
80
+ self.maxSamplePoint = None # type: Float
81
+ self.maxSyncJumpWidth = None # type: Float
82
+ self.maxTrcvDelayCompensationOffset = None # type: TimeValue
83
+ self.minNumberOfTimeQuantaPerBit = None # type: Integer
84
+ self.minSamplePoint = None # type: Float
85
+ self.minSyncJumpWidth = None # type: Float
86
+ self.minTrcvDelayCompensationOffset = None # type: TimeValue
87
+ self.paddingValue = None # type: PositiveInteger
88
+ self.txBitRateSwitch = None # type: Boolean
89
+
90
+ def getMaxNumberOfTimeQuantaPerBit(self):
91
+ return self.maxNumberOfTimeQuantaPerBit
92
+
93
+ def setMaxNumberOfTimeQuantaPerBit(self, value):
94
+ if value is not None:
95
+ self.maxNumberOfTimeQuantaPerBit = value
96
+ return self
97
+
98
+ def getMaxSamplePoint(self):
99
+ return self.maxSamplePoint
100
+
101
+ def setMaxSamplePoint(self, value):
102
+ if value is not None:
103
+ self.maxSamplePoint = value
104
+ return self
105
+
106
+ def getMaxSyncJumpWidth(self):
107
+ return self.maxSyncJumpWidth
108
+
109
+ def setMaxSyncJumpWidth(self, value):
110
+ if value is not None:
111
+ self.maxSyncJumpWidth = value
112
+ return self
113
+
114
+ def getMaxTrcvDelayCompensationOffset(self):
115
+ return self.maxTrcvDelayCompensationOffset
116
+
117
+ def setMaxTrcvDelayCompensationOffset(self, value):
118
+ if value is not None:
119
+ self.maxTrcvDelayCompensationOffset = value
120
+ return self
121
+
122
+ def getMinNumberOfTimeQuantaPerBit(self):
123
+ return self.minNumberOfTimeQuantaPerBit
124
+
125
+ def setMinNumberOfTimeQuantaPerBit(self, value):
126
+ if value is not None:
127
+ self.minNumberOfTimeQuantaPerBit = value
128
+ return self
129
+
130
+ def getMinSamplePoint(self):
131
+ return self.minSamplePoint
132
+
133
+ def setMinSamplePoint(self, value):
134
+ if value is not None:
135
+ self.minSamplePoint = value
136
+ return self
137
+
138
+ def getMinSyncJumpWidth(self):
139
+ return self.minSyncJumpWidth
140
+
141
+ def setMinSyncJumpWidth(self, value):
142
+ if value is not None:
143
+ self.minSyncJumpWidth = value
144
+ return self
145
+
146
+ def getMinTrcvDelayCompensationOffset(self):
147
+ return self.minTrcvDelayCompensationOffset
148
+
149
+ def setMinTrcvDelayCompensationOffset(self, value):
150
+ if value is not None:
151
+ self.minTrcvDelayCompensationOffset = value
152
+ return self
153
+
154
+ def getPaddingValue(self):
155
+ return self.paddingValue
156
+
157
+ def setPaddingValue(self, value):
158
+ if value is not None:
159
+ self.paddingValue = value
160
+ return self
161
+
162
+ def getTxBitRateSwitch(self):
163
+ return self.txBitRateSwitch
164
+
165
+ def setTxBitRateSwitch(self, value):
166
+ if value is not None:
167
+ self.txBitRateSwitch = value
168
+ return self
169
+
7
170
  class AbstractCanCommunicationControllerAttributes(ARObject, metaclass = ABCMeta):
8
171
  def __init__(self):
9
172
  super().__init__()
@@ -94,8 +257,6 @@ class CanControllerConfigurationRequirements(AbstractCanCommunicationControllerA
94
257
  self.minSyncJumpWidth = value
95
258
  return self
96
259
 
97
-
98
-
99
260
  class AbstractCanCommunicationController(CommunicationController, metaclass = ABCMeta):
100
261
  def __init__(self, parent: ARObject, short_name: str):
101
262
  if type(self) == AbstractCanCommunicationController:
@@ -111,7 +272,7 @@ class AbstractCanCommunicationController(CommunicationController, metaclass = AB
111
272
  def setCanControllerAttributes(self, value):
112
273
  self.canControllerAttributes = value
113
274
  return self
114
-
275
+
115
276
  class CanCommunicationController(AbstractCanCommunicationController):
116
277
  def __init__(self, parent: ARObject, short_name: str):
117
278
  super().__init__(parent, short_name)