18 Commits

Author SHA1 Message Date
4b8fb7fead debug: Remove emojis and add debug info for FPS calculation
- Remove all emojis from terminal output formatting for cleaner display
- Add debug print statement to track pipeline.get_current_fps() values
- Change FPS display to "Pipeline FPS (Output Queue)" for clarity
- Simplify output formatting by removing emoji decorations
- This will help identify why FPS calculation isn't working as expected

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 19:43:43 +08:00
7a71e77aae fix: Remove problematic qRegisterMetaType import that causes deployment failure
- Remove qRegisterMetaType import that is not available in all PyQt5 versions
- Remove QTextCursor import and registration that was causing import error
- Simplify deployment dialog initialization to avoid PyQt5 compatibility issues
- The QTextCursor warning was not critical and the registration was unnecessary

This fixes the "cannot import name 'qRegisterMetaType' from 'PyQt5.QtCore'" error
that prevented deployment dialog from opening.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 19:36:20 +08:00
260668ceb8 fix: Register QTextCursor meta type to eliminate Qt warning
- Add qRegisterMetaType(QTextCursor) to prevent Qt threading warning
- Import QTextCursor and qRegisterMetaType from PyQt5
- Resolves "Cannot queue arguments of type 'QTextCursor'" warning
- Ensures thread-safe GUI updates for terminal display

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 19:26:37 +08:00
24d5726ee2 fix: Restore USB timeout setting and improve terminal display reliability
- Re-enable kp.core.set_timeout() which is required for proper device communication
- Fix GUI terminal truncation issue by using append() instead of setPlainText()
- Remove aggressive line limiting that was causing log display to stop midway
- Implement gentler memory management (trim only after 1000+ lines)
- This should resolve pipeline timeout issues and complete log display

The previous USB timeout disable was causing stage timeouts without inference results.
The terminal display issue was due to frequent text replacement causing display corruption.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 19:25:02 +08:00
f41d9ae5c8 feat: Implement output queue based FPS calculation for accurate throughput measurement
- Add time-window based FPS calculation using output queue timestamps
- Replace misleading "Theoretical FPS" (based on processing time) with real "Pipeline FPS"
- Track actual inference output generation rate over 10-second sliding window
- Add thread-safe FPS calculation with proper timestamp management
- Display realistic FPS values (4-9 FPS) instead of inflated values (90+ FPS)

Key improvements:
- _record_output_timestamp(): Records when each output is generated
- get_current_fps(): Calculates FPS based on actual throughput over time window
- Thread-safe implementation with fps_lock for concurrent access
- Automatic cleanup of old timestamps outside the time window
- Integration with GUI display to show meaningful FPS metrics

This provides users with accurate inference throughput measurements that reflect
real-world performance, especially important for multi-dongle setups where
understanding actual scaling is crucial.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 19:17:18 +08:00
83906c87e3 fix: Implement stdout/stderr capture for complete logging in deployment UI
- Add StdoutCapture context manager to capture all print() statements
- Connect captured output to GUI terminal display via stdout_captured signal
- Fix logging issue where pipeline initialization and operation logs were not shown in app
- Prevent infinite recursion with _emitting flag in TeeWriter
- Ensure both console and GUI receive all log messages during deployment
- Comment out USB timeout setting that was causing device timeout issues

This resolves the issue where logs would stop showing partially in the app,
ensuring complete visibility of MultiDongle and InferencePipeline operations.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 12:52:35 +08:00
0e8d75c85c cleanup: Remove debug output after successful fix verification
- Remove all debug print statements from deployment dialog
- Remove debug output from workflow orchestrator and inference pipeline
- Remove test signal emissions and unused imports
- Code is now clean and production-ready
- Results are successfully flowing from inference to GUI display
2025-07-23 22:50:34 +08:00
dc36f1436b debug: Add comprehensive debug output and test signals
- Add time import for test result generation
- Add test signal emissions to verify GUI connection works
- Add debug prints for signal establishment
- Test both result_updated and terminal_output signals
- This will help identify if the issue is signal connection or data flow
2025-07-23 22:39:57 +08:00
6245e25a33 debug: Add debug output to track result callback data flow
- Add debug prints in combined_result_callback to see received data
- Add debug prints in update_inference_results to track GUI updates
- Fix tuple order in terminal formatting to match actual (probability, result) format
- This will help identify why results show in terminal but not in GUI
2025-07-23 22:38:48 +08:00
1b3bed1f31 feat: Add upload_fw property to model nodes and GUI terminal output
- Add upload_fw property to ExactModelNode for firmware upload control
- Display all model node properties in right panel (model_path, scpu_fw_path, ncpu_fw_path, dongle_series, num_dongles, port_id, upload_fw)
- Replace console terminal output with GUI terminal display in deployment dialog
- Add Terminal Output section to deployment tab with proper formatting
- Terminal results now appear in app view instead of console for packaged apps
- Maintain backward compatibility with existing pipeline configurations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 22:30:11 +08:00
0e3295a780 feat: Add comprehensive terminal result printing for dongle deployments
- Enhanced deployment workflow to print detailed inference results to terminal in real-time
- Added rich formatting with emojis, confidence indicators, and performance metrics
- Combined GUI and terminal callbacks for dual output during module deployment
- Improved workflow orchestrator startup/shutdown feedback
- Added demonstration script showing terminal output examples
- Supports multi-stage pipelines with individual stage result display
- Includes processing time, FPS calculations, and metadata visualization

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-17 10:39:08 +08:00
e6c9817a98 feat: Add real-time inference results display to deployment UI
- Add result callback mechanism to WorkflowOrchestrator
- Implement result_updated signal in DeploymentWorker
- Create detailed inference results display with timestamps and formatted output
- Support both tuple and dict result formats
- Add auto-scrolling results panel with history management
- Connect pipeline results to Live View tab for real-time monitoring

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-17 10:22:48 +08:00
0a70df4098 fix: Complete array comparison fix and improve stop button functionality
- Fix remaining array comparison error in inference result validation
- Update PyQt signal signature for proper numpy array handling
- Improve DeploymentWorker to keep running after deployment
- Enhance stop button with non-blocking UI updates and better error handling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-17 10:03:59 +08:00
183300472e fix: Resolve array comparison error and add inference stop functionality
- Fix ambiguous truth value error in InferencePipeline result handling
- Add stop inference button to deployment dialog with proper UI state management
- Improve error handling for tuple vs dict result types

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-17 09:46:31 +08:00
c94eb5ee30 fix import path problem in deployment.py 2025-07-17 09:25:07 +08:00
af9adc8e82 fix: Address file path and data processing bugs, add real-time viewer 2025-07-17 09:18:27 +08:00
7e173c42de feat: Implement essential components for complete inference workflow 2025-07-16 23:32:36 +08:00
efc09b8bb1 Add comprehensive pipeline deployment system with UI integration
Major Features:
• Complete deployment dialog system with validation and dongle management
• Enhanced dashboard with deploy button and validation checks
• Comprehensive deployment test suite and demo scripts
• Pipeline validation for model paths, firmware, and port configurations
• Real-time deployment status tracking and error handling

Technical Improvements:
• Node property validation for deployment readiness
• File existence checks for models and firmware files
• Port ID validation and format checking
• Integration between UI components and core deployment functions
• Comprehensive error messaging and user feedback

New Components:
• DeploymentDialog with advanced configuration options
• Pipeline deployment validation system
• Test deployment scripts with various scenarios
• Enhanced dashboard UI with deployment workflow
• Screenshot updates reflecting new deployment features

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 00:24:24 +08:00