-
Notifications
You must be signed in to change notification settings - Fork 5
Visualize pipeline with host nodes and debugging info #11
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
base: main
Are you sure you want to change the base?
Conversation
This reverts commit 64c8d0f.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR represents a complete rewrite of the pipeline graph visualization system. The main change is dropping a modified version of NodeGraphQt in favor of using the official NodeGraphQt package (v0.6.43). The new implementation adds support for visualizing host nodes and debugging information including node states, I/O states, and FPS data for depthai version 3.3.0 or higher.
Key Changes
- Replaced custom NodeGraphQt implementation with official package dependency
- Added comprehensive node state visualization with timing statistics
- Implemented dynamic port state updates with color-coded status indicators
- Added bridge connection support for XLinkIn/XLinkOut nodes
Reviewed changes
Copilot reviewed 47 out of 53 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| test_script/mock_depthai_output.py | New test script for generating mock depthai output |
| test_script/README.md | Documentation for testing the pipeline graph |
| requirements.txt | Updated to use official NodeGraphQt v0.6.43 |
| depthai_pipeline_graph/pipeline_graph.py | Major rewrite with new state visualization and debugging features |
| depthai_pipeline_graph/node_structs.py | New file containing node state structures and custom widgets |
| depthai_pipeline_graph/NodeGraphQt/* | Entire custom implementation removed (multiple files deleted) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| record_output += line | ||
| if args.verbose: | ||
| print(line.rstrip('\n')) | ||
| print(line.rstrqip('\n')) |
Copilot
AI
Dec 2, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in method name: rstrqip should be rstrip.
test_script/mock_depthai_output.py
Outdated
| import argparse | ||
|
|
||
| arg_parser = argparse.ArgumentParser(description="Mock DepthAI Output Generator") | ||
| arg_parser.add_argument("--file", type=str, required=True, default="spatial_detection_output.txt", help="Input file path") |
Copilot
AI
Dec 2, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The default parameter in add_argument has no effect when required=True. The default value will never be used because the argument must always be provided.
| return f"{self.dai_node['name']}.{self.name} ({self.id})" | ||
|
|
||
| import collections | ||
| from .node_structs import * |
Copilot
AI
Dec 2, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import pollutes the enclosing namespace, as the imported module depthai_pipeline_graph.node_structs does not define 'all'.
| from Qt import QtWidgets, QtCore | ||
| from .NodeGraphQt import NodeGraph, BaseNode, PropertiesBinWidget | ||
| from .NodeGraphQt.constants import ViewerEnum | ||
| from NodeGraphQt import NodeGraph, PropertiesBinWidget |
Copilot
AI
Dec 2, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import of 'PropertiesBinWidget' is not used.
| def __str__(self): | ||
| return f"{self.dai_node['name']}.{self.name} ({self.id})" | ||
|
|
||
| import collections |
Copilot
AI
Dec 2, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import of 'collections' is not used.
…ine_graph into pipeline_debugging
|
@asahtik let's update the README with updated screenshots & explained what do the colors, etc mean please, thanks! |
Purpose
This is a complete rewrite of the previous pipeline graph. While some code is copy pasted, the entire modified NodeGraphQt code was dropped in favour of the official NodeGraphQt package.
This version supports depthai version 3.3.0 or higher.
It has the ability to visualize the entire pipeline, including host nodes, along with debugging information like node states I/O states and FPS data.
Specification
None / not applicable
Dependencies & Potential Impact
None / not applicable
Deployment Plan
None / not applicable
Testing & Validation
None / not applicable