change depricated function#443
Merged
Merged
Conversation
salman2135
added a commit
that referenced
this pull request
Jun 5, 2026
* APIS-1444 ASR processor module (no auto-calib) * APIS-1443 Split calib step from process step, introduced larger buffer for ASR cleaning * Add CSV client support for data streaming Introduced CsvClient and CsvServer classes to enable reading data from CSV sources. Updated parser to support 'csv' as a new bt_interface option and route streaming logic accordingly. This allows the system to simulate device data input from CSV for testing or offline analysis. * Refactor CsvClient for channel count and packet size CsvClient and CsvServer now support configurable channel counts (8 or 32), with packet size tracking via a new PacketSize enum. Parser updated to instantiate CsvClient with channel count and to use packet_size for CSV packet length. Orientation packet handling and device info logic improved for mock streaming. * read samples from csv file in data server * Update CSV file paths and firmware versions Changed CSV file path construction in CsvClient to use a test-specific file based on channel count. Updated firmware versions in device info dictionaries. Added setting of BT interface to 'csv' and a debug print of current working directory in Parser. * Changed csv_client path to artifact file, added calib setting to ASR processor * Added WIP file to clean from file and compare cleaned, matched by timestamp data * Rewrote code for matrix testing * Cleaned up plotting / matrix test for ASR * Added setting file to csv_client, extended example script with corrupting channel * Updated asr example, update asr processor - ASR example now saves channels that are corrupted so they (and the channels around them) are passed to plotting - ASR processor updated with bigger time window range (0.01 to 30.0 seconds) * Added skipping already recorded files in clean example * Added plotting from folder to ASR example, made filenames less hard-coded * lower order for 1000 Hz filter * add bumpversion configs to toml * separate notch filter from general workflow * check if notch filter exists * get power line frequency value * disable impedance state change from recorder, remove debug print * fallback to default notch on failure, set cutoff freq for imp * raw exg topic for asr subscriber * remove setting bt interface to csv, remove debug print * Linted code, sorted imports * Use getter for cutoff frequency * Prevent ASR while impedance mode is active Add ImpedanceModeActiveError and guard ASR availability when impedance is running. StreamProcessor gains is_asr_processor_available() which raises ImpedanceModeActiveError if impedance mode is active and otherwise checks the ASR processor initialization. Explore.is_asr_processor_available() now delegates to the stream processor. Also add the new exception import. * use non-causal filter * add eegprep to toml * rename is_asr_processor_available method * Added exg_fs argument to get_data for CleanEEG * hotfix for missing cutoff-freq variable in filt class * Set binary time (#432) * set time as bin file name * Shorten device-info wait and set binary time Reduce the polling sleep interval from 1s to 0.5s while waiting for the device info packet to speed up startup. After receiving device info, call self.set_binary_time() to initialize device time immediately. Also remove the redundant self._check_connection() call from set_binary_time to avoid an unnecessary connection verification. * Revert "Shorten device-info wait and set binary time" This reverts commit 7fb6792. * Reapply "Shorten device-info wait and set binary time" This reverts commit d0de9e7. * set time on connect with fw version check * add new dev info and adjust time cmd * fix flake8 errors * add packet id to header length check * refactor class name to 64b command, fix docs * return bool in is_asr_processor_available * Sorted imports * add new binary time set packet ID in binary converter (#437) * Rc 4.5.0 (#435) * bumpversion minor * pip deps on toml * remove sps from args in imp recorder (#436) * Handle invalid time value set (#439) * bumpversion minor * pip deps on toml * remove sps from args in imp recorder * handle invalid binary time value set only sends the time command when the time is gregorian calendar, else raise an exception * Set imp_calculator to None on disable_imp * Create LICENSE_eegprep.txt (#441) * change padding bytes length (#440) * change depricated function (#443) * Hotfix bdf recording (#444) * change depricated function * Flush EDF buffer at quarter-second intervals Reduce the threshold for writing EDF samples from _fs to _fs // 4 so buffered data is flushed more frequently. Previously the FileRecorder only wrote when the buffer exceeded one second of samples; this change triggers writes at roughly quarter-second increments to lower memory usage and latency while retaining the existing behavior of writing full _fs-sized chunks and updating annotations/timestamps under the same lock. * Hotfix bdf recording (#445) * change depricated function * Flush EDF buffer at quarter-second intervals Reduce the threshold for writing EDF samples from _fs to _fs // 4 so buffered data is flushed more frequently. Previously the FileRecorder only wrote when the buffer exceeded one second of samples; this change triggers writes at roughly quarter-second increments to lower memory usage and latency while retaining the existing behavior of writing full _fs-sized chunks and updating annotations/timestamps under the same lock. * Write full-second sample blocks to file Replace the previous arbitrary threshold write logic with computation of whole-second sample blocks: compute num_samples_to_write as (n_samples // fs) * fs and only write when > 0. This ensures written chunks are multiples of the sampling frequency, avoids partial-frame writes and potential timestamp/data misalignment, and then drops the written samples from the buffer. * remove unused functions * Rc 4.5.0 (#446) * Bump pyEDFlib and update changelog Add 4.5.0 changelog entry (Live impedance, LSL push for preprocessed data, support for new FW version). Bump pyEDFlib from 0.1.38 to 0.1.42 and remove the eegprep==0.2.23 dependency from pyproject.toml * fix pypi rendering * remove unused file (#447) * Fix release date for version 4.5.0 Updated the release date for version 4.5.0 in the changelog. --------- Co-authored-by: Sonja Stefani <sonja.stefani@tum.de> Co-authored-by: Sonja Stefani <35492857+SonjaSt@users.noreply.github.com>
salman2135
added a commit
that referenced
this pull request
Jun 11, 2026
* feat: sleep activity example * Release 4.5.0 (#448) * APIS-1444 ASR processor module (no auto-calib) * APIS-1443 Split calib step from process step, introduced larger buffer for ASR cleaning * Add CSV client support for data streaming Introduced CsvClient and CsvServer classes to enable reading data from CSV sources. Updated parser to support 'csv' as a new bt_interface option and route streaming logic accordingly. This allows the system to simulate device data input from CSV for testing or offline analysis. * Refactor CsvClient for channel count and packet size CsvClient and CsvServer now support configurable channel counts (8 or 32), with packet size tracking via a new PacketSize enum. Parser updated to instantiate CsvClient with channel count and to use packet_size for CSV packet length. Orientation packet handling and device info logic improved for mock streaming. * read samples from csv file in data server * Update CSV file paths and firmware versions Changed CSV file path construction in CsvClient to use a test-specific file based on channel count. Updated firmware versions in device info dictionaries. Added setting of BT interface to 'csv' and a debug print of current working directory in Parser. * Changed csv_client path to artifact file, added calib setting to ASR processor * Added WIP file to clean from file and compare cleaned, matched by timestamp data * Rewrote code for matrix testing * Cleaned up plotting / matrix test for ASR * Added setting file to csv_client, extended example script with corrupting channel * Updated asr example, update asr processor - ASR example now saves channels that are corrupted so they (and the channels around them) are passed to plotting - ASR processor updated with bigger time window range (0.01 to 30.0 seconds) * Added skipping already recorded files in clean example * Added plotting from folder to ASR example, made filenames less hard-coded * lower order for 1000 Hz filter * add bumpversion configs to toml * separate notch filter from general workflow * check if notch filter exists * get power line frequency value * disable impedance state change from recorder, remove debug print * fallback to default notch on failure, set cutoff freq for imp * raw exg topic for asr subscriber * remove setting bt interface to csv, remove debug print * Linted code, sorted imports * Use getter for cutoff frequency * Prevent ASR while impedance mode is active Add ImpedanceModeActiveError and guard ASR availability when impedance is running. StreamProcessor gains is_asr_processor_available() which raises ImpedanceModeActiveError if impedance mode is active and otherwise checks the ASR processor initialization. Explore.is_asr_processor_available() now delegates to the stream processor. Also add the new exception import. * use non-causal filter * add eegprep to toml * rename is_asr_processor_available method * Added exg_fs argument to get_data for CleanEEG * hotfix for missing cutoff-freq variable in filt class * Set binary time (#432) * set time as bin file name * Shorten device-info wait and set binary time Reduce the polling sleep interval from 1s to 0.5s while waiting for the device info packet to speed up startup. After receiving device info, call self.set_binary_time() to initialize device time immediately. Also remove the redundant self._check_connection() call from set_binary_time to avoid an unnecessary connection verification. * Revert "Shorten device-info wait and set binary time" This reverts commit 7fb6792. * Reapply "Shorten device-info wait and set binary time" This reverts commit d0de9e7. * set time on connect with fw version check * add new dev info and adjust time cmd * fix flake8 errors * add packet id to header length check * refactor class name to 64b command, fix docs * return bool in is_asr_processor_available * Sorted imports * add new binary time set packet ID in binary converter (#437) * Rc 4.5.0 (#435) * bumpversion minor * pip deps on toml * remove sps from args in imp recorder (#436) * Handle invalid time value set (#439) * bumpversion minor * pip deps on toml * remove sps from args in imp recorder * handle invalid binary time value set only sends the time command when the time is gregorian calendar, else raise an exception * Set imp_calculator to None on disable_imp * Create LICENSE_eegprep.txt (#441) * change padding bytes length (#440) * change depricated function (#443) * Hotfix bdf recording (#444) * change depricated function * Flush EDF buffer at quarter-second intervals Reduce the threshold for writing EDF samples from _fs to _fs // 4 so buffered data is flushed more frequently. Previously the FileRecorder only wrote when the buffer exceeded one second of samples; this change triggers writes at roughly quarter-second increments to lower memory usage and latency while retaining the existing behavior of writing full _fs-sized chunks and updating annotations/timestamps under the same lock. * Hotfix bdf recording (#445) * change depricated function * Flush EDF buffer at quarter-second intervals Reduce the threshold for writing EDF samples from _fs to _fs // 4 so buffered data is flushed more frequently. Previously the FileRecorder only wrote when the buffer exceeded one second of samples; this change triggers writes at roughly quarter-second increments to lower memory usage and latency while retaining the existing behavior of writing full _fs-sized chunks and updating annotations/timestamps under the same lock. * Write full-second sample blocks to file Replace the previous arbitrary threshold write logic with computation of whole-second sample blocks: compute num_samples_to_write as (n_samples // fs) * fs and only write when > 0. This ensures written chunks are multiples of the sampling frequency, avoids partial-frame writes and potential timestamp/data misalignment, and then drops the written samples from the buffer. * remove unused functions * Rc 4.5.0 (#446) * Bump pyEDFlib and update changelog Add 4.5.0 changelog entry (Live impedance, LSL push for preprocessed data, support for new FW version). Bump pyEDFlib from 0.1.38 to 0.1.42 and remove the eegprep==0.2.23 dependency from pyproject.toml * fix pypi rendering * remove unused file (#447) * Fix release date for version 4.5.0 Updated the release date for version 4.5.0 in the changelog. --------- Co-authored-by: Sonja Stefani <sonja.stefani@tum.de> Co-authored-by: Sonja Stefani <35492857+SonjaSt@users.noreply.github.com> * bumpversion patch * update changelog * update author list --------- Co-authored-by: nayan <nayansharma1010@gmail.com> Co-authored-by: Christoph Aurnhammer <33545884+caurnhammer@users.noreply.github.com> Co-authored-by: Sonja Stefani <sonja.stefani@tum.de> Co-authored-by: Sonja Stefani <35492857+SonjaSt@users.noreply.github.com>
salman2135
added a commit
that referenced
this pull request
Jun 11, 2026
* APIS-1444 ASR processor module (no auto-calib) * APIS-1443 Split calib step from process step, introduced larger buffer for ASR cleaning * Add CSV client support for data streaming Introduced CsvClient and CsvServer classes to enable reading data from CSV sources. Updated parser to support 'csv' as a new bt_interface option and route streaming logic accordingly. This allows the system to simulate device data input from CSV for testing or offline analysis. * Refactor CsvClient for channel count and packet size CsvClient and CsvServer now support configurable channel counts (8 or 32), with packet size tracking via a new PacketSize enum. Parser updated to instantiate CsvClient with channel count and to use packet_size for CSV packet length. Orientation packet handling and device info logic improved for mock streaming. * read samples from csv file in data server * Update CSV file paths and firmware versions Changed CSV file path construction in CsvClient to use a test-specific file based on channel count. Updated firmware versions in device info dictionaries. Added setting of BT interface to 'csv' and a debug print of current working directory in Parser. * Changed csv_client path to artifact file, added calib setting to ASR processor * Added WIP file to clean from file and compare cleaned, matched by timestamp data * Rewrote code for matrix testing * Cleaned up plotting / matrix test for ASR * Added setting file to csv_client, extended example script with corrupting channel * Updated asr example, update asr processor - ASR example now saves channels that are corrupted so they (and the channels around them) are passed to plotting - ASR processor updated with bigger time window range (0.01 to 30.0 seconds) * Added skipping already recorded files in clean example * Added plotting from folder to ASR example, made filenames less hard-coded * lower order for 1000 Hz filter * add bumpversion configs to toml * separate notch filter from general workflow * check if notch filter exists * get power line frequency value * disable impedance state change from recorder, remove debug print * fallback to default notch on failure, set cutoff freq for imp * raw exg topic for asr subscriber * remove setting bt interface to csv, remove debug print * Linted code, sorted imports * Use getter for cutoff frequency * Prevent ASR while impedance mode is active Add ImpedanceModeActiveError and guard ASR availability when impedance is running. StreamProcessor gains is_asr_processor_available() which raises ImpedanceModeActiveError if impedance mode is active and otherwise checks the ASR processor initialization. Explore.is_asr_processor_available() now delegates to the stream processor. Also add the new exception import. * use non-causal filter * add eegprep to toml * rename is_asr_processor_available method * Added exg_fs argument to get_data for CleanEEG * hotfix for missing cutoff-freq variable in filt class * Set binary time (#432) * set time as bin file name * Shorten device-info wait and set binary time Reduce the polling sleep interval from 1s to 0.5s while waiting for the device info packet to speed up startup. After receiving device info, call self.set_binary_time() to initialize device time immediately. Also remove the redundant self._check_connection() call from set_binary_time to avoid an unnecessary connection verification. * Revert "Shorten device-info wait and set binary time" This reverts commit 7fb6792. * Reapply "Shorten device-info wait and set binary time" This reverts commit d0de9e7. * set time on connect with fw version check * add new dev info and adjust time cmd * fix flake8 errors * add packet id to header length check * refactor class name to 64b command, fix docs * return bool in is_asr_processor_available * Sorted imports * add new binary time set packet ID in binary converter (#437) * Rc 4.5.0 (#435) * bumpversion minor * pip deps on toml * remove sps from args in imp recorder (#436) * Handle invalid time value set (#439) * bumpversion minor * pip deps on toml * remove sps from args in imp recorder * handle invalid binary time value set only sends the time command when the time is gregorian calendar, else raise an exception * Set imp_calculator to None on disable_imp * Create LICENSE_eegprep.txt (#441) * change padding bytes length (#440) * change depricated function (#443) * Hotfix bdf recording (#444) * change depricated function * Flush EDF buffer at quarter-second intervals Reduce the threshold for writing EDF samples from _fs to _fs // 4 so buffered data is flushed more frequently. Previously the FileRecorder only wrote when the buffer exceeded one second of samples; this change triggers writes at roughly quarter-second increments to lower memory usage and latency while retaining the existing behavior of writing full _fs-sized chunks and updating annotations/timestamps under the same lock. * Hotfix bdf recording (#445) * change depricated function * Flush EDF buffer at quarter-second intervals Reduce the threshold for writing EDF samples from _fs to _fs // 4 so buffered data is flushed more frequently. Previously the FileRecorder only wrote when the buffer exceeded one second of samples; this change triggers writes at roughly quarter-second increments to lower memory usage and latency while retaining the existing behavior of writing full _fs-sized chunks and updating annotations/timestamps under the same lock. * Write full-second sample blocks to file Replace the previous arbitrary threshold write logic with computation of whole-second sample blocks: compute num_samples_to_write as (n_samples // fs) * fs and only write when > 0. This ensures written chunks are multiples of the sampling frequency, avoids partial-frame writes and potential timestamp/data misalignment, and then drops the written samples from the buffer. * remove unused functions * Rc 4.5.0 (#446) * Bump pyEDFlib and update changelog Add 4.5.0 changelog entry (Live impedance, LSL push for preprocessed data, support for new FW version). Bump pyEDFlib from 0.1.38 to 0.1.42 and remove the eegprep==0.2.23 dependency from pyproject.toml * fix pypi rendering * remove unused file (#447) * Fix release date for version 4.5.0 Updated the release date for version 4.5.0 in the changelog. * Update tools.py (#449) * Rc 4.5.1 (#450) * feat: sleep activity example * Release 4.5.0 (#448) * APIS-1444 ASR processor module (no auto-calib) * APIS-1443 Split calib step from process step, introduced larger buffer for ASR cleaning * Add CSV client support for data streaming Introduced CsvClient and CsvServer classes to enable reading data from CSV sources. Updated parser to support 'csv' as a new bt_interface option and route streaming logic accordingly. This allows the system to simulate device data input from CSV for testing or offline analysis. * Refactor CsvClient for channel count and packet size CsvClient and CsvServer now support configurable channel counts (8 or 32), with packet size tracking via a new PacketSize enum. Parser updated to instantiate CsvClient with channel count and to use packet_size for CSV packet length. Orientation packet handling and device info logic improved for mock streaming. * read samples from csv file in data server * Update CSV file paths and firmware versions Changed CSV file path construction in CsvClient to use a test-specific file based on channel count. Updated firmware versions in device info dictionaries. Added setting of BT interface to 'csv' and a debug print of current working directory in Parser. * Changed csv_client path to artifact file, added calib setting to ASR processor * Added WIP file to clean from file and compare cleaned, matched by timestamp data * Rewrote code for matrix testing * Cleaned up plotting / matrix test for ASR * Added setting file to csv_client, extended example script with corrupting channel * Updated asr example, update asr processor - ASR example now saves channels that are corrupted so they (and the channels around them) are passed to plotting - ASR processor updated with bigger time window range (0.01 to 30.0 seconds) * Added skipping already recorded files in clean example * Added plotting from folder to ASR example, made filenames less hard-coded * lower order for 1000 Hz filter * add bumpversion configs to toml * separate notch filter from general workflow * check if notch filter exists * get power line frequency value * disable impedance state change from recorder, remove debug print * fallback to default notch on failure, set cutoff freq for imp * raw exg topic for asr subscriber * remove setting bt interface to csv, remove debug print * Linted code, sorted imports * Use getter for cutoff frequency * Prevent ASR while impedance mode is active Add ImpedanceModeActiveError and guard ASR availability when impedance is running. StreamProcessor gains is_asr_processor_available() which raises ImpedanceModeActiveError if impedance mode is active and otherwise checks the ASR processor initialization. Explore.is_asr_processor_available() now delegates to the stream processor. Also add the new exception import. * use non-causal filter * add eegprep to toml * rename is_asr_processor_available method * Added exg_fs argument to get_data for CleanEEG * hotfix for missing cutoff-freq variable in filt class * Set binary time (#432) * set time as bin file name * Shorten device-info wait and set binary time Reduce the polling sleep interval from 1s to 0.5s while waiting for the device info packet to speed up startup. After receiving device info, call self.set_binary_time() to initialize device time immediately. Also remove the redundant self._check_connection() call from set_binary_time to avoid an unnecessary connection verification. * Revert "Shorten device-info wait and set binary time" This reverts commit 7fb6792. * Reapply "Shorten device-info wait and set binary time" This reverts commit d0de9e7. * set time on connect with fw version check * add new dev info and adjust time cmd * fix flake8 errors * add packet id to header length check * refactor class name to 64b command, fix docs * return bool in is_asr_processor_available * Sorted imports * add new binary time set packet ID in binary converter (#437) * Rc 4.5.0 (#435) * bumpversion minor * pip deps on toml * remove sps from args in imp recorder (#436) * Handle invalid time value set (#439) * bumpversion minor * pip deps on toml * remove sps from args in imp recorder * handle invalid binary time value set only sends the time command when the time is gregorian calendar, else raise an exception * Set imp_calculator to None on disable_imp * Create LICENSE_eegprep.txt (#441) * change padding bytes length (#440) * change depricated function (#443) * Hotfix bdf recording (#444) * change depricated function * Flush EDF buffer at quarter-second intervals Reduce the threshold for writing EDF samples from _fs to _fs // 4 so buffered data is flushed more frequently. Previously the FileRecorder only wrote when the buffer exceeded one second of samples; this change triggers writes at roughly quarter-second increments to lower memory usage and latency while retaining the existing behavior of writing full _fs-sized chunks and updating annotations/timestamps under the same lock. * Hotfix bdf recording (#445) * change depricated function * Flush EDF buffer at quarter-second intervals Reduce the threshold for writing EDF samples from _fs to _fs // 4 so buffered data is flushed more frequently. Previously the FileRecorder only wrote when the buffer exceeded one second of samples; this change triggers writes at roughly quarter-second increments to lower memory usage and latency while retaining the existing behavior of writing full _fs-sized chunks and updating annotations/timestamps under the same lock. * Write full-second sample blocks to file Replace the previous arbitrary threshold write logic with computation of whole-second sample blocks: compute num_samples_to_write as (n_samples // fs) * fs and only write when > 0. This ensures written chunks are multiples of the sampling frequency, avoids partial-frame writes and potential timestamp/data misalignment, and then drops the written samples from the buffer. * remove unused functions * Rc 4.5.0 (#446) * Bump pyEDFlib and update changelog Add 4.5.0 changelog entry (Live impedance, LSL push for preprocessed data, support for new FW version). Bump pyEDFlib from 0.1.38 to 0.1.42 and remove the eegprep==0.2.23 dependency from pyproject.toml * fix pypi rendering * remove unused file (#447) * Fix release date for version 4.5.0 Updated the release date for version 4.5.0 in the changelog. --------- Co-authored-by: Sonja Stefani <sonja.stefani@tum.de> Co-authored-by: Sonja Stefani <35492857+SonjaSt@users.noreply.github.com> * bumpversion patch * update changelog * update author list --------- Co-authored-by: nayan <nayansharma1010@gmail.com> Co-authored-by: Christoph Aurnhammer <33545884+caurnhammer@users.noreply.github.com> Co-authored-by: Sonja Stefani <sonja.stefani@tum.de> Co-authored-by: Sonja Stefani <35492857+SonjaSt@users.noreply.github.com> --------- Co-authored-by: Sonja Stefani <sonja.stefani@tum.de> Co-authored-by: Sonja Stefani <35492857+SonjaSt@users.noreply.github.com> Co-authored-by: nayan <nayansharma1010@gmail.com> Co-authored-by: Christoph Aurnhammer <33545884+caurnhammer@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.