// 抓图点击时 开始抓图 private void cmsZT_Click(object sender, EventArgs e) { PictureBox pic = (PictureBox)(cms.SourceControl); int index = int.Parse(pic.Name); if (m_lRealHandle[index] >= 0) // 抓图 { string path = ClassXml.getSetXml("capture"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } //图片名称 年月日 时分秒 string sBmpPicFileName = System.DateTime.Now.ToString("yyMMddhhmmss"); sBmpPicFileName = path + "\\" + sBmpPicFileName + ".bmp"; //BMP抓图 Capture a BMP picture if (!CHCNetSDK.NET_DVR_CapturePicture(m_lRealHandle[index], sBmpPicFileName)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); toolStripStatusLabel6.Text = "抓图失败,错误代码" + iLastErr.ToString(); } else { toolStripStatusLabel6.Text = "抓图成功,保存文件名为" + sBmpPicFileName; } } }
private FormRecord[] recordFrm = new FormRecord[9]; //9 个录像界面 // 录像点击时 开始录像 private void cmsLX_Click(object sender, EventArgs e) { PictureBox pic = (PictureBox)(cms.SourceControl); int index = int.Parse(pic.Name); if (index == 0) { threadRunning = false; // 线程空运行 只对第一个通道做处理 } if (m_lRealHandle[index] >= 0) // 如果在预览 { string path = ClassXml.getSetXml("record"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } //图片名称 年月日 时分秒 string FileName = System.DateTime.Now.ToString("yyMMddhhmmss"); FileName = path + "\\" + FileName + ".mp4"; //mp4录像 if (m_bRecord[index] == false) //开始录像 { //强制I帧 Make one key frame int lChannel = iChannelNum[index]; //通道号 Channel number CHCNetSDK.NET_DVR_MakeKeyFrame(m_lUserID, lChannel); //开始录像 Start recording if (!CHCNetSDK.NET_DVR_SaveRealData(m_lRealHandle[index], FileName)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); toolStripStatusLabel6.Text = "录像失败,错误代码" + iLastErr.ToString(); return; } else { toolStripStatusLabel6.Text = "开始录像,保存文件名为" + FileName; m_bRecord[index] = true; recordFrm[index] = new FormRecord(); recordFrm[index].index = index; recordFrm[index].Owner = this; recordFrm[index].path = FileName; recordFrm[index].Show(); // 显示录像界面 } } else //打开录像界面 { if (recordFrm[index] != null) { recordFrm[index].WindowState = FormWindowState.Normal; } //停止录像 Stop recording /*CHCNetSDK.NET_DVR_StopSaveRealData(m_lRealHandle[index]); * m_bRecord[index] = false; */ } } }
// 开始录像 private void startRecord() { threadRunning = false; // 线程空运行 if (soundonoff) // 如果发出警报 { Beep(600, 1000); // 发出警告声音 } // 开始录像 if (m_lRealHandle[0] >= 0) // 如果在预览 { string path = ClassXml.getSetXml("record"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } //图片名称 年月日 时分秒 string FileName = System.DateTime.Now.ToString("yyMMddhhmmss"); FileName = path + "\\" + FileName + ".mp4"; //mp4录像 if (m_bRecord[0] == false) //开始录像 { //强制I帧 Make one key frame int lChannel = iChannelNum[0]; //通道号 Channel number CHCNetSDK.NET_DVR_MakeKeyFrame(m_lUserID, lChannel); //开始录像 Start recording if (!CHCNetSDK.NET_DVR_SaveRealData(m_lRealHandle[0], FileName)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); toolStripStatusLabel6.Text = "录像失败,错误代码" + iLastErr.ToString(); return; } else { toolStripStatusLabel6.Text = "开始录像,保存文件名为" + FileName; m_bRecord[0] = true; recordFrm[0] = new FormRecord(); recordFrm[0].index = 0; recordFrm[0].Owner = this; recordFrm[0].path = FileName; recordFrm[0].Show(); // 显示录像界面 } } else //打开录像界面 { if (recordFrm[0] != null) { recordFrm[0].WindowState = FormWindowState.Normal; } } } }
//刷新设备列表 private void devicelistREfresh() { closeDevice(); if (panelDeviceMana.Visible) // 设备管理 { listView1.Items.Clear(); string DVRIPAddress; //设备IP地址或者域名 Device IP Int16 DVRPortNumber; //设备服务端口号 Device Port string DVRUserName; //设备登录用户名 User name to login string DVRPassword; //设备登录密码 Password to login Int32 m_lUserID; string status = "", xuliehao = ""; string[] s; List <string[]> list = ClassXml.readXml(); for (int i = 0; i < list.Count; ++i) { s = list[i]; if (s.Length > 0) { DVRIPAddress = s[1]; //设备IP地址或者域名 Device IP DVRPortNumber = Int16.Parse(s[2]); //设备服务端口号 Device Port DVRUserName = s[3]; //设备登录用户名 User name to login DVRPassword = s[4]; //设备登录密码 Password to login //登录设备 Login the device m_lUserID = CHCNetSDK.NET_DVR_Login_V30(DVRIPAddress, DVRPortNumber, DVRUserName, DVRPassword, ref DeviceInfo); if (m_lUserID < 0) { status = "连接无效"; xuliehao = ""; } else { status = "连接有效"; xuliehao = System.Text.Encoding.Default.GetString(DeviceInfo.sSerialNumber); CHCNetSDK.NET_DVR_Logout(m_lUserID); // 关闭连接 } ListViewItem lvi = new ListViewItem(s[0]); lvi.SubItems.Add(s[1]); lvi.SubItems.Add(xuliehao); lvi.SubItems.Add(status); listView1.Items.Add(lvi); } } } else if (panelLiveView.Visible) { motiondetectonoff = false; soundonoff = false; if (ClassXml.getSetXml("motiondetect") == "是") { motiondetectonoff = true; } if (ClassXml.getSetXml("sound") == "是") { soundonoff = true; } treeView2.Nodes.Clear(); string[] s; List <string[]> list = ClassXml.readXml(); for (int i = 0; i < list.Count; ++i) { s = list[i]; if (s.Length > 0) { treeView2.Nodes.Add("监控点" + (i + 1).ToString() + "_" + s[0]); } } if (treeView2.Nodes.Count > 0) // 启动第一个设备 { treeView2.SelectedNode = treeView2.Nodes[0]; } } }