using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace Core.StlMes.Client.LgResMgt.Mcms
{
///
/// 海康摄像头截图
///
public class DhCameraShot
{
public DhCameraShot()
{
_dvr = new HkDvr();
}
private HkDvr _dvr;
bool ret = false;
public string ip { get; set; }
public string port { get; set; }
public string uid { get; set; }
public string pwd { get; set; }
///
/// 连接设备
///
/// IP地址
/// 端口
/// 用户名
/// 密码
public void Connection()
{
if (_dvr.UserId < 0)
{
//IP,PORT,UID,PWD
ret = _dvr.Init(ip + "," + port + "," + uid + "," + pwd);
ret = _dvr.Open();
}
}
private bool startTalk = false;
///
/// 打开对讲
///
///
//public bool StartTalk()
//{
// if (_dvr.UserId > -1 && !startTalk)
// {
// _dvr.StartTalk();
// startTalk = true;
// }
// return true;
//}
///
/// 关闭对讲
///
///
public bool StopTalk()
{
if (_dvr.UserId > -1 && startTalk)
{
// _dvr.StopTalk();
startTalk = false;
return true;
}
return true;
}
///
/// 关闭视频
///
public void Close()
{
if (_dvr.UserId > -1)
{
_dvr.Close();
}
}
public void RealPlay(PictureBox picture, int i)
{
if (_dvr.UserId > -1)
{
_dvr.RealPlay(i, picture.Handle);
}
}
public void StopRealPlay(int i)
{
if (_dvr.UserId > -1)
{
_dvr.StopRealPlay(i);
}
}
///
/// 截图
///
/// 文件存储位置及文件名称,文件名称应该是 计量作业编号_计量点_第几张 or 计量作业编号_第几张
/// 是否截图成功,true成功,false失败,异常的话会在logs中写入信息
//public bool CapPic(int channel, string filePath)
//{
// // return _dvr.CapturePicture((uint)channel, 1, filePath);//默认为一般摄像头
// //_dvr.CapturePicture(1, 1, filePath);
// //_dvr.CapturePicture(1, 2, filePath.Substring(0, filePath.Length - 5) + "2.jpg");
// //_dvr.CapturePicture(1, 3, filePath.Substring(0, filePath.Length - 5) + "3.jpg");
// //_dvr.CapturePicture(1, 4, filePath.Substring(0, filePath.Length - 5) + "4.jpg");
// //_dvr.CapturePicture(1, 5, filePath.Substring(0, filePath.Length - 5) + "5.jpg");
// //_dvr.CapturePicture(1, 6, filePath.Substring(0, filePath.Length - 5) + "6.jpg");
// //return true;
//}
public bool CapPicFromVedio(uint chanel, string filePath)
{
try
{
return _dvr.CapturePicture(chanel, filePath + chanel + ".jpg");
}
catch (Exception)
{
return false;
}
}
///
/// 硬盘录像机截图
///
///
///
Thread th;
public bool CapPicFromVedio(string filePath)
{
th = new Thread(new ParameterizedThreadStart(CapPicFromVed));
th.Start(filePath);
return true;
}
void CapPicFromVed(object filePath)
{
try
{
bool a1 = _dvr.CapturePicture(1, filePath + "1.jpg");
bool a2 = _dvr.CapturePicture(2, filePath + "2.jpg");
bool a3 = _dvr.CapturePicture(3, filePath + "3.jpg");
bool a4 = _dvr.CapturePicture(4, filePath + "4.jpg");
//bool a5 = _dvr.CapturePicture(5, filePath + "5.jpg");
//bool a6 = _dvr.CapturePicture(6, filePath + "6.jpg");
}
catch (Exception)
{
}
CHCNetSDK.NET_DVR_GetLastError();
}
public bool PlayMusic(string path )
{
return _dvr.G711VoiceCom(path);
// return _dvr.SendVoiceData(path);
}
}
}