CgwMonitorManage.T28181.T28181PTZCmd.T28181PTZCmd C# (CSharp) Method

T28181PTZCmd() public method

构造函数
public T28181PTZCmd ( PtzCommandType ptzCommand, int param ) : System
ptzCommand PtzCommandType 命令类型
param int 命令参数(速度、倍数)
return System
        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;
            }
        }