CgwMonitorManage.Tiandy.TiandyVideoMonitor.StartControlPtz C# (CSharp) Method

StartControlPtz() public method

开始云台控制,摄像头控制
public StartControlPtz ( string cameraNo, PtzCommandType ptzCommand, int param ) : SmcErr
cameraNo string 摄像头编号
ptzCommand PtzCommandType 命令类型
param int 命令参数(速度、倍数)
return CgwMonitorManage.SmcError.SmcErr
        public SmcErr StartControlPtz(string cameraNo, PtzCommandType ptzCommand, int param)
        {
            NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
            logEx.Trace("Enter: TiandyVideoMonitor.StartControlPtz({0},{1},{2}).", cameraNo, ptzCommand, param);
            SmcErr err = new CgwError();
            int handel = CgwConst.START_RECEIVE_VIDEO_DATA_FAILED;

            if (this.handelOperateLock.TryEnterReadLock(CgwConst.ENTER_LOCK_WAIT_TIME))
            {
                try
                {
                    if (this.cameraVideoHandeDic.ContainsKey(cameraNo))
                    {
                        handel = this.cameraVideoHandeDic[cameraNo];
                    }
                    else
                    {
                        err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED);
                        logEx.Error("The camera was not previewed.Camera No:{0}.", cameraNo);
                        return err;
                    }
                }
                finally
                {
                    this.handelOperateLock.ExitReadLock();
                }
            }

            if (handel != CgwConst.START_RECEIVE_VIDEO_DATA_FAILED)
            {
                Client_PTZ_Command client_ptz_command = new Client_PTZ_Command();

                client_ptz_command.param = param;
                client_ptz_command.start = true;

                //将ptz命令转换成天地伟业的命令
                string name = Enum.GetName(typeof(PtzCommandType), ptzCommand);
                if (Enum.IsDefined(typeof(TiandyPtzCommandType), name))
                {
                    TiandyPtzCommandType tiandyPtzCommandType = (TiandyPtzCommandType)Enum.Parse(typeof(TiandyPtzCommandType), name);

                    client_ptz_command.cmd = (int)tiandyPtzCommandType;
                }
                else
                {
                    err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED);
                    logEx.Error("The tiandy monitor is not support the command.ptzCommand:{0}.", ptzCommand);
                    return err;
                }

                if (this.sdkClient.ControlPtz(handel, client_ptz_command))
                {
                    logEx.Info("Start control camera ptz success.Camera No:{0}.", cameraNo);
                }
                else
                {
                    err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED);
                    logEx.Error("Start control camera ptz failed.Camera No:{0}.", cameraNo);
                }
            }
            else
            {
                err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED);
                logEx.Error("Handel is not found. Start control camera ptz failed. Camera No:{0}.", cameraNo);
                return err;
            }

            return err;
        }