ONVIF управление диафрагмой IP камеры

Я пишу программу на C# для управления камерой через протокол ONVIF.

Спецификация ImagingPort содержит методы GetImagingSetting и SetImagingSettings, позволяющие управлять диафрагмой камеры. Проблема заключается в следующем: пока я не воздействую на диафрагму камеры через веб-плагин от производителя камеры, моя программа не дает никаких изменений в потоке. Как только изменю положение диафрагмы через плагин, моя программа начинает правильно работать. Камера RVi-IPC62Z30-A1.

Вот так подключаюсь к камере:

imagingClient_ = new ImagingBinding();
imagingClient_.Url = $"http://{cameraAddress}/onvif/ImagingPort";
imagingClient_.Credentials = new NetworkCredential(userName, password);

Вот так пытаюсь управлять диафрагмой:

 public void ChangeIris(IrisDirections direction)
    {
      if (initialized_ == false)
        return;

      if (irisEnabled_)
      {
        settings_ = imagingClient_.GetImagingSettings(sourceToken_);
        var minIris = settings_.Exposure.MinIrisSpecified ? settings_.Exposure.MinIris : 0F;
        var maxIris = settings_.Exposure.MaxIrisSpecified ? settings_.Exposure.MaxIris : 1F;
        if (direction.HasFlag(IrisDirections.IrisLess))
        {
          if (settings_.Exposure.Iris - 0.1F >= minIris)
            settings_.Exposure.Iris -= 0.1F;
          else
            settings_.Exposure.Iris = minIris;
        }
        else if (direction.HasFlag(IrisDirections.IrisMore))
        {
          if (settings_.Exposure.Iris + 0.1F <= maxIris)
            settings_.Exposure.Iris += 0.1F;
          else
            settings_.Exposure.Iris = maxIris;
        }
        imagingClient_.SetImagingSettings(sourceToken_, settings_, false, false);
      }
    }

Из плагина: Вот, что шлет плагин.


Ответы (0 шт):