Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
f6dda1b
Allow also dev DAI versions with --pre flag
klemen1999 Sep 26, 2025
81d6c70
Small fix for pyproject.toml
klemen1999 Sep 26, 2025
86404a4
format fix
klemen1999 Sep 26, 2025
7da4e52
fix
klemen1999 Sep 26, 2025
701e4aa
include dev build
klemen1999 Sep 26, 2025
eeda1da
snaps producer v2
klemen1999 Sep 26, 2025
44ecc12
fixed file group
klemen1999 Sep 26, 2025
8b05681
temp logging level
klemen1999 Sep 28, 2025
ef920ca
temp logging level
klemen1999 Sep 28, 2025
cd4ad3d
remove debug logger
klemen1999 Sep 30, 2025
c5827ef
test File Group
Oct 11, 2025
5d8ca2f
removed device serial number from snapping
Oct 20, 2025
d39e4e2
changed the approach
Oct 20, 2025
126cfa8
sending frame by itself
Oct 20, 2025
fb71195
changed snaps produces sending
Oct 21, 2025
1819b63
Revert "changed snaps produces sending"
Oct 21, 2025
e6ccc85
Rollbacked and added 3rd producer
Oct 21, 2025
ddc26b0
Added new producer to init
Oct 21, 2025
e905703
Added new producer to init
Oct 21, 2025
628fa40
Returned FileGroup for test
Oct 21, 2025
926cfcc
Fixed naming problem, chagned sneding to use call per argument
Oct 21, 2025
a769dcd
Updated snaps producer to never build of snaps V2
Oct 24, 2025
ecb38b8
Added info logs to track problems
Oct 27, 2025
1511271
Fixed issue with time interval stopping snaps when not expected
Oct 27, 2025
00b9de5
new Snaps Producer
Nov 9, 2025
e17e741
changed nodes init
Nov 9, 2025
dcdc08c
changed snaps producer buffer treatment
Nov 9, 2025
3a52fb8
Added snaps
Nov 9, 2025
751da60
test snaps data
Nov 9, 2025
e67c5f4
changed producer logic
Nov 9, 2025
cb96745
Added SnapData message type + chagned producer
Nov 10, 2025
69c4fe2
Added tests for snap data + updated tests for snaps uploader
Nov 10, 2025
4bea7de
Update depthai_nodes/message/snap_data.py
FSAFTik Nov 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions depthai_nodes/message/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from .map import Map2D
from .prediction import Prediction, Predictions
from .segmentation import SegmentationMask
from .snap_data import SnapData

__all__ = [
"ImgDetectionExtended",
Expand All @@ -26,4 +27,5 @@
"Prediction",
"Predictions",
"GatheredData",
"SnapData",
]
40 changes: 40 additions & 0 deletions depthai_nodes/message/snap_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
from typing import Dict, List, Optional

import depthai as dai


class SnapData(dai.Buffer):
"""DepthAI-compatible message for representing a single snap event.

Attributes
----------
snap_name : str
Logical name of the snap.
file_name : str
File name for the snap image.
frame : dai.ImgFrame
Captured image frame associated with the snap.
detections : Optional[dai.ImgDetections]
Optional detection data.
tags : List[str]
Optional list of tags to include.
extras : Dict[str, str]
Additional metadata.
"""

def __init__(
self,
snap_name: str,
frame: dai.ImgFrame,
file_name: str = "",
detections: Optional[dai.ImgDetections] = None,
tags: Optional[List[str]] = None,
extras: Optional[Dict[str, str]] = None,
):
super().__init__()
self.snap_name = snap_name
self.file_name = file_name
self.frame = frame
self.detections = detections
self.tags = tags or []
self.extras = extras or {}
7 changes: 4 additions & 3 deletions depthai_nodes/node/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@
from .parsers.yolo import YOLOExtendedParser
from .parsers.yunet import YuNetParser
from .parsing_neural_network import ParsingNeuralNetwork
from .snaps_producer import SnapsProducer, SnapsProducerFrameOnly
from .snaps_uploader import (
SnapsUploader,
)
from .tiles_patcher import TilesPatcher
from .tiling import Tiling

Expand Down Expand Up @@ -69,7 +71,6 @@
"ImgFrameOverlay",
"ImgDetectionsBridge",
"ImgDetectionsFilter",
"SnapsProducerFrameOnly",
"SnapsProducer",
"SnapsUploader",
"BaseHostNode",
]
261 changes: 0 additions & 261 deletions depthai_nodes/node/snaps_producer.py

This file was deleted.

44 changes: 44 additions & 0 deletions depthai_nodes/node/snaps_uploader.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import os

import depthai as dai

from depthai_nodes.message import SnapData
from depthai_nodes.node.base_host_node import BaseHostNode


class SnapsUploader(BaseHostNode):
"""Host node responsible for receiving SnapData messages and sending snaps to
DepthAI Hub Events API."""

def __init__(self):
super().__init__()
self._em = dai.EventsManager()

def set_token(self, token: str):
os.environ.setdefault("DEPTHAI_HUB_API_KEY", token)

def set_url(self, url: str):
os.environ.setdefault("DEPTHAI_HUB_EVENTS_BASE_URL", url)

def build(self, snaps: dai.Node.Output):
self.link_args(snaps)
return self

def process(self, snap: dai.Buffer):
Copy link

Copilot AI Nov 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method requires 2 positional arguments, whereas overridden BaseHostNode.process requires 1.

Suggested change
def process(self, snap: dai.Buffer):
def process(self):
snap = self.get_input() # Assumes BaseHostNode provides a method to get the next input

Copilot uses AI. Check for mistakes.
assert isinstance(snap, SnapData), f"Expected SnapData, got {type(snap)}"

self._logger.debug(f"Sending snap: {snap.snap_name} -> {snap.file_name}")

success = self._em.sendSnap(
name=snap.snap_name,
fileName=snap.file_name,
imgFrame=snap.frame,
imgDetections=snap.detections,
tags=snap.tags,
extras=snap.extras,
)

if success:
self._logger.info(f"Snap '{snap.snap_name}' sent successfully.")
else:
self._logger.error(f"Failed to send snap '{snap.snap_name}'.")
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
depthai>=3.0.0rc2,<=3.0.0
depthai>=3.0.0.dev0,<3.1
opencv-python-headless~=4.10.0
numpy>=1.22
Loading
Loading