| title | Documentation |
|---|---|
| layout | default |
-
Protocols Directory Configuration
- Protocols directory location is now managed through settings
- Location is stored in
GENERAL.Protocols_Directorysetting - System verifies directory exists during startup
- No symbolic links or hard-coded paths
- Single Protocols directory at root level
-
BpodProtocols
- Dedicated
BpodProtocols/directory for Bpod-specific protocols - Separates Bpodprotocols from standard BControl protocols
- Improves clarity and maintainability
- Dedicated
-
Directory Organization
- Each protocol must be in a directory named
@protocolname - Protocol constructor file must have same name as directory
- Old-style RPBox protocols (with
_obj.mfiles) are excluded
- Each protocol must be in a directory named
-
Required Protocol Actions
- 'init': Initialize protocol (create windows, variables)
- 'update': Called periodically during trials
- 'prepare_next_trial': Prepare state machine for next trial
- 'trial_completed': Called when trial is complete
- 'close': Clean up when protocol is closed
-
Automatic Variables
- n_done_trials: Count of completed trials
- n_started_trials: Count of started trials
- parsed_events: Parsed events from current trial
- latest_events: New events since last update
- raw_events: All events from current trial
-
Path Setup
- Moved Protocols directory check after adding Modules to path
- Ensures
bSettingsis available before use - Fixes "bSettings is not found" error
-
Configuration-Based Approach
- Removed hard-coded path checks
- Added proper check for Protocols directory from settings
- Uses configuration as source of truth for Protocols location
- Provides clear error messages if directory is not found
-
Protocol Loading
- Verify all protocols load correctly
- Test protocol switching
- Check protocol inheritance
- Verify protocol directory structure
-
Initialization
- Test system startup
- Verify path setup
- Check settings loading
- Test protocol scanning
-
Bpod Integration
- Test Bpod protocol loading
- Verify Bpod-specific features
- Check protocol switching between Bpod and standard
- Verify protocol loading in all experimental setups
- Test protocol inheritance and dependencies
- Validate Bpod protocol functionality
- Check initialization sequence
- Verify settings-based configuration
- Test protocol directory structure
- Verify automatic variable initialization
- Monitor protocol loading performance
- Gather feedback from protocol developers
- Update protocol development guidelines
- Consider additional organization improvements
- Document protocol development best practices
For questions about these changes, contact the system administrator.