public T28181PTZCmd(PtzCommandType ptzCommand, int param)
{
//速度为0,表示停止云台控制
if (param ==0)
{
Byte4 = 0x0;
return;
}
//设置PTZ命令类型和参数,设置字节5、字节6、字节7的十六进制值,把速度参数转化为T28181协议的数值范围
switch (ptzCommand)
{
case PtzCommandType.PTZ_CMD_DOWN:
Byte4 = 0x4;
Byte6 = Convert.ToInt32(param.ToString("X2")) * 255 / 10;//字节6控制水平方向速度,速度范围由慢到快为00H-FFH
break;
case PtzCommandType.PTZ_CMD_UP:
Byte4 = 0x8;
Byte6 = Convert.ToInt32(param.ToString("X2")) * 255 / 10;
break;
case PtzCommandType.PTZ_CMD_FOCUS_IN:
case PtzCommandType.PTZ_CMD_ZOOM_IN:
Byte4 = 0x10;
Byte7 = (Convert.ToInt32(param.ToString("X2")) * 15 / 10) << 4;//字节7 的高4 位为变焦速度,速度范围由慢到快为0H-FH
break;
case PtzCommandType.PTZ_CMD_FOCUS_OUT:
case PtzCommandType.PTZ_CMD_ZOOM_OUT:
Byte4 = 0x20;
Byte7 = (Convert.ToInt32(param.ToString("X2")) * 15 / 10) << 4;
break;
case PtzCommandType.PTZ_CMD_LEFT:
Byte4 = 0x2;
Byte5 = Convert.ToInt32(param.ToString("X2")) * 255 / 10;//字节5 控制水平方向速度,速度范围由慢到快为00H-FFH
break;
case PtzCommandType.PTZ_CMD_RIGHT:
Byte4 = 0x1;
Byte5 = Convert.ToInt32(param.ToString("X2")) * 255 / 10;
break;
}
}