有人可以告诉我为什么上,下保护套可以完美地与按钮配合使用,而其他情况却不能吗?我尝试了两种不同的方法,一种是在左侧的情况下看到的,另一种是在右侧的情况下看到的,但两种方法都不起作用。
void Move(String direction)
{
timer.Enabled = true;
switch (direction)
{
case "Up ":
onvifPTZ.RelativeMove(0, 1f, 0, (float)Pan_Speed.Value, (float)Tilt_Speed.Value, (float)Zoom_Speed.Value);
break;
case "Down":
onvifPTZ.RelativeMove(0, -1f, 0, (float)Pan_Speed.Value, (float)Tilt_Speed.Value, (float)Zoom_Speed.Value);
break;
case "Left":
direction = Direction.Left.ToString();
onvifPTZ.RelativeMove((float)Direction.Left, 0, 0, (float)Pan_Speed.Value, (float)Tilt_Speed.Value, (float)Zoom_Speed.Value);
break;
case "Right":
onvifPTZ.RelativeMove(-1f, 0, 0, (float)Pan_Speed.Value, (float)Tilt_Speed.Value, (float)Zoom_Speed.Value);
break;
}
}
这是我相对的Move函数。
public int RelativeMove(float xTrans, float yTrans, float zTrans, float xSpeed , float ySpeed, float zSpeed)
{
// Define Translation Vector
PTZ.PTZVector ptzTrans = new PTZ.PTZVector()
{
PanTilt = new PTZ.Vector2D()
{
x = xTrans,
y = yTrans,
space = ptzOptions.Spaces.RelativePanTiltTranslationSpace[0].URI,
},
Zoom = new PTZ.Vector1D()
{
x = zTrans,
//space = ptzOptions.Spaces.RelativeZoomTranslationSpace[0].URI,
}
};
// Define Speed Vector
PTZ.PTZSpeed ptzSpd = new PTZ.PTZSpeed()
{
PanTilt = new PTZ.Vector2D()
{
x = xSpeed,
y = ySpeed,
//space = ptzOptions.Spaces.RelativePanTiltTranslationSpace[0].URI,
},
Zoom = new PTZ.Vector1D()
{
x = zSpeed,
// space = ptzOptions.Spaces.RelativeZoomTranslationSpace[0].URI,
}
};
// Move relative along vectore <ptzTrans> with speed <ptzSpd>
// Zoom is manipulated with <zSpeed>.
ptzClient.RelativeMove(profiles[this.selectedProfile].token, ptzTrans, ptzSpd);
return 0;
}
如果有人知道我该怎么做才能起作用,请帮助:),如果有人知道当我不按按钮告诉我时如何停止运动,导致它也无法起作用...我确实实现了并告诉相机停止其中的移动,但是它完全没有反应。
答案 0 :(得分:0)
根据您的描述,我了解到您正在尝试通过速度移动PTZ单元。但是,这与您在代码中使用的功能RelativeMove
不匹配。
来自https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/package-summary.html:
如果PTZ节点支持相对平移/倾斜或相对缩放 动作,则它应支持RelativeMove操作。的 此操作的翻译参数指定与 当前位置到PTZ设备所在的位置 指示移动。该操作分为可选的“平移/倾斜” 元素和可选的Zoom元素。如果“平移/倾斜”元素为 省略,当前的平移/倾斜运动将不受此影响 命令。缩放元素也是如此。
因此,您有两个选择:
ContinuousMove
是否满足您的需求RelativeMove
,请检查ptzOptions.Spaces.RelativePanTiltTranslationSpace[0].URI
是什么。它可能是一个自定义空间,其平移和倾斜范围不同。