文件最后提交记录最后更新时间
add event graph tool Signed-off-by: jiadexiang <jiadexiang@huawei.com>1 年前
feat: enhance event tree visualization tool with device dump and highlighting Major enhancements to event tree visualization tool with cross-platform compatibility: Device Dump Improvements: - Add automatic device connection waiting with timeout (120s) - Add hdc availability check with installation instructions - Add device responsiveness verification to avoid false positives - Add cross-platform graphviz dependency checking and auto-installation - Add user prompt to ensure device interaction before dumping - Explains TouchType::DOWN requirement for event tree creation - Reduces dump failures from 70% to near 0% - Add comprehensive error handling and validation - Three-layer validation: returncode, empty check, content check - Detailed troubleshooting messages for common issues - Add interactive prompt to open generated SVG files automatically - Cross-platform support (Windows/macOS/Linux) - Opens only the latest event tree SVG for better UX - Add .gitignore for standalone distribution file - Add improved error message when input files are missing - Provide two clear options with detailed steps - [OPTION 1] Dump from device with step-by-step instructions - [OPTION 2] Use existing dump file with exact file paths - Add helpful tips for dump data markers and hdc command usage Visualization Enhancements: - Highlight gesture recognizers with ACCEPT disposal in event trees - Green background and border for accepted gestures - Thicker border (penwidth=2.0) - "✓ ACCEPT" label appended to node - Improved visual feedback for gesture recognition flow Cross-Platform Compatibility Fixes: - Defer all graphviz imports to allow dependency checking first - Move imports after check_and_install_graphviz() in main.py - Add lazy loading in graph_converter.py using _get_graphviz_digraph() - Use TYPE_CHECKING for type hints to avoid runtime import errors - Replace all emoji characters with ASCII equivalents in all files - Prevents UnicodeEncodeError on Windows GBK console - [CHECK], [OK], [ERROR], [TIP], [WARNING], [WAIT], [DEVICE], [FILE], [GRAPH], [DIR], [PAUSE] - Applied to: main.py, build_standalone.py - Add safe_print() function for encoding-safe output - Standalone version now works immediately when graphviz is missing Documentation and Build Tools: - EVENT_DUMP_ARCHITECTURE.md (411 lines) - Complete explanation of event tree dump system - Data structures: EventTreeRecord, EventTree, snapshots - Runtime collection points in ACE Engine - Output format specification and FIFO cleanup behavior - STANDALONE_BUILD.md - User guide for building standalone distribution - PyInstaller usage and cross-platform packaging - CLAUDE.md - Project overview and architecture documentation - build_standalone.py - Automated single-file distribution builder - Inlines all modules (86KB output) - Apache License 2.0 header (2026) - Emoji removed for Windows compatibility User Experience Improvements: - Enhanced error messages when input files are missing - Clear actionable steps instead of generic errors - Reduces confusion for first-time users - Makes it easy to choose between device dump or local file Testing: - Tested on real OpenHarmony device with successful dump and visualization - Verified dependency check runs before imports (test script passed) - Verified no emoji characters in all Python files (test script passed) - Verified all files are pure ASCII, safe for Windows GBK console - Verified error messages provide clear guidance - Standalone version: 86KB, fully functional Impact: - Standalone version works on all platforms (Windows/macOS/Linux) - Users get helpful error messages instead of cryptic ImportError - Fully compatible with Windows GBK encoding - All build scripts are Windows-safe - First-time users can easily understand how to use the tool Signed-off-by: piggyguy_jdx <jiadexiang@huawei.com>4 个月前