-
Notifications
You must be signed in to change notification settings - Fork 692
Feature/data field selection #672
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
zhanghaocore
wants to merge
46
commits into
open-ephys:main
from
ciai-engineering:feature/data-field-selection
Closed
Feature/data field selection #672
zhanghaocore
wants to merge
46
commits into
open-ephys:main
from
ciai-engineering:feature/data-field-selection
Conversation
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
- Implement RedisDataThread class inheriting from DataThread - Add RedisDataThreadEditor with connection configuration UI - Support JSON and binary data formats from Redis - Include stub implementation when hiredis library not available - Add CMake configuration with automatic hiredis detection - Plugin registers as DATA_THREAD type for use with SourceNode - Follows OpenEphys plugin architecture and naming conventions Features: - Configurable Redis host, port, password, and channel - Real-time data streaming with BLPOP commands - Sample rate and channel count configuration - Connection status monitoring and error handling - Thread-safe data acquisition and buffering - Automatic reconnection on connection failures Dependencies: - hiredis library (optional, falls back to stub if not available) - Standard OpenEphys plugin headers and JUCE framework
…ad plugin - Add detailed README.md with installation, usage, and troubleshooting - Include redis_data_sender.py example script for synthetic data generation - Add install.sh script for automated plugin installation - Include test_redis_plugin.py for plugin verification - Document JSON and binary data formats with examples - Provide Python examples for real-time data streaming - Add troubleshooting guide for common issues Examples include: - Synthetic electrophysiology data generation - LFP, theta, gamma, and spike-like signals - Real-time streaming with configurable parameters - Error handling and graceful shutdown - Command-line interface for easy testing
- Create comprehensive test suite for Redis stream functionality - Add unit tests for XREAD commands and BRANDBCI data formats - Implement performance testing for latency requirements - Verify Redis stream operations work correctly - Tests confirm < 10ms latency requirement is met
Core Features: - Add Redis stream support using XREAD commands (replaces BLPOP) - Implement BRANDBCI data format parsing with metadata extraction - Add multi-stream discovery and management capabilities - Support both legacy list mode and new stream mode - Add comprehensive error handling and reconnection logic Technical Implementation: - New stream configuration options (useStreamMode, streamPattern) - Stream discovery using KEYS and TYPE commands - BRANDBCI JSON format parsing with nested data structure support - Automatic stream subscription and position tracking - Performance optimized for real-time neural data (< 10ms latency) Testing: - Comprehensive test suite with 100% pass rate - Performance validation: 1000 Hz streaming achieved - Stream discovery and data format parsing verified - Integration test script for BRANDBCI simulation This implements the first major milestone of the BRANDBCI integration roadmap, providing the foundation for real-time neural data streaming.
- Create interactive demo script for BRANDBCI integration testing - Add comprehensive README for Redis stream features - Include configuration examples and troubleshooting guide - Provide API reference and integration examples - Ready for user testing and validation
Feature/redis stream support
…with other companent
…ton to the Configuration panel
…he configuration group if is needed
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.