slm_open_api_package 0.2.10__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 (37) hide show
  1. slm_api/CPB_example.py +74 -0
  2. slm_api/__init__.py +5 -0
  3. slm_api/enums/fast_log_intervals_enum.py +16 -0
  4. slm_api/enums/sequence_id_enum.py +352 -0
  5. slm_api/example_multi.py +78 -0
  6. slm_api/fast_log_example.py +172 -0
  7. slm_api/flac_example.py +164 -0
  8. slm_api/helpers/FigureHandler.py +65 -0
  9. slm_api/helpers/Leq.py +87 -0
  10. slm_api/helpers/__init__.py +5 -0
  11. slm_api/helpers/buffer.py +27 -0
  12. slm_api/helpers/data_handler.py +94 -0
  13. slm_api/helpers/fft.py +38 -0
  14. slm_api/helpers/flac_stream_2_samples.py +64 -0
  15. slm_api/helpers/https_requests.py +79 -0
  16. slm_api/helpers/measurment_handler.py +20 -0
  17. slm_api/helpers/sequence_handler.py +43 -0
  18. slm_api/helpers/stream_handler.py +105 -0
  19. slm_api/helpers/stream_handlers.py +434 -0
  20. slm_api/helpers/tmpFileStateMachine.py +93 -0
  21. slm_api/helpers/websocket_handler.py +12 -0
  22. slm_api/helpers/webxi_helper_functions.py +79 -0
  23. slm_api/helpers/webxi_root.pem +24 -0
  24. slm_api/mp3_example.py +165 -0
  25. slm_api/multi_device_flac.py +105 -0
  26. slm_api/multi_instrument_example.py +74 -0
  27. slm_api/screen_record_example.py +64 -0
  28. slm_api/webxi/README.md +25 -0
  29. slm_api/webxi/__init__.py +5 -0
  30. slm_api/webxi/webxi-header.ksy +32 -0
  31. slm_api/webxi/webxi-stream.ksy +342 -0
  32. slm_api/webxi/webxi_header.py +42 -0
  33. slm_api/webxi/webxi_stream.py +450 -0
  34. slm_open_api_package-0.2.10.dist-info/METADATA +206 -0
  35. slm_open_api_package-0.2.10.dist-info/RECORD +37 -0
  36. slm_open_api_package-0.2.10.dist-info/WHEEL +4 -0
  37. slm_open_api_package-0.2.10.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,342 @@
1
+ meta:
2
+ id: webxi_stream
3
+ endian: le
4
+
5
+
6
+ types:
7
+ time_family:
8
+ seq:
9
+ - id: k
10
+ type: u1
11
+ - id: l
12
+ type: u1
13
+ - id: m
14
+ type: u1
15
+ - id: n
16
+ type: u1
17
+ header:
18
+ seq:
19
+ - id: magic
20
+ contents: [0x42, 0x4b]
21
+ - id: header_length
22
+ type: u2
23
+ - id: message_type
24
+ type: u2
25
+ enum: e_message_type
26
+ - id: content_version
27
+ type: u2
28
+ - id: reserved2
29
+ type: u4
30
+ - id: time
31
+ type: u8
32
+ - id: content_length
33
+ type: u4
34
+ enums:
35
+ e_message_type:
36
+ 1: e_sequence_data
37
+ 2: e_data_quality
38
+ 3: e_state
39
+ 4: e_status
40
+ 5: e_trigger
41
+ 6: e_node
42
+ 7: e_sync
43
+ 9: e_debug
44
+ 10: e_package
45
+ 11: e_aux_sequence_data
46
+ value:
47
+ seq:
48
+ - id: value1
49
+ type: u1
50
+ - id: value2
51
+ type: u1
52
+ - id: value3
53
+ type: s1
54
+ - id: value4
55
+ type: s1
56
+ instances:
57
+ calc_value:
58
+ value: value1 + (value2 << 8) + (value3 << 16)
59
+
60
+
61
+ string:
62
+ seq:
63
+ - id: count
64
+ type: u4
65
+ - id: content
66
+ type: str
67
+ encoding: UTF-8
68
+ size: count
69
+
70
+
71
+ raw_sequence_data_block:
72
+ seq:
73
+ - id: sequence_id
74
+ type: u2
75
+ - id: value_length
76
+ type: u4
77
+ - id: values
78
+ type: u1
79
+ repeat: expr
80
+ repeat-expr: value_length
81
+
82
+
83
+ mp3_sequence_data_block:
84
+ seq:
85
+ - id: number_of_sequences
86
+ type: u2
87
+ - id: sequence_ids
88
+ type: u2
89
+ repeat: expr
90
+ repeat-expr: number_of_sequences
91
+ - id: frame_length
92
+ type: u4
93
+ - id: frame
94
+ type: u1
95
+ repeat: expr
96
+ repeat-expr: frame_length
97
+
98
+
99
+ flac_sequence_data_block:
100
+ seq:
101
+ - id: number_of_sequences
102
+ type: u2
103
+ - id: sequence_ids
104
+ type: u2
105
+ repeat: expr
106
+ repeat-expr: number_of_sequences
107
+ - id: frame_length
108
+ type: u4
109
+ - id: frame
110
+ type: u1
111
+ repeat: expr
112
+ repeat-expr: frame_length
113
+
114
+
115
+ # sequence_block:
116
+ # seq:
117
+ # - id: signal_id
118
+ # type: u2
119
+ # - id: number_of_values
120
+ # type: u2
121
+ # - id: values
122
+ # type: value
123
+ # repeat: expr
124
+ # repeat-expr: number_of_values
125
+
126
+
127
+ sequence_data:
128
+ seq:
129
+ - id: number_of_blocks
130
+ type: u2
131
+ - id: message_format
132
+ type: u1
133
+ enum: e_message_format
134
+ - id: reserved
135
+ type: u1
136
+ - id: sequence_blocks
137
+ type:
138
+ switch-on: message_format
139
+ cases:
140
+ 'e_message_format::raw' : raw_sequence_data_block
141
+ 'e_message_format::mp3' : mp3_sequence_data_block
142
+ 'e_message_format::flac' : flac_sequence_data_block
143
+ repeat: expr
144
+ repeat-expr: number_of_blocks
145
+ enums:
146
+ e_message_format:
147
+ 0: raw
148
+ 1: mp3
149
+ 2: flac
150
+
151
+
152
+ ##TODO: This block poorly specifies the type of value in it
153
+ aux_value:
154
+ seq:
155
+ - id: relative_time
156
+ type: u4
157
+ - id: values
158
+ type: value
159
+
160
+ aux_sequence_data_block:
161
+ seq:
162
+ - id: sequence_id
163
+ type: u2
164
+ - id: number_of_values
165
+ type: u2
166
+ - id: values
167
+ type: aux_value
168
+ repeat: expr
169
+ repeat-expr: number_of_values
170
+
171
+
172
+ aux_sequence_data:
173
+ seq:
174
+ - id: number_of_sequences
175
+ type: u2
176
+ - id: reserved
177
+ type: u2
178
+ - id: aux_sequence_data_blocks
179
+ type: aux_sequence_data_block
180
+ repeat: expr
181
+ repeat-expr: number_of_sequences
182
+
183
+
184
+ quality_block:
185
+ seq:
186
+ - id: quality_id
187
+ type: u2
188
+ - id: validity
189
+ type: u2
190
+ - id: reserved
191
+ type: u4
192
+
193
+
194
+ data_quality:
195
+ seq:
196
+ - id: number_of_qualities
197
+ type: u2
198
+ - id: reserved
199
+ type: u2
200
+ - id: qualities
201
+ type: quality_block
202
+ repeat: expr
203
+ repeat-expr: number_of_qualities
204
+
205
+
206
+ state:
207
+ seq:
208
+ - id: state
209
+ type: u2
210
+ enum: e_state
211
+ - id: reserved
212
+ type: u2
213
+ - id: application_name
214
+ type: string
215
+ enums:
216
+ e_state:
217
+ 0: initial
218
+ 1: error
219
+ 2: deactivated
220
+ 3: activated
221
+ 4: running
222
+ 5: ramping_down
223
+ 6: pause
224
+ 7: stopping
225
+ 8: result_measured
226
+ 9: result_loaded
227
+
228
+ status:
229
+ seq:
230
+ - id: channel_type
231
+ type: u2
232
+ enum: e_channel_type
233
+ - id: channel_id
234
+ type: u2
235
+ - id: status_type
236
+ type: u2
237
+ enum: e_status_type
238
+ - id: reserved
239
+ type: u2
240
+ - id: value1
241
+ type: s4
242
+ - id: value2
243
+ type: s4
244
+ - id: str
245
+ type: string
246
+ enums:
247
+ e_channel_type:
248
+ 0: todo
249
+ e_status_type:
250
+ 0: todo1
251
+
252
+
253
+ node_change:
254
+ seq:
255
+ - id: flags
256
+ type: u2
257
+ - id: reserved
258
+ type: u2
259
+ - id: path
260
+ type: string
261
+ - id: json
262
+ type: string
263
+ node:
264
+ seq:
265
+ - id: n_changes
266
+ type: u2
267
+ - id: reserved
268
+ type: u2
269
+ - id: changes
270
+ type: node_change
271
+ repeat: expr
272
+ repeat-expr: n_changes
273
+
274
+
275
+ debug:
276
+ seq:
277
+ - id: message
278
+ type: string
279
+
280
+
281
+ sync:
282
+ seq:
283
+ - id: sync_id
284
+ type: u4
285
+
286
+
287
+ package_block:
288
+ seq:
289
+ - id: package_id
290
+ type: u2
291
+ - id: data_length
292
+ type: u2
293
+ - id: data
294
+ type: u1
295
+ repeat: expr
296
+ repeat-expr: data_length
297
+
298
+
299
+ package:
300
+ seq:
301
+ - id: number_of_packages
302
+ type: u2
303
+ - id: reserved
304
+ type: u2
305
+ - id: packages
306
+ type: package_block
307
+ repeat: expr
308
+ repeat-expr: number_of_packages
309
+
310
+
311
+ trigger:
312
+ seq:
313
+ - id: sequence_id
314
+ type: u2
315
+ - id: trigger_type
316
+ type: u2
317
+ enum: e_trigger_type
318
+ enums:
319
+ e_trigger_type:
320
+ 0: unkown
321
+ 1: level
322
+ 2: start
323
+
324
+
325
+ seq:
326
+ - id: header
327
+ type: header
328
+ - id: content
329
+ size: header.content_length
330
+ type:
331
+ switch-on: header.message_type
332
+ cases:
333
+ 'header::e_message_type::e_sequence_data': sequence_data
334
+ 'header::e_message_type::e_data_quality': data_quality
335
+ 'header::e_message_type::e_state': state
336
+ 'header::e_message_type::e_status': status
337
+ 'header::e_message_type::e_trigger': trigger
338
+ 'header::e_message_type::e_node': node
339
+ 'header::e_message_type::e_sync': sync
340
+ 'header::e_message_type::e_debug': debug
341
+ 'header::e_message_type::e_package': package
342
+ 'header::e_message_type::e_aux_sequence_data': aux_sequence_data
@@ -0,0 +1,42 @@
1
+ # This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
2
+
3
+ from packaging.version import Version as parse_version
4
+ import kaitaistruct
5
+ from kaitaistruct import KaitaiStruct, KaitaiStream, BytesIO
6
+ from enum import Enum
7
+
8
+
9
+ if parse_version(kaitaistruct.__version__) < parse_version('0.9'):
10
+ raise Exception("Incompatible Kaitai Struct Python API: 0.9 or later is required, but you have %s" % (kaitaistruct.__version__))
11
+
12
+ class WebxiHeader(KaitaiStruct):
13
+
14
+ class EMessageType(Enum):
15
+ e_sequence_data = 1
16
+ e_data_quality = 2
17
+ state = 3
18
+ status = 4
19
+ trigger = 5
20
+ node = 6
21
+ sync = 7
22
+ debug = 9
23
+ package = 10
24
+ aux_sequence_data = 11
25
+ def __init__(self, _io, _parent=None, _root=None):
26
+ self._io = _io
27
+ self._parent = _parent
28
+ self._root = _root if _root else self
29
+ self._read()
30
+
31
+ def _read(self):
32
+ self.magic = self._io.read_bytes(2)
33
+ if not self.magic == b"\x42\x4B":
34
+ raise kaitaistruct.ValidationNotEqualError(b"\x42\x4B", self.magic, self._io, u"/seq/0")
35
+ self.header_length = self._io.read_u2le()
36
+ self.message_type = KaitaiStream.resolve_enum(self._root.EMessageType, self._io.read_u2le())
37
+ self.content_version = self._io.read_u2le()
38
+ self.reserved2 = self._io.read_u4le()
39
+ self.time = self._io.read_u8le()
40
+ self.content_length = self._io.read_u4le()
41
+
42
+