armodel 1.4.3__py3-none-any.whl → 1.6.0__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 (87) hide show
  1. armodel/cli/arxml_dump_cli.py +14 -14
  2. armodel/cli/memory_section_cli.py +76 -0
  3. armodel/cli/system_signal_cli.py +74 -0
  4. armodel/lib/__init__.py +2 -1
  5. armodel/lib/system_signal.py +37 -0
  6. armodel/models/__init__.py +6 -3
  7. armodel/models/annotation.py +27 -3
  8. armodel/models/ar_object.py +18 -6
  9. armodel/models/ar_package.py +248 -30
  10. armodel/models/ar_ref.py +115 -45
  11. armodel/models/bsw_module_template.py +66 -28
  12. armodel/models/common_structure.py +150 -150
  13. armodel/models/communication.py +1 -1
  14. armodel/models/data_prototype.py +41 -6
  15. armodel/models/datatype.py +11 -5
  16. armodel/models/fibex/__init__.py +0 -0
  17. armodel/models/fibex/can_communication.py +122 -0
  18. armodel/models/fibex/fibex_4_can/__init__.py +0 -0
  19. armodel/models/fibex/fibex_4_lin/__init__.py +0 -0
  20. armodel/models/fibex/fibex_4_multiplatform.py +138 -0
  21. armodel/models/fibex/fibex_core/__init__.py +0 -0
  22. armodel/models/fibex/fibex_core/core_communication.py +627 -0
  23. armodel/models/fibex/fibex_core/core_topology.py +180 -0
  24. armodel/models/fibex/fibex_core.py +341 -0
  25. armodel/models/fibex/lin_communication.py +38 -0
  26. armodel/models/fibex/lin_topology.py +7 -0
  27. armodel/models/general_structure.py +119 -10
  28. armodel/models/implementation.py +4 -5
  29. armodel/models/internal_behavior.py +63 -0
  30. armodel/models/m2/__init__.py +0 -0
  31. armodel/models/m2/autosar_templates/__init__.py +0 -0
  32. armodel/models/m2/autosar_templates/common_structure/__init__.py +188 -0
  33. armodel/models/m2/autosar_templates/common_structure/constants.py +0 -0
  34. armodel/models/m2/autosar_templates/ecuc_description_template.py +268 -0
  35. armodel/models/m2/autosar_templates/sw_component_template/__init__.py +0 -0
  36. armodel/models/m2/autosar_templates/sw_component_template/communication.py +316 -0
  37. armodel/models/m2/autosar_templates/sw_component_template/components/__init__.py +0 -0
  38. armodel/models/m2/autosar_templates/sw_component_template/components/instance_refs.py +149 -0
  39. armodel/models/m2/autosar_templates/sw_component_template/port_interface.py +236 -0
  40. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/__init__.py +203 -0
  41. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/access_count.py +13 -0
  42. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py +54 -0
  43. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py +39 -0
  44. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py +26 -0
  45. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/trigger.py +10 -0
  46. armodel/models/m2/autosar_templates/system_template/__init__.py +321 -0
  47. armodel/models/m2/autosar_templates/system_template/data_mapping.py +88 -0
  48. armodel/models/m2/autosar_templates/system_template/network_management.py +554 -0
  49. armodel/models/m2/autosar_templates/system_template/transport_protocols.py +7 -0
  50. armodel/models/m2/msr/__init__.py +0 -0
  51. armodel/models/m2/msr/asam_hdo/__init__.py +0 -0
  52. armodel/models/m2/msr/asam_hdo/units.py +105 -0
  53. armodel/models/m2/msr/data_dictionary/__init__.py +0 -0
  54. armodel/models/m2/msr/data_dictionary/auxillary_objects.py +42 -0
  55. armodel/models/m2/msr/data_dictionary/data_def_properties.py +295 -0
  56. armodel/models/m2/msr/documentation/__init__.py +0 -0
  57. armodel/models/m2/msr/documentation/block_elements.py +18 -0
  58. armodel/models/mode_declaration.py +8 -0
  59. armodel/models/multilanguage_data.py +15 -0
  60. armodel/models/per_instance_memory.py +34 -6
  61. armodel/models/port_prototype.py +15 -159
  62. armodel/models/rpt_scenario.py +20 -0
  63. armodel/models/sw_component.py +48 -187
  64. armodel/models/system_template/__init__.py +0 -0
  65. armodel/models/system_template/network_management.py +7 -0
  66. armodel/models/system_template/transport_protocols.py +7 -0
  67. armodel/models/timing.py +91 -0
  68. armodel/parser/abstract_arxml_parser.py +11 -2
  69. armodel/parser/arxml_parser.py +1101 -227
  70. armodel/tests/test_armodel/models/test_ar_package.py +1 -1
  71. armodel/tests/test_armodel/models/test_ar_ref.py +3 -3
  72. armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -5
  73. armodel/tests/test_armodel/models/test_common_structure.py +3 -3
  74. armodel/tests/test_armodel/models/test_data_dictionary.py +5 -5
  75. armodel/tests/test_armodel/models/test_data_prototype.py +2 -2
  76. armodel/tests/test_armodel/models/test_datatype.py +8 -8
  77. armodel/tests/test_armodel/models/test_port_interface.py +6 -6
  78. armodel/tests/test_armodel/parser/test_parse_bswmd.py +16 -8
  79. armodel/tests/test_armodel/parser/test_sw_components.py +6 -6
  80. armodel/writer/arxml_writer.py +1046 -181
  81. {armodel-1.4.3.dist-info → armodel-1.6.0.dist-info}/METADATA +48 -1
  82. armodel-1.6.0.dist-info/RECORD +127 -0
  83. {armodel-1.4.3.dist-info → armodel-1.6.0.dist-info}/entry_points.txt +3 -1
  84. armodel-1.4.3.dist-info/RECORD +0 -78
  85. {armodel-1.4.3.dist-info → armodel-1.6.0.dist-info}/LICENSE +0 -0
  86. {armodel-1.4.3.dist-info → armodel-1.6.0.dist-info}/WHEEL +0 -0
  87. {armodel-1.4.3.dist-info → armodel-1.6.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,180 @@
1
+ from abc import ABCMeta
2
+ from typing import List
3
+
4
+ from ...fibex.lin_communication import LinFrameTriggering
5
+ from ...fibex.can_communication import CanFrameTriggering
6
+ from ...ar_ref import RefType
7
+ from ...general_structure import Identifiable
8
+ from ...ar_object import ARFloat, ARLiteral, ARObject
9
+ from ...fibex.fibex_core.core_communication import FibexElement, FrameTriggering, ISignalTriggering, PduTriggering
10
+
11
+ class PhysicalChannel (Identifiable, metaclass = ABCMeta):
12
+ def __init__(self, parent: ARObject, short_name: str):
13
+ if type(self) == PhysicalChannel:
14
+ raise NotImplementedError("PhysicalChannel is an abstract class.")
15
+
16
+ super().__init__(parent, short_name)
17
+
18
+ self.commConnectorRefs = [] # type: List[RefType]
19
+ self.managedPhysicalChannelRefs = [] # type: List[RefType]
20
+
21
+ def getCommConnectorRefs(self):
22
+ return self.commConnectorRefs
23
+
24
+ def addCommConnectorRef(self, value):
25
+ self.commConnectorRefs.append(value)
26
+ return self
27
+
28
+ def getFrameTriggerings(self) -> List[FrameTriggering]:
29
+ return list(sorted(filter(lambda a: isinstance(a, FrameTriggering), self.elements.values()), key= lambda o:o.short_name))
30
+
31
+ def createCanFrameTriggering(self, short_name: str):
32
+ if (short_name not in self.elements):
33
+ channel = CanFrameTriggering(self, short_name)
34
+ self.elements[short_name] = channel
35
+ return self.elements[short_name]
36
+
37
+ def createLinFrameTriggering(self, short_name: str):
38
+ if (short_name not in self.elements):
39
+ channel = LinFrameTriggering(self, short_name)
40
+ self.elements[short_name] = channel
41
+ return self.elements[short_name]
42
+
43
+ def getISignalTriggerings(self) -> List[ISignalTriggering]:
44
+ return list(sorted(filter(lambda a: isinstance(a, ISignalTriggering), self.elements.values()), key= lambda o:o.short_name))
45
+
46
+ def createISignalTriggering(self, short_name: str):
47
+ if (short_name not in self.elements):
48
+ channel = ISignalTriggering(self, short_name)
49
+ self.elements[short_name] = channel
50
+ return self.elements[short_name]
51
+
52
+
53
+ def getManagedPhysicalChannelRefs(self):
54
+ return self.managedPhysicalChannelRefs
55
+
56
+ def addManagedPhysicalChannelRef(self, value):
57
+ self.managedPhysicalChannelRefs.append(value)
58
+ return self
59
+
60
+ def getPduTriggerings(self) -> List[PduTriggering]:
61
+ return list(sorted(filter(lambda a: isinstance(a, PduTriggering), self.elements.values()), key= lambda o:o.short_name))
62
+
63
+ def createPduTriggering(self, short_name: str):
64
+ if (short_name not in self.elements):
65
+ channel = PduTriggering(self, short_name)
66
+ self.elements[short_name] = channel
67
+ return self.elements[short_name]
68
+
69
+ class AbstractCanPhysicalChannel(PhysicalChannel, metaclass = ABCMeta):
70
+ def __init__(self, parent, short_name):
71
+ if type(self) == ARObject:
72
+ raise NotImplementedError("AbstractCanPhysicalChannel is an abstract class.")
73
+
74
+ super().__init__(parent, short_name)
75
+
76
+ class CanPhysicalChannel(AbstractCanPhysicalChannel):
77
+ def __init__(self, parent, short_name):
78
+ super().__init__(parent, short_name)
79
+
80
+ class LinPhysicalChannel(PhysicalChannel):
81
+ def __init__(self, parent: ARObject, short_name: str):
82
+ super().__init__(parent, short_name)
83
+
84
+ class CommunicationCluster(FibexElement, metaclass = ABCMeta):
85
+ def __init__(self, parent: ARObject, short_name: str):
86
+ if type(self) == CommunicationCluster:
87
+ raise NotImplementedError("CommunicationCluster is an abstract class.")
88
+
89
+ super().__init__(parent, short_name)
90
+
91
+ self.baudrate = None # type: ARFloat
92
+ self.protocolName = None # type: ARLiteral
93
+ self.protocolVersion = None # type: ARLiteral
94
+
95
+ def getBaudrate(self):
96
+ return self.baudrate
97
+
98
+ def setBaudrate(self, value):
99
+ self.baudrate = value
100
+ return self
101
+
102
+ def getPhysicalChannels(self) -> List[PhysicalChannel]:
103
+ return list(sorted(filter(lambda a: isinstance(a, PhysicalChannel), self.elements.values()), key= lambda o:o.short_name))
104
+
105
+ def getCanPhysicalChannels(self) -> List[CanPhysicalChannel]:
106
+ return list(sorted(filter(lambda a: isinstance(a, CanPhysicalChannel), self.elements.values()), key= lambda o:o.short_name))
107
+
108
+ def getLinPhysicalChannels(self) -> List[LinPhysicalChannel]:
109
+ return list(sorted(filter(lambda a: isinstance(a, LinPhysicalChannel), self.elements.values()), key= lambda o:o.short_name))
110
+
111
+ def createCanPhysicalChannel(self, short_name: str):
112
+ if (short_name not in self.elements):
113
+ channel = CanPhysicalChannel(self, short_name)
114
+ self.elements[short_name] = channel
115
+ return self.elements[short_name]
116
+
117
+ def createLinPhysicalChannel(self, short_name: str):
118
+ if (short_name not in self.elements):
119
+ channel = LinPhysicalChannel(self, short_name)
120
+ self.elements[short_name] = channel
121
+ return self.elements[short_name]
122
+
123
+ def getProtocolName(self):
124
+ return self.protocolName
125
+
126
+ def setProtocolName(self, value):
127
+ self.protocolName = value
128
+ return self
129
+
130
+ def getProtocolVersion(self):
131
+ return self.protocolVersion
132
+
133
+ def setProtocolVersion(self, value):
134
+ self.protocolVersion = value
135
+ return self
136
+
137
+ class AbstractCanCluster(CommunicationCluster, metaclass = ABCMeta):
138
+ def __init__(self, parent: ARObject, short_name: str):
139
+ if type(self) == AbstractCanCluster:
140
+ raise NotImplementedError("AbstractCanCluster is an abstract class.")
141
+
142
+ super().__init__(parent, short_name)
143
+
144
+ self.busOffRecovery = None
145
+ self.canFdBaudrate = None
146
+ self.canXlBaudrate = None
147
+
148
+ def getBusOffRecovery(self):
149
+ return self.busOffRecovery
150
+
151
+ def setBusOffRecovery(self, value):
152
+ self.busOffRecovery = value
153
+ return self
154
+
155
+ def getCanFdBaudrate(self):
156
+ return self.canFdBaudrate
157
+
158
+ def setCanFdBaudrate(self, value):
159
+ self.canFdBaudrate = value
160
+ return self
161
+
162
+ def getCanXlBaudrate(self):
163
+ return self.canXlBaudrate
164
+
165
+ def setCanXlBaudrate(self, value):
166
+ self.canXlBaudrate = value
167
+ return self
168
+
169
+
170
+ class CanCluster(AbstractCanCluster):
171
+ def __init__(self, parent: ARObject, short_name: str):
172
+ super().__init__(parent, short_name)
173
+
174
+ class LinCluster(CommunicationCluster):
175
+ def __init__(self, parent: ARObject, short_name: str):
176
+ super().__init__(parent, short_name)
177
+
178
+ class EcuInstance(FibexElement):
179
+ def __init__(self, parent, short_name):
180
+ super().__init__(parent, short_name)
@@ -0,0 +1,341 @@
1
+ from abc import ABCMeta
2
+ from typing import List
3
+
4
+ from armodel.models.ar_ref import RefType
5
+
6
+ from ..ar_object import ARFloat, ARLiteral, ARNumerical, ARObject, ARPositiveInteger
7
+ from ..general_structure import Identifiable
8
+
9
+
10
+ class FibexElement(Identifiable):
11
+ __metaclass__ = ABCMeta
12
+
13
+ def __init__(self, parent: ARObject, short_name: str):
14
+ if type(self) == FibexElement:
15
+ raise NotImplementedError("FibexElement is an abstract class.")
16
+
17
+ super().__init__(parent, short_name)
18
+
19
+ class PhysicalChannel (Identifiable):
20
+ __metaclass__ = ABCMeta
21
+
22
+ def __init__(self, parent: ARObject, short_name: str):
23
+ if type(self) == PhysicalChannel:
24
+ raise NotImplementedError("PhysicalChannel is an abstract class.")
25
+
26
+ super().__init__(parent, short_name)
27
+
28
+
29
+ class CommunicationCluster(FibexElement):
30
+ __metaclass__ = ABCMeta
31
+
32
+ def __init__(self, parent: ARObject, short_name: str):
33
+ if type(self) == CommunicationCluster:
34
+ raise NotImplementedError("CommunicationCluster is an abstract class.")
35
+
36
+ super().__init__(parent, short_name)
37
+
38
+ self.baudrate = None # type: ARFloat
39
+ self.physical_channels = [] # type: List[PhysicalChannel]
40
+ self.protocol_name = None # type: ARLiteral
41
+ self.protocol_version = None # type: ARLiteral
42
+
43
+ def addPhysicalChannel(self, channel: PhysicalChannel):
44
+ self.physical_channels.append(channel)
45
+
46
+ def getPhysicalChannels(self) -> List[PhysicalChannel]:
47
+ return self.physical_channels
48
+
49
+ @property
50
+ def protocolName(self) -> ARLiteral:
51
+ return self.protocol_name
52
+
53
+ @protocolName.setter
54
+ def protocolName(self, value: ARLiteral):
55
+ self.protocol_name = value
56
+
57
+ @property
58
+ def protocolVersion(self) -> ARLiteral:
59
+ return self.protocol_version
60
+
61
+ @protocolVersion.setter
62
+ def protocolVersion(self, value: ARLiteral):
63
+ self.protocol_version = value
64
+
65
+ class Pdu(FibexElement):
66
+ __metaclass__ = ABCMeta
67
+
68
+ def __init__(self, parent: ARObject, short_name: str):
69
+ if type(self) == Pdu:
70
+ raise NotImplementedError("Pdu is an abstract class.")
71
+
72
+ super().__init__(parent, short_name)
73
+
74
+ self.length = None # type: ARNumerical
75
+
76
+ class PduToFrameMapping(Identifiable):
77
+ def __init__(self, parent: ARObject, short_name: str):
78
+ super().__init__(parent, short_name)
79
+
80
+ self.packing_byte_order = None # type: ARLiteral
81
+ self.pdu_ref = None # type: RefType
82
+ self.start_position = None # type: ARNumerical
83
+
84
+ @property
85
+ def packingByteOrder(self) -> ARLiteral:
86
+ return self.packing_byte_order
87
+
88
+ @packingByteOrder.setter
89
+ def packingByteOrder(self, value: ARLiteral):
90
+ self.packing_byte_order = value
91
+
92
+ @property
93
+ def pduRef(self) -> RefType:
94
+ return self.pdu_ref
95
+
96
+ @pduRef.setter
97
+ def pduRef(self, value: RefType):
98
+ self.pdu_ref = value
99
+
100
+ @property
101
+ def startPosition(self) -> ARNumerical:
102
+ return self.start_position
103
+
104
+ @startPosition.setter
105
+ def startPosition(self, value: ARNumerical):
106
+ self.start_position = value
107
+
108
+ class Frame(Identifiable):
109
+ __metaclass__ = ABCMeta
110
+
111
+ def __init__(self, parent: ARObject, short_name: str):
112
+ if type(self) == Frame:
113
+ raise NotImplementedError("Frame is an abstract class.")
114
+
115
+ super().__init__(parent, short_name)
116
+
117
+ self.frame_length = None
118
+ self.pdu_to_frame_mappings = [] # type: List[PduToFrameMapping]
119
+
120
+ @property
121
+ def frameLength(self) -> ARNumerical:
122
+ return self.frame_length
123
+
124
+ @frameLength.setter
125
+ def frameLength(self, value: ARNumerical):
126
+ self.frame_length = value
127
+
128
+ def createPduToFrameMapping(self, short_name: str) -> PduToFrameMapping:
129
+ if (short_name not in self.elements):
130
+ mapping = PduToFrameMapping(self, short_name)
131
+ self.elements[short_name] = mapping
132
+ self.pdu_to_frame_mappings.append(mapping)
133
+ return self.elements[short_name]
134
+
135
+ def getPduToFrameMappings(self) -> List[PduToFrameMapping]:
136
+ return list(sorted(filter(lambda a: isinstance(a, PduToFrameMapping), self.elements.values()), key= lambda o:o.short_name))
137
+
138
+ class ContainedIPduProps(ARObject):
139
+ def __init__(self):
140
+ super().__init__()
141
+
142
+ self._collection_semantics = None # type: ARLiteral
143
+ self._header_id_long_header = None # type: ARPositiveInteger
144
+ self._header_id_short_header = None # type: ARPositiveInteger
145
+ self._offset = None # type: ARNumerical
146
+ self._timeout = None # type: ARNumerical
147
+ self._trigger = None # type: ARLiteral
148
+ self._update_indication_bit_position = None # type: ARNumerical
149
+
150
+ @property
151
+ def headerIdLongHeader(self) -> ARPositiveInteger:
152
+ return self._header_id_long_header
153
+
154
+ @headerIdLongHeader.setter
155
+ def headerIdLongHeader(self, value: ARPositiveInteger):
156
+ self._header_id_long_header = value
157
+
158
+ @property
159
+ def headerIdShortHeader(self) -> ARPositiveInteger:
160
+ return self._header_id_short_header
161
+
162
+ @headerIdShortHeader.setter
163
+ def headerIdShortHeader(self, value: ARPositiveInteger):
164
+ self._header_id_short_header = value
165
+
166
+ @property
167
+ def offset(self) -> ARNumerical:
168
+ return self._offset
169
+
170
+ @offset.setter
171
+ def offset(self, value: ARNumerical):
172
+ self._offset = value
173
+
174
+ @property
175
+ def timeout(self):
176
+ return self._timeout
177
+
178
+ @timeout.setter
179
+ def timeout(self, value):
180
+ self._timeout = value
181
+
182
+ @property
183
+ def collectionSemantics(self) -> ARLiteral:
184
+ return self._collection_semantics
185
+
186
+ @collectionSemantics.setter
187
+ def collectionSemantics(self, value: ARLiteral):
188
+ self._collection_semantics = value
189
+
190
+ @property
191
+ def trigger(self) -> ARLiteral:
192
+ return self._trigger
193
+
194
+ @trigger.setter
195
+ def trigger(self, value: ARLiteral):
196
+ self._trigger = value
197
+
198
+ @property
199
+ def updateIndicationBitPosition(self) -> ARNumerical:
200
+ return self._update_indication_bit_position
201
+
202
+ @updateIndicationBitPosition.setter
203
+ def updateIndicationBitPosition(self, value: ARNumerical):
204
+ self._update_indication_bit_position = value
205
+
206
+ class IPdu(Pdu):
207
+ __metaclass__ = ABCMeta
208
+
209
+ def __init__(self, parent: ARObject, short_name: str):
210
+ if type(self) == IPdu:
211
+ raise NotImplementedError("IPdu is an abstract class.")
212
+
213
+ super().__init__(parent, short_name)
214
+
215
+ self._contained_ipdu_props = None # type: ContainedIPduProps
216
+
217
+ @property
218
+ def containedIPduProps(self) -> ContainedIPduProps:
219
+ return self._contained_ipdu_props
220
+
221
+ @containedIPduProps.setter
222
+ def containedIPduProps(self, value: ContainedIPduProps):
223
+ self._contained_ipdu_props = value
224
+
225
+
226
+ class NmPdu(Pdu):
227
+ def __init__(self, parent: ARObject, short_name: str):
228
+ super().__init__(parent, short_name)
229
+
230
+
231
+ class NPdu(IPdu):
232
+ def __init__(self, parent: ARObject, short_name: str):
233
+ super().__init__(parent, short_name)
234
+
235
+ class DcmIPdu(IPdu):
236
+ def __init__(self, parent: ARObject, short_name: str):
237
+ super().__init__(parent, short_name)
238
+
239
+ class FrameTriggering(Identifiable):
240
+ __metaclass__ = ABCMeta
241
+
242
+ def __init__(self, parent: ARObject, short_name: str):
243
+ if type(self) == FrameTriggering:
244
+ raise NotImplementedError("FrameTriggering is an abstract class.")
245
+
246
+ super().__init__(parent, short_name)
247
+
248
+ class ISignal(FibexElement):
249
+ def __init__(self, parent: ARObject, short_name: str):
250
+ super().__init__(parent, short_name)
251
+
252
+ self._data_transformation_ref = None
253
+ self._data_type_policy = None
254
+ self._i_signal_props = None
255
+ self._i_signal_type = None
256
+ self._init_value = None
257
+ self._length = None
258
+ self._network_representation_props = None
259
+ self._system_signal_ref = None # type: RefType
260
+ self._timeout_substitution_value = None
261
+ self._transformation_i_signal_props = []
262
+
263
+ @property
264
+ def dataTransformationRef(self):
265
+ return self._data_transformation_ref
266
+
267
+ @dataTransformationRef.setter
268
+ def dataTransformationRef(self, value):
269
+ self._data_transformation_ref = value
270
+
271
+ @property
272
+ def dataTypePolicy(self):
273
+ return self._data_type_policy
274
+
275
+ @dataTypePolicy.setter
276
+ def dataTypePolicy(self, value):
277
+ self._data_type_policy = value
278
+
279
+ @property
280
+ def iSignalProps(self):
281
+ return self._i_signal_props
282
+
283
+ @iSignalProps.setter
284
+ def iSignalProps(self, value):
285
+ self._i_signal_props = value
286
+
287
+ @property
288
+ def iSignalType(self):
289
+ return self._i_signal_type
290
+
291
+ @iSignalType.setter
292
+ def iSignalType(self, value):
293
+ self._i_signal_type = value
294
+
295
+ @property
296
+ def initValue(self):
297
+ return self._init_value
298
+
299
+ @initValue.setter
300
+ def initValue(self, value):
301
+ self._init_value = value
302
+
303
+ @property
304
+ def length(self):
305
+ return self._length
306
+
307
+ @length.setter
308
+ def length(self, value):
309
+ self._length = value
310
+
311
+ @property
312
+ def networkRepresentationProps(self):
313
+ return self._network_representation_props
314
+
315
+ @networkRepresentationProps.setter
316
+ def networkRepresentationProps(self, value):
317
+ self._network_representation_props = value
318
+
319
+ @property
320
+ def systemSignalRef(self):
321
+ return self._system_signal_ref
322
+
323
+ @systemSignalRef.setter
324
+ def systemSignalRef(self, value):
325
+ self._system_signal_ref = value
326
+
327
+ @property
328
+ def timeoutSubstitutionValue(self):
329
+ return self._timeout_substitution_value
330
+
331
+ @timeoutSubstitutionValue.setter
332
+ def timeoutSubstitutionValue(self, value):
333
+ self._timeout_substitution_value = value
334
+
335
+ @property
336
+ def transformationISignalProps(self):
337
+ return self._transformation_i_signal_props
338
+
339
+ @transformationISignalProps.setter
340
+ def transformationISignalProps(self, value):
341
+ self._transformation_i_signal_props = value
@@ -0,0 +1,38 @@
1
+
2
+ from abc import ABCMeta
3
+ from ..ar_object import ARLiteral, ARNumerical, ARObject
4
+ from .fibex_core.core_communication import Frame, FrameTriggering
5
+
6
+ class LinFrame(Frame):
7
+ __metaclass__ = ABCMeta
8
+
9
+ def __init__(self, parent: ARObject, short_name: str):
10
+ if type(self) == LinFrame:
11
+ raise NotImplementedError("LinFrame is an abstract class.")
12
+
13
+ super().__init__(parent, short_name)
14
+
15
+ class LinUnconditionalFrame(LinFrame):
16
+ def __init__(self, parent: ARObject, short_name: str):
17
+ super().__init__(parent, short_name)
18
+
19
+ class LinFrameTriggering(FrameTriggering):
20
+ def __init__(self, parent, short_name):
21
+ super().__init__(parent, short_name)
22
+
23
+ self.identifier = None # type: ARNumerical
24
+ self.linChecksum = None # type: ARLiteral
25
+
26
+ def getIdentifier(self):
27
+ return self.identifier
28
+
29
+ def setIdentifier(self, value):
30
+ self.identifier = value
31
+ return self
32
+
33
+ def getLinChecksum(self):
34
+ return self.linChecksum
35
+
36
+ def setLinChecksum(self, value):
37
+ self.linChecksum = value
38
+ return self
@@ -0,0 +1,7 @@
1
+
2
+ from ..ar_object import ARObject
3
+ from .fibex_core import CommunicationCluster
4
+
5
+ class LinCluster(CommunicationCluster):
6
+ def __init__(self, parent: ARObject, short_name: str):
7
+ super().__init__(parent, short_name)