Add requirement file, docs, updates to complete PTZ

This commit is contained in:
Karl Moos
2020-10-18 11:17:05 -05:00
parent 9b5849988d
commit aa14b601f5
4 changed files with 33 additions and 11 deletions

View File

@@ -25,6 +25,7 @@ This project intends to stick with [PEP8](https://www.python.org/dev/peps/pep-00
GET:
- [X] Login
- [X] Logout
- [ ] Display -> OSD
- [ ] Recording -> Encode (Clear and Fluent Stream)
- [ ] Recording -> Advance (Scheduling)
@@ -73,6 +74,7 @@ SET:
- [ ] User -> Add User
- [ ] User -> Manage User
- [ ] Device -> HDD/SD Card
- [x] PTZ
- [x] Zoom
- [x] Focus
- [ ] Image (Brightness, Contrass, Saturation, Hue, Sharp, Mirror, Rotate)

View File

@@ -5,6 +5,7 @@ from .display import DisplayAPIMixin
from .network import NetworkAPIMixin
from .system import SystemAPIMixin
from .user import UserAPIMixin
from .ptz import PtzAPIMixin
from resthandle import Request
@@ -14,7 +15,8 @@ class APIHandler(SystemAPIMixin,
DeviceAPIMixin,
DisplayAPIMixin,
RecordingAPIMixin,
ZoomAPIMixin):
ZoomAPIMixin,
PtzAPIMixin):
"""
The APIHandler class is the backend part of the API, the actual API calls
are implemented in Mixins.
@@ -68,7 +70,21 @@ class APIHandler(SystemAPIMixin,
except Exception as e:
print("Error Login\n", e)
raise
def logout(self) -> bool:
"""
Logout of the camera
:return: bool
"""
try:
data = [{"cmd": "Logout", "action": 0}]
ret = self._execute_command('Logout', data)
print(ret)
return True
except Exception as e:
print("Error Logout\n", e)
return False
def _execute_command(self, command, data, multi=False):
"""
Send a POST request to the IP camera with given data.

View File

@@ -40,7 +40,7 @@ class PtzAPIMixin:
"""
return self._send_set_preset('PtzPreset', enable=0, preset=preset, name=name)
def move_right(self, speed=32):
def move_right(self, speed=25):
"""
Move the camera to the right
The camera moves self.stop_ptz() is called.
@@ -48,7 +48,7 @@ class PtzAPIMixin:
"""
return self._send_operation('Right', speed=speed)
def move_right_up(self, speed=32):
def move_right_up(self, speed=25):
"""
Move the camera to the right and up
The camera moves self.stop_ptz() is called.
@@ -56,7 +56,7 @@ class PtzAPIMixin:
"""
return self._send_operation('RightUp', speed=speed)
def move_right_down(self, speed=32):
def move_right_down(self, speed=25):
"""
Move the camera to the right and down
The camera moves self.stop_ptz() is called.
@@ -64,7 +64,7 @@ class PtzAPIMixin:
"""
return self._send_operation('RightDown', speed=speed)
def move_left(self, speed=32):
def move_left(self, speed=25):
"""
Move the camera to the left
The camera moves self.stop_ptz() is called.
@@ -72,7 +72,7 @@ class PtzAPIMixin:
"""
return self._send_operation('Left', speed=speed)
def move_left_up(self, speed=32):
def move_left_up(self, speed=25):
"""
Move the camera to the left and up
The camera moves self.stop_ptz() is called.
@@ -80,7 +80,7 @@ class PtzAPIMixin:
"""
return self._send_operation('LeftUp', speed=speed)
def move_left_down(self, speed=32):
def move_left_down(self, speed=25):
"""
Move the camera to the left and down
The camera moves self.stop_ptz() is called.
@@ -88,7 +88,7 @@ class PtzAPIMixin:
"""
return self._send_operation('LeftDown', speed=speed)
def move_up(self, speed=32):
def move_up(self, speed=25):
"""
Move the camera up.
The camera moves self.stop_ptz() is called.
@@ -96,7 +96,7 @@ class PtzAPIMixin:
"""
return self._send_operation('Up', speed=speed)
def move_down(self, speed=32):
def move_down(self, speed=25):
"""
Move the camera down.
The camera moves self.stop_ptz() is called.
@@ -111,7 +111,7 @@ class PtzAPIMixin:
"""
return self._send_noparm_operation('Stop')
def auto_movement(self, speed=32):
def auto_movement(self, speed=25):
"""
Move the camera in a clockwise rotation.
The camera moves self.stop_ptz() is called.

4
requirements.txt Normal file
View File

@@ -0,0 +1,4 @@
requests
opencv-python
numpy
socks