-
-
Notifications
You must be signed in to change notification settings - Fork 7
Linovision camera #317
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
Linovision camera #317
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #317 +/- ##
========================================
Coverage 80.49% 80.49%
========================================
Files 7 7
Lines 810 810
========================================
Hits 652 652
Misses 158 158
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
HI there, thanks a lot for the PR. A question before reviewing the code, have you tested this branch of code on a device that is connected to other types of cameras to ensure that there is no regression? |
fe51
left a comment
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.
Will it be relevant to also update the readme providing an example for linovision setup/default value ?
fe51
left a comment
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.
I Approve in order to quickly be able to test with develop on some devices.
However, it might be relevant to delete reference hikvision adapter that does not exists yet (see comments) and add some info in the readme onhow to setup/init a linovision class :)
This PR introduces a new
LinovisionCameraimplementation for the camera API, enabling control and image capture for Linovision PTZ devices via ISAPI. The class follows the same public interface and overall architecture asReolinkCamera, so it can be used by existing PTZ and capture flows with minimal changes.What is included
New
LinovisionCameraclass backed by ISAPI endpoints/ISAPI/Streaming/channels/{snapshot_channel}/picture/ISAPI/PTZCtrl/channels/{ptz_channel}/status/ISAPI/PTZCtrl/channels/{ptz_channel}/continuousabsoluteEx, including optionalabsoluteZoomazimuth_rawmatches the targetReal azimuth handling compatible with our existing config format
cam_azimuthsremains real world azimuths for parity with Reolinkazimuth_offset_degconverts real azimuths into camera frame azimuths for commandsget_ptz_statusreturns both camera frame azimuth andreal_azimuth_degPose based movement without relying on device preset goto
move_to_pose(pose_id)resolvespose_idto a target azimuth fromcam_posesandcam_azimuthsmove_camera("ToPos")uses the mapping when available, otherwise falls back to ISAPI preset gotoSpeed compatibility layer
move_absolutemaps horizontal and vertical speed from 1 to 64 into 0.1 to 80Zoom support
start_zoom_focus(position)sets the ISAPIabsoluteZoomvalue while keeping current azimuth and elevationWhy
We need first class support for Linovision PTZ cameras in deployments. ISAPI support also makes pose targeting deterministic, since we can poll the camera until the target azimuth is reached, which is important for repeatable calibration and capture loops.
Notes and limitations
start_zoom_focuscurrently uses the device range 1 to 25, consistent with the camera capabilities we observed