spectre-core 0.0.21__tar.gz → 0.0.22__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.
- {spectre_core-0.0.21 → spectre_core-0.0.22}/PKG-INFO +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/pyproject.toml +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/_file_io/__init__.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/_file_io/file_handlers.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/batches/__init__.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/batches/_base.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/batches/_batches.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/batches/_factory.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/batches/_register.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/batches/plugins/_batch_keys.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/batches/plugins/_callisto.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/batches/plugins/_iq_stream.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/capture_configs/__init__.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/capture_configs/_capture_config.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/capture_configs/_capture_modes.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/capture_configs/_capture_templates.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/capture_configs/_parameters.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/capture_configs/_pconstraints.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/capture_configs/_pnames.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/capture_configs/_ptemplates.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/capture_configs/_pvalidators.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/config/__init__.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/config/_paths.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/config/_time_formats.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/exceptions.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/jobs/__init__.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/jobs/_jobs.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/jobs/_workers.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/logs/__init__.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/logs/_configure.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/logs/_decorators.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/logs/_logs.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/logs/_process_types.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/plotting/__init__.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/plotting/_base.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/plotting/_format.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/plotting/_panel_names.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/plotting/_panel_stack.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/plotting/_panels.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/post_processing/__init__.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/post_processing/_base.py +34 -20
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/post_processing/_factory.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/post_processing/_post_processor.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/post_processing/_register.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/post_processing/plugins/_event_handler_keys.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/post_processing/plugins/_fixed_center_frequency.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/post_processing/plugins/_swept_center_frequency.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/__init__.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/_base.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/_factory.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/_register.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/_spec_names.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/_b200mini.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/_receiver_names.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/_rsp1a.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/_rspduo.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/_sdrplay_receiver.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/_test.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/_usrp.py +1 -1
- spectre_core-0.0.22/src/spectre_core/receivers/plugins/gr/__init__.py +3 -0
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/gr/_base.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/gr/_rsp1a.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/gr/_rspduo.py +2 -2
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/gr/_test.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/gr/_usrp.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/spectrograms/__init__.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/spectrograms/_analytical.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/spectrograms/_array_operations.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/spectrograms/_spectrogram.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/spectrograms/_transform.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/wgetting/__init__.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/wgetting/_callisto.py +1 -1
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core.egg-info/PKG-INFO +1 -1
- spectre_core-0.0.21/src/spectre_core/receivers/plugins/gr/__init__.py +0 -3
- {spectre_core-0.0.21 → spectre_core-0.0.22}/LICENSE +0 -0
- {spectre_core-0.0.21 → spectre_core-0.0.22}/README.md +0 -0
- {spectre_core-0.0.21 → spectre_core-0.0.22}/setup.cfg +0 -0
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/__init__.py +0 -0
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/py.typed +0 -0
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/__init__.py +0 -0
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core.egg-info/SOURCES.txt +0 -0
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core.egg-info/dependency_links.txt +0 -0
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core.egg-info/requires.txt +0 -0
- {spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core.egg-info/top_level.txt +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
# SPDX-FileCopyrightText: © 2024 Jimmy Fitzpatrick <jcfitzpatrick12@gmail.com>
|
1
|
+
# SPDX-FileCopyrightText: © 2024-2025 Jimmy Fitzpatrick <jcfitzpatrick12@gmail.com>
|
2
2
|
# This file is part of SPECTRE
|
3
3
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
4
4
|
|
@@ -84,29 +84,43 @@ class BaseEventHandler(ABC, FileSystemEventHandler):
|
|
84
84
|
|
85
85
|
:param event: The file system event containing the file details.
|
86
86
|
"""
|
87
|
-
#
|
87
|
+
# The `src_path`` attribute holds the absolute path of the freshly closed file
|
88
88
|
absolute_file_path = event.src_path
|
89
89
|
|
90
|
-
#
|
90
|
+
# Only process a file if:
|
91
|
+
#
|
92
|
+
# - It's extension matches the `watch_extension` as defined in the capture config.
|
93
|
+
# - It's tag matches the current sessions tag.
|
94
|
+
#
|
95
|
+
# This is important for two reasons.
|
96
|
+
#
|
97
|
+
# In the case of one session, the capture worker may write to two batch files simultaneously
|
98
|
+
# (e.g., raw data file + seperate metadata file). We want to process them together - but this method will get called
|
99
|
+
# seperately for both file creation events. So, we filter by extension to account for this.
|
100
|
+
#
|
101
|
+
# Additionally in the case of multiple sessions, the capture workers will create batch files in the same directory concurrently.
|
102
|
+
# This method is triggered for all file creation events, so we ensure the batch file tag matches the session tag and early return
|
103
|
+
# otherwise. This way, each post processor worker picks up the right files to process.
|
91
104
|
watch_extension = cast(str, self._capture_config.get_parameter_value(PName.WATCH_EXTENSION))
|
105
|
+
if not absolute_file_path.endswith(f"{self._tag}.{watch_extension}"):
|
106
|
+
return
|
92
107
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
self._queued_file = absolute_file_path
|
108
|
+
_LOGGER.info(f"Noticed {absolute_file_path}")
|
109
|
+
# If there exists a queued file, try and process it
|
110
|
+
if self._queued_file is not None:
|
111
|
+
try:
|
112
|
+
self.process(self._queued_file)
|
113
|
+
except Exception:
|
114
|
+
_LOGGER.error(f"An error has occured while processing {self._queued_file}",
|
115
|
+
exc_info=True)
|
116
|
+
# Flush any internally stored spectrogram on error to avoid lost data
|
117
|
+
self._flush_cache()
|
118
|
+
# re-raise the exception to the main thread
|
119
|
+
raise
|
120
|
+
|
121
|
+
# Queue the current file for processing next
|
122
|
+
_LOGGER.info(f"Queueing {absolute_file_path} for post processing")
|
123
|
+
self._queued_file = absolute_file_path
|
110
124
|
|
111
125
|
|
112
126
|
def _cache_spectrogram(
|
@@ -123,7 +123,7 @@ class _swept_center_frequency(spectre_top_block):
|
|
123
123
|
self.sdrplay3_rsp1a_0.set_show_gain_changes(False)
|
124
124
|
|
125
125
|
# Connections
|
126
|
-
self.msg_connect((self.spectre_sweep_driver_0, '
|
126
|
+
self.msg_connect((self.spectre_sweep_driver_0, 'retune_command'), (self.sdrplay3_rsp1a_0, 'command'))
|
127
127
|
self.connect((self.sdrplay3_rsp1a_0, 0), (self.spectre_batched_file_sink_0, 0))
|
128
128
|
self.connect((self.sdrplay3_rsp1a_0, 0), (self.spectre_sweep_driver_0, 0))
|
129
129
|
|
{spectre_core-0.0.21 → spectre_core-0.0.22}/src/spectre_core/receivers/plugins/gr/_rspduo.py
RENAMED
@@ -8,7 +8,7 @@
|
|
8
8
|
# Title: Test receiver
|
9
9
|
# GNU Radio version: 3.10.1.1
|
10
10
|
|
11
|
-
# SPDX-FileCopyrightText: © 2024 Jimmy Fitzpatrick <jcfitzpatrick12@gmail.com>
|
11
|
+
# SPDX-FileCopyrightText: © 2024-2025 Jimmy Fitzpatrick <jcfitzpatrick12@gmail.com>
|
12
12
|
# This file is part of SPECTRE
|
13
13
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
14
14
|
|
@@ -202,7 +202,7 @@ class _tuner_1_swept_center_frequency(spectre_top_block):
|
|
202
202
|
|
203
203
|
|
204
204
|
# Connections
|
205
|
-
self.msg_connect((self.spectre_sweep_driver_0, '
|
205
|
+
self.msg_connect((self.spectre_sweep_driver_0, 'retune_command'), (self.sdrplay3_rspduo_0, 'command'))
|
206
206
|
self.connect((self.sdrplay3_rspduo_0, 0), (self.spectre_batched_file_sink_0, 0))
|
207
207
|
self.connect((self.sdrplay3_rspduo_0, 0), (self.spectre_sweep_driver_0, 0))
|
208
208
|
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# Title: Test receiver
|
9
9
|
# GNU Radio version: 3.10.1.1
|
10
10
|
|
11
|
-
# SPDX-FileCopyrightText: © 2024 Jimmy Fitzpatrick <jcfitzpatrick12@gmail.com>
|
11
|
+
# SPDX-FileCopyrightText: © 2024-2025 Jimmy Fitzpatrick <jcfitzpatrick12@gmail.com>
|
12
12
|
# This file is part of SPECTRE
|
13
13
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
14
14
|
|
@@ -128,7 +128,7 @@ class _swept_center_frequency(spectre_top_block):
|
|
128
128
|
min_frequency)
|
129
129
|
|
130
130
|
# Connections
|
131
|
-
self.msg_connect((self.spectre_sweep_driver_0, '
|
131
|
+
self.msg_connect((self.spectre_sweep_driver_0, 'retune_command'), (self.uhd_usrp_source_0, 'command'))
|
132
132
|
self.connect((self.uhd_usrp_source_0, 0), (self.spectre_batched_file_sink_0, 0))
|
133
133
|
self.connect((self.uhd_usrp_source_0, 0), (self.spectre_sweep_driver_0, 0))
|
134
134
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|