mirror of
https://github.com/ZoneMinder/zoneminder.git
synced 2026-07-26 04:46:42 -04:00
* Add a control module to support the current Amcrest HTTP API This patch adds ZoneMinder::Control::Amcrest_HTTP This module is adapted and improved from one available on the ZoneMinder forums.[1] It appears that a number of individuals have contributed to it. This is an attempt to correct some of its interactions with ZM::Control and friends as well as enhance and extend supported control features for Amcrest cameras. This work is based on Amcrest HTTP Protocol API Specifications Rev. 2.12 2017-03-15 [1]https://forums.zoneminder.com/download/file.php?id=1878 * Fixing zoom methods * Misc. cleanup of comments, etc. * Fixing up POD, etc. * Converting line endings to Unix * Fixing up preset methods The current Amcrest HTTP API does not support a Home command per se. So this method is set up to send the camera to the first preset position. Of course, this presupposes that the user will setup a preset #1 otherwise the command will fail on a bad preset error. If a future version of the API supports a true Home command, we'll adjust at that point. For now this seems to be a useful workaround. * Removing duplicate home method * Adding moveAbs method I'm putting this in, but absolute camera movement does not seem to be well supported in the classic skin ATM. Reading www/skins/classic/include/control_functions.php seems to indicate a faulty implementation, unless I'm reading it wrong. I see nowhere where the user is able to specify the absolute location to move to. Rather, the call is passed back movement in increments of 1 unit. At least with the Amcrest/Duhua API this would result in the camera moving to the 1* or 0* etc. position. moveAbsUp, Down, Left, Right, etc. Doesn't make sense given the definition of Absolute movement. * Adding a note about the moveMap method This method does not appear to be implemented in the classic skin, but we'll leave it here for future implementation. Caveat: It may or may not work as-is. * Fixing up zoomConTele/Wide methods * Adding a vanilla control type for the Amcrest HTTP API Please note that this control type matches (mostly) the currently available control options in Amcrest_HTTP.pm. It does not match all (or possibly any) of the control options available on a specific Amcrest camera. The user may need to create their own control type specific to the camera model they are using. * Removing misplaced comment Thanks to connortechnology for pointing this out!