33#
44# Copyright (c) 2025 SparkFun Electronics
55#-------------------------------------------------------------------------------
6- # dvp_camera.py
6+ # red_vision/cameras/ dvp_camera.py
77#
8- # Base class for OpenCV DVP (Digital Video Port) camera drivers.
8+ # Red Vision abstract base class for DVP (Digital Video Port) camera drivers.
99#-------------------------------------------------------------------------------
1010
11- from .cv2_camera import CV2_Camera
11+ from .video_capture_driver import VideoCaptureDriver
1212
13- class DVP_Camera (CV2_Camera ):
13+ class DVP_Camera (VideoCaptureDriver ):
1414 """
15- Base class for OpenCV DVP (Digital Video Port) camera drivers.
15+ Red Vision abstract base class for DVP (Digital Video Port) camera drivers.
1616 """
1717 def __init__ (
1818 self ,
1919 i2c ,
20- i2c_address
20+ i2c_address ,
21+ height = None ,
22+ width = None ,
23+ color_mode = None ,
24+ buffer = None ,
2125 ):
2226 """
2327 Initializes the DVP camera with I2C communication.
2428
2529 Args:
2630 i2c (I2C): I2C object for communication
2731 i2c_address (int): I2C address of the camera
32+ height (int, optional): Image height in pixels
33+ width (int, optional): Image width in pixels
34+ color_mode (int, optional): Color mode to use
35+ buffer (ndarray, optional): Pre-allocated image buffer
2836 """
29- super ().__init__ ()
30-
37+ # Store I2C parameters.
3138 self ._i2c = i2c
3239 self ._i2c_address = i2c_address
3340
41+ # Initialize the base VideoCaptureDriver class
42+ super ().__init__ (height , width , color_mode , buffer )
43+
3444 def _read_register (self , reg , nbytes = 1 ):
3545 """
36- Reads a register from the camera over I2C.
46+ Reads a register(s) from the camera over I2C.
3747
3848 Args:
39- reg (int): Register address to read
40- nbytes (int): Number of bytes to read from the register
49+ reg (int): Start register address to read
50+ nbytes (int, optional): Number of bytes to read from the register
51+ (default: 1)
4152
4253 Returns:
4354 bytes: Data read from the register
@@ -47,11 +58,11 @@ def _read_register(self, reg, nbytes=1):
4758
4859 def _write_register (self , reg , data ):
4960 """
50- Writes data to a register on the camera over I2C.
61+ Writes data to a register(s) on the camera over I2C.
5162
5263 Args:
53- reg (int): Register address to write
54- data (bytes, int, list, tuple): Data to write to the register
64+ reg (int): Start register address to write
65+ data (bytes, int, list, tuple): Data to write to the register(s)
5566 """
5667 if isinstance (data , int ):
5768 data = bytes ([data ])
0 commit comments