Невозможно переместить PTZ-камеру по протоколу ONVIF - Python Клиент - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь переместить камеру PTZ с помощью клиента onvif, записанного в python из github Я могу подключиться к камере Bo sh 7000 Autodome. Я использую пример для проверки операции перемещения Вот мой объект для использования аналогичного аргумента для метода ContinuousMove

>>> moverequest
{
    'ProfileToken': '0',
    'Velocity': {
        'PanTilt': {
            'x': 0.57,
            'y': -0.44,
            'space': 'http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace'
        },
        'Zoom': {
            'x': 0.0,
            'space': 'http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace'
        }
    },
    'Timeout': None
}

Когда я пытаюсь выполнить ContinuousMove (), я получил следующую ошибку

>>> ptz.ContinuousMove(moverequest)
Traceback (most recent call last):
  File "/home/myuser/Documents/python-onvif-zeep/onvif/client.py", line 25, in wrapped
    return func(*args, **kwargs)
  File "/home/myuser/Documents/python-onvif-zeep/onvif/client.py", line 150, in wrapped
    return call(params, callback)
  File "/home/myuser/Documents/python-onvif-zeep/onvif/client.py", line 138, in call
    ret = func(**params)
  File "/usr/local/lib/python3.7/dist-packages/zeep/proxy.py", line 45, in __call__
    kwargs,
  File "/usr/local/lib/python3.7/dist-packages/zeep/wsdl/bindings/soap.py", line 130, in send
    return self.process_reply(client, operation_obj, response)
  File "/usr/local/lib/python3.7/dist-packages/zeep/wsdl/bindings/soap.py", line 195, in process_reply
    return self.process_error(doc, operation)
  File "/usr/local/lib/python3.7/dist-packages/zeep/wsdl/bindings/soap.py", line 362, in process_error
    subcodes=subcodes,
zeep.exceptions.Fault: Action Failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/myuser/Documents/python-onvif-zeep/onvif/client.py", line 27, in wrapped
    raise ONVIFError(err)
onvif.exceptions.ONVIFError: Unknown error: Action Failed

ПОМОГИТЕ ПОЖАЛУЙСТА

1 Ответ

0 голосов
/ 16 января 2020

Вы используете http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace и http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace. В соответствии с §5.7.1.1 услуги PTZ, специфицированной c:

Пространство общего положения c для поворота / наклона должно предоставляться каждым узлом PTZ, который поддерживает абсолютное панорамирование / наклон, поскольку он не относится к конкретному c физическому диапазону. Вместо этого диапазон должен быть определен как полный диапазон PTZ-устройства, нормализованный к диапазону от -1 до 1

. В разделе 5.7.3.1 вы найдете

Общее пространство скорости панорамирования / наклона c должно предоставляться каждым узлом PTZ, поскольку оно не относится к конкретному c физическому диапазону. Вместо этого диапазон должен быть определен как диапазон скорости устройства PTZ, нормализованный к диапазону от -1 до 1, где положительная скорость будет отображаться на вращение по часовой стрелке или движение в направлении вправо / вверх.

Таким образом попробуйте использовать http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace и http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace.

...