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: GET:
- [X] Login - [X] Login
- [X] Logout
- [ ] Display -> OSD - [ ] Display -> OSD
- [ ] Recording -> Encode (Clear and Fluent Stream) - [ ] Recording -> Encode (Clear and Fluent Stream)
- [ ] Recording -> Advance (Scheduling) - [ ] Recording -> Advance (Scheduling)
@@ -73,6 +74,7 @@ SET:
- [ ] User -> Add User - [ ] User -> Add User
- [ ] User -> Manage User - [ ] User -> Manage User
- [ ] Device -> HDD/SD Card - [ ] Device -> HDD/SD Card
- [x] PTZ
- [x] Zoom - [x] Zoom
- [x] Focus - [x] Focus
- [ ] Image (Brightness, Contrass, Saturation, Hue, Sharp, Mirror, Rotate) - [ ] Image (Brightness, Contrass, Saturation, Hue, Sharp, Mirror, Rotate)

View File

@@ -5,6 +5,7 @@ from .display import DisplayAPIMixin
from .network import NetworkAPIMixin from .network import NetworkAPIMixin
from .system import SystemAPIMixin from .system import SystemAPIMixin
from .user import UserAPIMixin from .user import UserAPIMixin
from .ptz import PtzAPIMixin
from resthandle import Request from resthandle import Request
@@ -14,7 +15,8 @@ class APIHandler(SystemAPIMixin,
DeviceAPIMixin, DeviceAPIMixin,
DisplayAPIMixin, DisplayAPIMixin,
RecordingAPIMixin, RecordingAPIMixin,
ZoomAPIMixin): ZoomAPIMixin,
PtzAPIMixin):
""" """
The APIHandler class is the backend part of the API, the actual API calls The APIHandler class is the backend part of the API, the actual API calls
are implemented in Mixins. are implemented in Mixins.
@@ -69,6 +71,20 @@ class APIHandler(SystemAPIMixin,
print("Error Login\n", e) print("Error Login\n", e)
raise 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): def _execute_command(self, command, data, multi=False):
""" """
Send a POST request to the IP camera with given data. 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) 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 Move the camera to the right
The camera moves self.stop_ptz() is called. The camera moves self.stop_ptz() is called.
@@ -48,7 +48,7 @@ class PtzAPIMixin:
""" """
return self._send_operation('Right', speed=speed) 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 Move the camera to the right and up
The camera moves self.stop_ptz() is called. The camera moves self.stop_ptz() is called.
@@ -56,7 +56,7 @@ class PtzAPIMixin:
""" """
return self._send_operation('RightUp', speed=speed) 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 Move the camera to the right and down
The camera moves self.stop_ptz() is called. The camera moves self.stop_ptz() is called.
@@ -64,7 +64,7 @@ class PtzAPIMixin:
""" """
return self._send_operation('RightDown', speed=speed) 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 Move the camera to the left
The camera moves self.stop_ptz() is called. The camera moves self.stop_ptz() is called.
@@ -72,7 +72,7 @@ class PtzAPIMixin:
""" """
return self._send_operation('Left', speed=speed) 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 Move the camera to the left and up
The camera moves self.stop_ptz() is called. The camera moves self.stop_ptz() is called.
@@ -80,7 +80,7 @@ class PtzAPIMixin:
""" """
return self._send_operation('LeftUp', speed=speed) 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 Move the camera to the left and down
The camera moves self.stop_ptz() is called. The camera moves self.stop_ptz() is called.
@@ -88,7 +88,7 @@ class PtzAPIMixin:
""" """
return self._send_operation('LeftDown', speed=speed) return self._send_operation('LeftDown', speed=speed)
def move_up(self, speed=32): def move_up(self, speed=25):
""" """
Move the camera up. Move the camera up.
The camera moves self.stop_ptz() is called. The camera moves self.stop_ptz() is called.
@@ -96,7 +96,7 @@ class PtzAPIMixin:
""" """
return self._send_operation('Up', speed=speed) return self._send_operation('Up', speed=speed)
def move_down(self, speed=32): def move_down(self, speed=25):
""" """
Move the camera down. Move the camera down.
The camera moves self.stop_ptz() is called. The camera moves self.stop_ptz() is called.
@@ -111,7 +111,7 @@ class PtzAPIMixin:
""" """
return self._send_noparm_operation('Stop') 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. Move the camera in a clockwise rotation.
The camera moves self.stop_ptz() is called. The camera moves self.stop_ptz() is called.

4
requirements.txt Normal file
View File

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