public SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommand)
{
NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
logEx.Trace("Enter: TiandyVideoMonitor.StopControlPtz({0}).", cameraNo);
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
{
logEx.Warn("The camera was not Preview.Don't need to end the control.Camera No:{0}.", cameraNo);
}
}
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.start = false;
//将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.STOP_CONTROL_PTZ_FAILED);
logEx.Error("The tiandy monitor is not support the command.ptzCommand:{0}.", ptzCommand);
return err;
}
bool result = this.sdkClient.ControlPtz(handel, client_ptz_command);
if (result)
{
logEx.Info("Stop control camera ptz success.Camera No:{0}.", cameraNo);
}
else
{
err.SetErrorNo(CgwError.STOP_CONTROL_PTZ_FAILED);
logEx.Error("Stop control camera ptz failed.Camera No:{0}.", cameraNo);
}
}
else
{
err.SetErrorNo(CgwError.STOP_CONTROL_PTZ_FAILED);
logEx.Error("Handel is not found. Stop control camera ptz failed. Camera No:{0}.", cameraNo);
return err;
}
return err;
}