Files
zoneminder/db/zm_update-1.39.20.sql
T
Isaac ConnorandClaude Opus 5 588822efb0 Correct the IP5M-1190EW row from measured behaviour
Three values in the entry added a few commits ago were wrong, all for the
same reason: I read them off http status codes, in the entry whose own
comment says http status codes cannot be trusted here.  Re-derived with
amcrest_probe.pl, which decides every flag by comparing frames.

CanMoveDiag was 1 because LeftUp returns 200.  It shifts the picture by
1.8 against a 6.0 threshold, so nothing moves.  Now 0.

Pan and tilt speed were 1..8 from the Dahua documentation.  Measured
displacement is 31.5, 36.2, 41.4 for speeds 1, 2, 4 and then flat through
8, 16, 32 and 64, so the usable range is 1..4 even though the firmware
accepts far higher.

NumPresets was 255, the firmware ceiling.  That is the wrong thing to
measure: the classic skin draws one button per preset, and the camera
refuses GotoPreset for any index not yet stored, so 255 gives a wall of
buttons where all but the defined ones error.  Now 25, matching the
sibling Dahua/Amcrest RPC entries.

CanMoveAbs stays 0 but for a better reason than before.  PositionABS is
accepted, reaches distinct positions and reproduces a revisited
coordinate, so it passes the obvious tests.  Its targets are 90 degrees
apart though, and the median step shifts the view 16.4 where a single one
second nudge shifts it 42.5 - the pan argument is being clamped to a
fraction of what was asked, so a moveMap click would not land where it
was aimed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzHrvNtF13vyYBAJjktam6
2026-08-16 18:54:38 -04:00

47 lines
2.2 KiB
SQL

--
-- Add a model-specific Controls entry for the Amcrest IP5M-1190EW.
--
-- Measured with amcrest_probe.pl against firmware 2.810.00AC004.0.R. Every
-- flag was decided by comparing frames before and after the command: this
-- firmware answers OK to codes the hardware cannot perform, and its
-- ptz.cgi?action=getStatus reports a fixed Postion=0/16.65 MoveStatus=Idle
-- whatever the camera is doing, so neither can be used to decide anything.
--
-- Pan, tilt and continuous move work. The diagonals do not - LeftUp is
-- accepted and shifts the picture 1.8 against a 6.0 threshold. Zoom, focus
-- and iris do not either: ZoomTele and FocusNear are accepted and change
-- nothing, autoFocus, getFocusStatus, IrisLarge and AutoPanOn are refused.
--
-- PositionABS is accepted, reaches distinct positions and reproduces a
-- revisited coordinate, so a naive test calls it working. But its targets
-- are 90 degrees apart and the median step shifts the view 16.4 where a one
-- second nudge shifts it 42.5, so the argument is clamped to a fraction of
-- what was asked and a moveMap click would miss. Hence CanMoveAbs and
-- CanMoveMap 0.
--
-- Speed: arg2 is accepted up to at least 64 but measured displacement stops
-- rising above 4, so the usable range is 1..4.
--
-- The white light exists in Lighting_V2, but coaxialControlIO is refused and
-- config writes to Lighting/Lighting_V2 are accepted and then ignored.
--
-- NumPresets is 25 to match the sibling Dahua/Amcrest RPC entries. The
-- firmware stored a preset at every index tried up to 256, but this column
-- drives one button per preset in the ui and GotoPreset is refused for an
-- index that has not been stored, so a bigger number only produces buttons
-- that error until they are defined.
--
INSERT INTO `Controls`
(`Name`,`Type`,`Protocol`,`CanReset`,`CanReboot`,
`HasPresets`,`NumPresets`,`HasHomePreset`,`CanSetPresets`,
`CanMove`,`CanMoveCon`,
`CanPan`,`HasPanSpeed`,`MinPanSpeed`,`MaxPanSpeed`,
`CanTilt`,`HasTiltSpeed`,`MinTiltSpeed`,`MaxTiltSpeed`)
SELECT 'Amcrest IP5M-1190EW HTTP','Ffmpeg','Amcrest_HTTP',1,1,
1,25,1,1,
1,1,
1,1,1,4,
1,1,1,4
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `Controls` WHERE `Name`='Amcrest IP5M-1190EW HTTP');