slm_open_api_package 0.2.11__tar.gz → 0.2.12__tar.gz

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 (39) hide show
  1. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/PKG-INFO +1 -1
  2. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/pyproject.toml +1 -1
  3. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/pyproject.toml.orig +1 -1
  4. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/stream_handlers.py +4 -3
  5. slm_open_api_package-0.2.12/src/slm_api/leq.py +73 -0
  6. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/README.md +0 -0
  7. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/CPB_example.py +0 -0
  8. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/__init__.py +0 -0
  9. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/enums/fast_log_intervals_enum.py +0 -0
  10. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/enums/sequence_id_enum.py +0 -0
  11. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/example_multi.py +0 -0
  12. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/fast_log_example.py +0 -0
  13. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/flac_example.py +0 -0
  14. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/FigureHandler.py +0 -0
  15. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/Leq.py +0 -0
  16. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/__init__.py +0 -0
  17. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/buffer.py +0 -0
  18. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/data_handler.py +0 -0
  19. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/fft.py +0 -0
  20. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/flac_stream_2_samples.py +0 -0
  21. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/https_requests.py +0 -0
  22. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/measurment_handler.py +0 -0
  23. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/sequence_handler.py +0 -0
  24. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/stream_handler.py +0 -0
  25. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/tmpFileStateMachine.py +0 -0
  26. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/websocket_handler.py +0 -0
  27. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/webxi_helper_functions.py +0 -0
  28. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/helpers/webxi_root.pem +0 -0
  29. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/mp3_example.py +0 -0
  30. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/multi_device_flac.py +0 -0
  31. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/multi_instrument_example.py +0 -0
  32. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/plot_saved_data_example.py +0 -0
  33. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/screen_record_example.py +0 -0
  34. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/webxi/README.md +0 -0
  35. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/webxi/__init__.py +0 -0
  36. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/webxi/webxi-header.ksy +0 -0
  37. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/webxi/webxi-stream.ksy +0 -0
  38. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/webxi/webxi_header.py +0 -0
  39. {slm_open_api_package-0.2.11 → slm_open_api_package-0.2.12}/src/slm_api/webxi/webxi_stream.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: slm_open_api_package
3
- Version: 0.2.11
3
+ Version: 0.2.12
4
4
  Summary: Add your description here
5
5
  Author: Sofus Vingaard
6
6
  Author-email: Sofus Vingaard <sofus.krebsvingaard@hbkworld.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "slm_open_api_package"
3
- version = "0.2.11"
3
+ version = "0.2.12"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "slm_open_api_package"
3
- version = "0.2.11"
3
+ version = "0.2.12"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -360,9 +360,10 @@ class WebXiStreamHandler(stream.StreamHandler):
360
360
  def _msg_func_laeq(self, message):
361
361
  package = webxi_stream.WebxiStream.from_bytes(message)
362
362
  if package.header.message_type == webxi_stream.WebxiStream.Header.EMessageType.e_sequence_data:
363
- value = package.content.sequence_blocks[0].values
364
- leq_value = stream.data_type_conv(self.data_type, value, None) / 100
365
- self._handle_data(timestamp=self._time_prefix(), value=leq_value)
363
+ for block in package.content.sequence_blocks:
364
+ if block.sequence_id == self.ID:
365
+ leq_value = stream.data_type_conv(self.data_type, block.values, None) / 100
366
+ self._handle_data(timestamp=self._time_prefix(), name=self.sequence["Name"], value=leq_value)
366
367
 
367
368
  def _msg_func_cpb(self, message):
368
369
  package = webxi_stream.WebxiStream.from_bytes(message)
@@ -0,0 +1,73 @@
1
+ from slm_api.helpers import webxi_helper_functions as webxi_helper
2
+ from slm_api.helpers.stream_handlers import WebXiStreamHandler
3
+ from slm_api.enums.sequence_id_enum import SequenceIdEnums
4
+ from slm_api.helpers.stream_handler import delete_stream
5
+ from slm_api.helpers.measurment_handler import stop_measurement
6
+ from slm_api.helpers.data_handler import DataHandler
7
+ from slm_api.helpers.https_requests import UseHttps
8
+ from slm_api.helpers import webxi_helper_functions as webxi_helper
9
+ import datetime
10
+
11
+
12
+
13
+ """
14
+ set_host creates/reads the `slm_ip` file in the project root. If the IP changes, update or delete `slm_ip` to be prompted again.
15
+ """
16
+ host = webxi_helper.set_host(__file__)
17
+
18
+ # By default https is enabled
19
+ # If https is not needed the line below this shows how to disable it for all request calls
20
+ UseHttps(use_https=False)
21
+
22
+
23
+ # Used to create file with a custom name and attach the current date and time to it.
24
+ filename = f'name-of-file_{datetime.datetime.now().strftime("%H%M_%m%d%Y")}'
25
+
26
+
27
+ # Setup what sequence to stream on
28
+ sequenceId = SequenceIdEnums.LAeq.value
29
+ sequenceName = SequenceIdEnums.LAeq.name
30
+
31
+ class PrintHandler(DataHandler):
32
+ """Handler to control what gets printed. It must subclass DataHandler and
33
+ implement a handle() method. If unsure what data is available, print data
34
+ itself to see it in the terminal, e.g.:
35
+ def handle(self, **data):
36
+ print(data)
37
+ """
38
+ def handle(self, value, **data):
39
+ print(f"{sequenceName}: " + "%.1f" % value)
40
+
41
+
42
+
43
+
44
+ if __name__ == "__main__":
45
+ # turns off all BB freq weights to prevent interference
46
+ webxi_helper.turn_off_bb_freq_weight(host)
47
+
48
+ # turns on the wanted BB freq weights for this example
49
+ webxi_helper.turn_on_bb_freq_weight(host, ['A'])
50
+
51
+ # sets the sequences to true.
52
+ webxi_helper.turn_on_bb_leq(host, ['LAeq'])
53
+
54
+ streamer = None
55
+ try:
56
+ # WebXiStreamHandler takes several parameters to control what data is streamed:
57
+ # host - needed to connect to the device
58
+ # sequenceID - an enum selecting which sequence to listen on
59
+ # leq_window_sec - moving average window length in seconds (default 10 if not specified)
60
+ # saving - "csv", "json", or "pickle"; the format to save data as
61
+ # saving_path - the file path to save the data to
62
+ # mode - selects which mode to use. leq is the default mode.
63
+ streamer = WebXiStreamHandler(host, sequenceID=sequenceId, mode="leq", time=True, saving="json", saving_path=f"./saved_data/{filename}")
64
+ # To print incoming data, call setDataHandler() with an instance of your own
65
+ # DataHandler subclass (see the PrintHandler class above for an example).
66
+ streamer.setDataHandler(PrintHandler())
67
+ # Start the stream
68
+ streamer.startStream()
69
+ except KeyboardInterrupt:
70
+ if streamer is not None:
71
+ # stop measurements, closes the stream and saves the data if saving is enabled.
72
+ streamer.stopStream()
73
+ print("User exited the program")