/// <summary> /// 停止云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommandType">命令类型</param> /// <returns></returns> public SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommandType) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: VideoMonitorManage.StopControlPtz({0}).", cameraNo); IVideoMonitor videoMonitor; string decodedCameraNo; SmcErr err = DecoderCameraNo(cameraNo, out decodedCameraNo, out videoMonitor); if (err.IsSuccess()) { err = videoMonitor.StopControlPtz(decodedCameraNo, ptzCommandType); if (err.IsSuccess()) { logEx.Info("Stop control ptz success.Camera no:{0},ptzCommandType:{1}.", cameraNo, ptzCommandType); } else { logEx.Error("Stop control ptz failed.Camera no:{0},ptzCommandType:{1},Error Code:{1} ", cameraNo, ptzCommandType, err.ErrNo); } } else { logEx.Error("Stop control ptz failed. Camera no is not found.Camera no:{0}.", cameraNo); } return(err); }
/// <summary> /// 停止云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommandType">命令类型</param> /// <returns></returns> public SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommandType) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: T28181VideoMonitor.StopControlPtz({0}).", cameraNo); SmcErr err = new CgwError(); //将ptz命令转换成T28181的命令 T28181PTZCmd cmd = new T28181PTZCmd(ptzCommandType, 0); string ptzCmd = cmd.ToString(); //控制权限级别设为1 int result = sipStack.PtzControl(cameraNo, ptzCmd, "1"); //如果为0,表示成功 if (result == CgwConst.IVS_SDK_SUCCESS_TAG) { logEx.Info("Stop control ptz success.Camera No:{0}.", cameraNo); } else { //直接将IVS的错误码返回 err.SetErrorNo(CgwError.STOP_CONTROL_PTZ_FAILED); logEx.Error("Stop control ptz failed.Camera No:{0}.Ivs sdk error code:{1}.", cameraNo, result); return(err); } return(err); }
/// <summary> /// 开始云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommandType">命令类型</param> /// <param name="param">命令参数,速度或倍数</param> /// <returns></returns> public SmcErr StartControlPtz(string cameraNo, PtzCommandType ptzCommand, int param) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: T28181VideoMonitor.StartControlPtz({0},{1},{2}).", cameraNo, ptzCommand, param); SmcErr err = new CgwError(); //将ptz命令转换成T28181的命令 T28181PTZCmd cmd = new T28181PTZCmd(ptzCommand, param); string ptzCmd = cmd.ToString(); logEx.Trace("Call T28181VideoMonitor.StartPtzControl({0},{1},{2}).", cameraNo, Enum.GetName(typeof(PtzCommandType), (int)ptzCommand), param); //控制权限级别设为1 int result = sipStack.PtzControl(cameraNo, ptzCmd, "1"); //如果为0,表示成功 if (result == CgwConst.IVS_SDK_SUCCESS_TAG) { logEx.Info("Start control ptz success.Camera No:{0}.", cameraNo); } else { err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED); logEx.Error("Start control ptz failed.Camera No:{0}.T28181VideoMonitor error code:{1}.", cameraNo, result); return(err); } return(err); }
/// <summary> /// 构造函数 /// </summary> /// <param name="ptzCommand">命令类型</param> /// <param name="param">命令参数(速度、倍数)</param> 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; } }
/// <summary> /// 开始PTZ操作 /// </summary> /// <param name="cameraNo">摄像头NO</param> /// <param name="ptzCommand">操作类型</param> /// <param name="param">命令参数</param> /// <returns></returns> public SmcErr StartControlPtz(string cameraNo, PtzCommandType ptzCommand, int param) { SmcErr err = new CgwError(); err = CheckSession(); NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); if (err.IsSuccess()) { err = MonitorChannelBll.Instance().StartControlPtz(cameraNo, ptzCommand, param); } if (err.IsSuccess()) { logEx.Trace("StartControlPtz Successful"); } else { logEx.Error("StartControlPtz failed,ErrNo :{0}", err.ErrNo); } return(err); }
/// <summary> /// 关闭PTZ操作 /// </summary> /// <param name="Camerano">摄像头</param> /// <returns></returns> public SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommandType) { SmcErr err = new CgwError(); NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); err = CheckSession(); if (err.IsSuccess()) { err = MonitorChannelBll.Instance().StopControlPtz(cameraNo, ptzCommandType); } if (err.IsSuccess()) { logEx.Info("SMC StopPTZ Successful,Current SMC IP is : {0}", CgwConst.SmcIp); } else { logEx.Error("SMC StopPTZ failed,ErrNo :{0}", err.ErrNo); } return(err); }
/// <summary> /// 构造函数 /// </summary> /// <param name="ptzCommand">命令类型</param> /// <param name="param">命令参数(速度、倍数)</param> 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; } }
/// <summary> /// 停止云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommandType">命令类型</param> /// <returns></returns> public SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommandType) { SmcErr err = new CgwError(); NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); err = CheckSession(currentSessionID); //调任何接口前 需要判断监控平台是否加载成功 if (err.IsSuccess()) { err = VideoMonitorManage.Instance().StopControlPtz(cameraNo, ptzCommandType); } if (err.IsSuccess()) { logEx.Info("MonitorManageService StopControlPtz Successful,Current Cgw IP is : {0}", CgwConst.ClientIp); } else { logEx.Error("MonitorManageService StopControlPtz failed,ErrNo :{0}", err.ErrNo); } return(err); }
/// <summary> /// 停止云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommand">命令类型</param> /// <returns></returns> public SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommand) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: IvsVideoMonitor.StopControlPtz({0}).", cameraNo); SmcErr err = new CgwError(); logEx.Trace("Call ivsSdkClient.StopPtzControl({0}).", cameraNo); int result = this.ivsSdkClient.StopPtzControl(cameraNo); //如果为0,表示成功 if (result == CgwConst.IVS_SDK_SUCCESS_TAG) { logEx.Info("Stop control ptz success.Camera No:{0}.", cameraNo); } else { //直接将IVS的错误码返回 err.SetErrorNo(CgwError.STOP_CONTROL_PTZ_FAILED); logEx.Error("Stop control ptz failed.Camera No:{0}.Ivs sdk error code:{1}.", cameraNo, result); return(err); } return(err); }
/// <summary> /// 开始云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommand">命令类型</param> /// <param name="param">命令参数(速度、倍数)</param> /// <returns></returns> public SmcErr StartControlPtz(string cameraNo, PtzCommandType ptzCommand, int param) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: IvsVideoMonitor.StartControlPtz({0},{1},{2}).", cameraNo, ptzCommand, param); SmcErr err = new CgwError(); //将ptz命令转换成IVS的命令 string name = Enum.GetName(typeof(PtzCommandType), ptzCommand); if (Enum.IsDefined(typeof(IvsPtzCommandType), name)) { IvsPtzCommandType ivsPtzCommandType = (IvsPtzCommandType)Enum.Parse(typeof(IvsPtzCommandType), name); logEx.Trace("Call ivsSdkClient.StartPtzControl({0},{1},{2}).", cameraNo, (int)ivsPtzCommandType, param); int result = this.ivsSdkClient.StartPtzControl(cameraNo, (int)ivsPtzCommandType, param.ToString()); //如果为0,表示成功 if (result == CgwConst.IVS_SDK_SUCCESS_TAG) { logEx.Info("Start control ptz success.Camera No:{0}.", cameraNo); } else { err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED); logEx.Error("Start control ptz failed.Camera No:{0}.Ivs sdk error code:{1}.", cameraNo, result); return(err); } } else { err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED); logEx.Error("The ivs monitor is not support the command.ptzCommand:{0}.", ptzCommand); return(err); } return(err); }
/// <summary> /// 开始PTZ操作 /// </summary> /// <param name="cameraNo">摄像头NO</param> /// <param name="ptzCommand">操作类型</param> /// <param name="param">命令参数</param> /// <returns></returns> public SmcErr StartControlPtz(string cameraNo, PtzCommandType ptzCommand, int param) { SmcErr err = new CgwError(); err = CheckSession(); NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); if (err.IsSuccess()) { err = MonitorChannelBll.Instance().StartControlPtz(cameraNo, ptzCommand, param); } if (err.IsSuccess()) { logEx.Trace("StartControlPtz Successful"); } else { logEx.Error("StartControlPtz failed,ErrNo :{0}", err.ErrNo); } return err; }
/// <summary> /// 停止云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommandType">命令类型</param> /// <returns></returns> public SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommandType) { SmcErr err = new CgwError(); NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); err = CheckSession(currentSessionID); //调任何接口前 需要判断监控平台是否加载成功 if (err.IsSuccess()) { err = VideoMonitorManage.Instance().StopControlPtz(cameraNo, ptzCommandType); } if (err.IsSuccess()) { logEx.Info("MonitorManageService StopControlPtz Successful,Current Cgw IP is : {0}", CgwConst.ClientIp); } else { logEx.Error("MonitorManageService StopControlPtz failed,ErrNo :{0}", err.ErrNo); } return err; }
/// <summary> /// 停止云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommand">命令类型</param> /// <returns></returns> 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); }
/// <summary> /// 关闭PTZ操作 /// </summary> /// <param name="Camerano">摄像头</param> /// <returns></returns> public SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommandType) { SmcErr err = new CgwError(); NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); err = CheckSession(); if (err.IsSuccess()) { err = MonitorChannelBll.Instance().StopControlPtz(cameraNo, ptzCommandType); } if (err.IsSuccess()) { logEx.Info("SMC StopPTZ Successful,Current SMC IP is : {0}", CgwConst.SmcIp); } else { logEx.Error("SMC StopPTZ failed,ErrNo :{0}", err.ErrNo); } return err; }
/// <summary> /// 停止云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommandType">命令类型</param> /// <returns></returns> public SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommandType) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: VideoMonitorManage.StopControlPtz({0}).", cameraNo); IVideoMonitor videoMonitor; string decodedCameraNo; SmcErr err = DecoderCameraNo(cameraNo, out decodedCameraNo, out videoMonitor); if (err.IsSuccess()) { err = videoMonitor.StopControlPtz(decodedCameraNo, ptzCommandType); if (err.IsSuccess()) { logEx.Info("Stop control ptz success.Camera no:{0},ptzCommandType:{1}.", cameraNo, ptzCommandType); } else { logEx.Error("Stop control ptz failed.Camera no:{0},ptzCommandType:{1},Error Code:{1} ", cameraNo, ptzCommandType, err.ErrNo); } } else { logEx.Error("Stop control ptz failed. Camera no is not found.Camera no:{0}.", cameraNo); } return err; }
/// <summary> /// 开始云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommand">命令类型</param> /// <param name="param">命令参数(速度、倍数)</param> /// <returns></returns> public SmcErr StartControlPtz(string cameraNo, PtzCommandType ptzCommand, int param) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: IvsVideoMonitor.StartControlPtz({0},{1},{2}).", cameraNo, ptzCommand, param); SmcErr err = new CgwError(); //将ptz命令转换成IVS的命令 string name = Enum.GetName(typeof(PtzCommandType), ptzCommand); if (Enum.IsDefined(typeof(IvsPtzCommandType), name)) { IvsPtzCommandType ivsPtzCommandType = (IvsPtzCommandType)Enum.Parse(typeof(IvsPtzCommandType), name); logEx.Trace("Call ivsSdkClient.StartPtzControl({0},{1},{2}).", cameraNo, (int)ivsPtzCommandType, param); int result = this.ivsSdkClient.StartPtzControl(cameraNo, (int)ivsPtzCommandType, param.ToString()); //如果为0,表示成功 if (result == CgwConst.IVS_SDK_SUCCESS_TAG) { logEx.Info("Start control ptz success.Camera No:{0}.", cameraNo); } else { err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED); logEx.Error("Start control ptz failed.Camera No:{0}.Ivs sdk error code:{1}.", cameraNo, result); return err; } } else { err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED); logEx.Error("The ivs monitor is not support the command.ptzCommand:{0}.", ptzCommand); return err; } return err; }
/// <summary> /// 开始云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommandType">命令类型</param> /// <param name="param">命令参数,速度或倍数</param> /// <returns></returns> public SmcErr StartControlPtz(string cameraNo, PtzCommandType ptzCommand, int param) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: T28181VideoMonitor.StartControlPtz({0},{1},{2}).", cameraNo, ptzCommand, param); SmcErr err = new CgwError(); //将ptz命令转换成T28181的命令 T28181PTZCmd cmd = new T28181PTZCmd(ptzCommand, param); string ptzCmd = cmd.ToString(); logEx.Trace("Call T28181VideoMonitor.StartPtzControl({0},{1},{2}).", cameraNo, Enum.GetName(typeof(PtzCommandType), (int)ptzCommand), param); //控制权限级别设为1 int result = sipStack.PtzControl(cameraNo, ptzCmd, "1"); //如果为0,表示成功 if (result == CgwConst.IVS_SDK_SUCCESS_TAG) { logEx.Info("Start control ptz success.Camera No:{0}.", cameraNo); } else { err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED); logEx.Error("Start control ptz failed.Camera No:{0}.T28181VideoMonitor error code:{1}.", cameraNo, result); return err; } return err; }
/// <summary> /// 停止云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommandType">命令类型</param> /// <returns></returns> public SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommandType) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: T28181VideoMonitor.StopControlPtz({0}).", cameraNo); SmcErr err = new CgwError(); //将ptz命令转换成T28181的命令 T28181PTZCmd cmd = new T28181PTZCmd(ptzCommandType, 0); string ptzCmd = cmd.ToString(); //控制权限级别设为1 int result = sipStack.PtzControl(cameraNo, ptzCmd, "1"); //如果为0,表示成功 if (result == CgwConst.IVS_SDK_SUCCESS_TAG) { logEx.Info("Stop control ptz success.Camera No:{0}.", cameraNo); } else { //直接将IVS的错误码返回 err.SetErrorNo(CgwError.STOP_CONTROL_PTZ_FAILED); logEx.Error("Stop control ptz failed.Camera No:{0}.Ivs sdk error code:{1}.", cameraNo, result); return err; } return err; }
/// <summary> /// 停止云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommand">命令类型</param> /// <returns></returns> public SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommand) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: IvsVideoMonitor.StopControlPtz({0}).", cameraNo); SmcErr err = new CgwError(); logEx.Trace("Call ivsSdkClient.StopPtzControl({0}).", cameraNo); int result = this.ivsSdkClient.StopPtzControl(cameraNo); //如果为0,表示成功 if (result == CgwConst.IVS_SDK_SUCCESS_TAG) { logEx.Info("Stop control ptz success.Camera No:{0}.", cameraNo); } else { //直接将IVS的错误码返回 err.SetErrorNo(CgwError.STOP_CONTROL_PTZ_FAILED); logEx.Error("Stop control ptz failed.Camera No:{0}.Ivs sdk error code:{1}.", cameraNo, result); return err; } return err; }
/// <summary> /// 开始云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommand">命令类型</param> /// <param name="param">命令参数(速度、倍数)</param> /// <returns></returns> public SmcError.SmcErr StartControlPtz(string cameraNo, PtzCommandType ptzCommand, int param) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: eLTEVideoMonitor.StartControlPtz.cameraNo:{0},ptzCommand:{1},param:{2}", cameraNo, Enum.GetName(typeof(PtzCommandType), ptzCommand), param); SmcErr err = new CgwError(); //将ptz命令转换成elte的命令 eLTEPTZControlCode ptzControl = eLTEPTZControlCode.STOP_SEQ; switch (ptzCommand) { case PtzCommandType.PTZ_CMD_DOWN: ptzControl = eLTEPTZControlCode.TILT_DOWN; break; case PtzCommandType.PTZ_CMD_FOCUS_IN: ptzControl = eLTEPTZControlCode.FOCUS_NEAR; break; case PtzCommandType.PTZ_CMD_FOCUS_OUT: ptzControl = eLTEPTZControlCode.FOCUS_FAR; break; case PtzCommandType.PTZ_CMD_IRIS_ENLARGE: ptzControl = eLTEPTZControlCode.IRIS_OPEN; break; case PtzCommandType.PTZ_CMD_IRIS_SHRINK: ptzControl = eLTEPTZControlCode.IRIS_CLOSE; break; case PtzCommandType.PTZ_CMD_LEFT: ptzControl = eLTEPTZControlCode.PAN_LEFT; break; case PtzCommandType.PTZ_CMD_RIGHT: ptzControl = eLTEPTZControlCode.PAN_RIGHT; break; case PtzCommandType.PTZ_CMD_UP: ptzControl = eLTEPTZControlCode.TILT_UP; break; case PtzCommandType.PTZ_CMD_ZOOM_IN: ptzControl = eLTEPTZControlCode.ZOOM_IN; break; case PtzCommandType.PTZ_CMD_ZOOM_OUT: ptzControl = eLTEPTZControlCode.ZOOM_OUT; break; } ELTE_RESULT result = (ELTE_RESULT)lteSdkClient.PTZControl(Convert.ToInt32(cameraNo), (uint)ptzControl, (uint)(param * iPTZScale));//eLTE云台速度慢,放大20倍 if (result != ELTE_RESULT.RET_SUCCESS) { err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED); logEx.Error("StartControlPtz failed.eLTE sdk error code:{0}", result); return err; } else { logEx.Debug("StartControlPtz Success"); } return err; }
/// <summary> /// 停止云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommand">命令类型</param> /// <returns></returns> 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; }
/// <summary> /// 停止云台控制,摄像头控制 /// </summary> /// <param name="cameraNo">摄像头编号</param> /// <param name="ptzCommand">命令类型</param> /// <returns></returns> public SmcError.SmcErr StopControlPtz(string cameraNo, PtzCommandType ptzCommandType) { NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log); logEx.Trace("Enter: eLTEVideoMonitor.StopControlPtz({0}).", cameraNo); SmcErr err = new CgwError(); ELTE_RESULT result = (ELTE_RESULT)lteSdkClient.PTZControl(Convert.ToInt32(cameraNo), (uint)eLTEPTZControlCode.STOP_SEQ, 1); if (result != ELTE_RESULT.RET_SUCCESS) { err.SetErrorNo(CgwError.START_CONTROL_PTZ_FAILED); logEx.Error("StopControlPtz failed.eLTE sdk error code:{0}", result); return err; } else { logEx.Debug("StopControlPtz Success"); } return err; }