Add requirement file, docs, updates to complete PTZ
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
18
api/ptz.py
18
api/ptz.py
@@ -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
4
requirements.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
requests
|
||||||
|
opencv-python
|
||||||
|
numpy
|
||||||
|
socks
|
||||||
Reference in New Issue
Block a user