Skip to content

CameraControl: add Isp commands (isp_ctl/hisp_ctl pass-through) - #984

Draft
Cybis320 wants to merge 1 commit into
prereleasefrom
cameracontrol-isp-support
Draft

CameraControl: add Isp commands (isp_ctl/hisp_ctl pass-through)#984
Cybis320 wants to merge 1 commit into
prereleasefrom
cameracontrol-isp-support

Conversation

@Cybis320

@Cybis320 Cybis320 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

What

Adds camera-side ISP control to Utils/CameraControl.py via the isp_ctl/hisp_ctl TCP daemon on port 9600:

  • ispControl(ip, cmd_line) — sends one text command per TCP connection and returns the reply.
  • IspQuery / IspManual / IspAuto — fixed-string convenience commands.
  • Isp <anything> — generic pass-through, e.g. Isp wb unity, Isp gain 4096, Isp ae, Isp status, Isp drc off.
  • All four registered in cmd_list.

Why

DVRIP cannot reach true manual ISP exposure/gain or individual pipeline stages (gamma, WB, DRC, NR, DPC, encoder bitrate/QP). The on-camera isp_ctl/hisp_ctl daemon exposes those; this gives CameraControl a first-class way to drive it.

Notes

Draft — before un-drafting

  • Wire per-command usage into opthelp / argparse help.
  • Confirm reviewers are OK depending on a firmware-side daemon (document where it comes from).

🤖 Generated with Claude Code

Adds the ispControl() helper and four dvripCall handlers -- IspQuery,
IspManual, IspAuto, and a generic Isp pass-through -- that talk to the
isp_ctl/hisp_ctl TCP daemon on the camera's :9600 port. This reaches
manual ISP exposure/gain and pipeline control that DVRIP cannot (e.g.
`Isp wb unity`, `Isp gain 4096`, `Isp ae`, `Isp drc off`, `Isp status`).

The daemon takes one text command per TCP connection, returns its
response, then closes; ispControl() forwards the command verbatim and
logs the reply. Commands target cam.ip, so they work in config mode
today and pair naturally with the standalone --ip flag (#983) for
bench/ad-hoc cameras without a config.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant