int DevLogin(ref DEV_INFO pdev) { if (Convert.ToBoolean(pdev.bSerialID)) { int maxDeviceNum = 100; DDNS_INFO[] pDDNSInfo = new DDNS_INFO[maxDeviceNum]; SearchMode searchmode; int nReNum = 0; searchmode.nType = (int)SearchModeType.DDNS_SERIAL; searchmode.szSerIP = pdev.szSerIP; searchmode.nSerPort = pdev.nSerPort; searchmode.szSerialInfo = pdev.szSerialInfo; bool bret = Convert.ToBoolean(XMSDK.H264_DVR_GetDDNSInfo(ref searchmode, out pDDNSInfo, maxDeviceNum, out nReNum)); if (!bret) { return(0); } pdev.szIpaddress = pDDNSInfo[0].IP; pdev.nPort = pDDNSInfo[0].MediaPort; } H264_DVR_DEVICEINFO OutDev; int nError = 0; XMSDK.H264_DVR_SetConnectTime(3000, 1); int lLogin = XMSDK.H264_DVR_Login(pdev.szIpaddress, Convert.ToUInt16(pdev.nPort), pdev.szUserName, pdev.szPsw, out OutDev, out nError, SocketStyle.TCPSOCKET); if (lLogin <= 0) { int nErr = XMSDK.H264_DVR_GetLastError(); if (nErr == (int)SDK_RET_CODE.H264_DVR_PASSWORD_NOT_VALID) { MessageBox.Show("Error.PwdErr"); } else { MessageBox.Show("Error.NotFound"); } return(lLogin); } XMSDK.H264_DVR_SetupAlarmChan(lLogin); return(lLogin); }
public int ConnectRealPlay(ref DEV_INFO pDev, int nChannel, int nStream = 1) { Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss - ") + TAG + ".ConnectRealPlay(" + pDev.szDevName + "," + nChannel.ToString() + ")", "DVR INFO"); if (m_iPlayhandle != -1) { if (0 != XMSDK.H264_DVR_StopRealPlay(m_iPlayhandle, (uint)panelVideo.Handle)) { //TODO: «десь необходимо доработать } if (m_bSound) { OnCloseSound(); } } H264_DVR_CLIENTINFO playstru = new H264_DVR_CLIENTINFO(); playstru.nChannel = nChannel; playstru.nStream = nStream; playstru.nMode = 0; playstru.hWnd = panelVideo.Handle; m_iPlayhandle = XMSDK.H264_DVR_RealPlay(pDev.lLoginID, ref playstru); if (m_iPlayhandle <= 0) { Int32 dwErr = XMSDK.H264_DVR_GetLastError(); } else { XMSDK.H264_DVR_MakeKeyFrame(pDev.lLoginID, nChannel, 0); realDataCallBack_V2 = new XMSDK.fRealDataCallBack_V2(DataCallBack_V2); XMSDK.H264_DVR_SetRealDataCallBack_V2(m_iPlayhandle, realDataCallBack_V2, Handle.ToInt32()); } m_lLogin = pDev.lLoginID; m_iChannel = nChannel; return(m_iPlayhandle); }
private void DownloadByTime() { if (m_DownLoadFileHandle > 0) { timerDownload.Stop(); XMSDK.H264_DVR_StopGetFile(m_DownLoadFileHandle); m_DownLoadFileHandle = 0; progressBarDownloadPos.Value = 0; btnDownload.Text = "Download"; return; } string strSaveName = ""; //strSaveName.Format("c:\\record"); strSaveName = BrowseForFolder(this.Handle); if (strSaveName == "") //未选择路径时退出 { return; } H264_DVR_FINDINFO info = new H264_DVR_FINDINFO(); info.nChannelN0 = comboChannel.SelectedIndex; //channel No. info.nFileType = comboRecordType.SelectedIndex; //file type info.startTime.dwYear = beginDate.Value.Year; info.startTime.dwMonth = beginDate.Value.Month; info.startTime.dwDay = beginDate.Value.Day; info.startTime.dwHour = beginTime.Value.Hour; info.startTime.dwMinute = beginTime.Value.Minute; info.startTime.dwSecond = beginTime.Value.Second; info.endTime.dwYear = endDate.Value.Year; info.endTime.dwMonth = endDate.Value.Month; info.endTime.dwDay = endDate.Value.Day; info.endTime.dwHour = endTime.Value.Hour; info.endTime.dwMinute = endTime.Value.Minute; info.endTime.dwSecond = endTime.Value.Second; int nRecordFileType = comboRecordType.SelectedIndex; info.nFileType = (nRecordFileType <= (int)PlayBackFileType.SDK_RECORD_MANUAL) ? nRecordFileType : ((int)PlayBackFileType.SDK_PIC_ALL + nRecordFileType - (int)PlayBackFileType.SDK_RECORD_MANUAL - 1); m_DownLoadFileHandle = XMSDK.H264_DVR_GetFileByTime(m_lLoginID, ref info, strSaveName, false, null, 0, null); if (m_DownLoadFileHandle > 0) { progressBarDownloadPos.Value = 0; btnDownload.Text = "Stop"; //update the progress control timerDownload.Start(); } else { string sTemp; sTemp = string.Format("dowload fail ERROR = {0}", XMSDK.H264_DVR_GetLastError()); MessageBox.Show(sTemp); } }
private void DownloadByName() { if (m_DownLoadFileHandle > 0) { timerDownload.Stop(); XMSDK.H264_DVR_StopGetFile(m_DownLoadFileHandle); m_DownLoadFileHandle = 0; progressBarDownloadPos.Value = 0; btnDownload.Text = "Download"; return; } string csFileName; //inCount; //if ( nSelected < 0 ) //{ // MessageBox.Show("SelectFile !"); // return; //} H264_DVR_FILE_DATA FileInfo = (H264_DVR_FILE_DATA)listFile.FocusedItem.Tag; string strSaveName; //strSaveName.Format("c:\\record\\record.h264"); int nSelectedIndex = comboDev.SelectedIndex; if (nSelectedIndex < 0) { MessageBox.Show("SelectDevice !"); return; } DEV_INFO DevTemp = (DEV_INFO)((ComboxItem)comboDev.SelectedItem).Value; string strInitDir; strInitDir = Application.StartupPath; if (strInitDir.EndsWith("\\")) { strInitDir += "Download"; } else { strInitDir += "\\Download"; } DirectoryInfo dir = new DirectoryInfo(strInitDir); //if ( dir.Attributes ) { dir.Create(); } string strFileTpye = "h264"; string strFileName = FileInfo.sFileName; if (strFileName.EndsWith(".h264")) { strFileTpye = "h264"; } else { strFileTpye = "jpg"; } strFileName = string.Format("{0}_{1}_{2}-{3}_{4}{5}{6}{7}.{8}", DevTemp.szDevName, FileInfo.ch + 1, FileInfo.stBeginTime.year, FileInfo.stBeginTime.month, FileInfo.stBeginTime.day, FileInfo.stBeginTime.hour, FileInfo.stBeginTime.minute, FileInfo.stBeginTime.second, strFileTpye); SaveFileDialog dlg = new SaveFileDialog(); dlg.AddExtension = true; dlg.CheckPathExists = true; dlg.DefaultExt = ".h264"; dlg.Filter = "All File(*.h264;*.jpg)|*.*||"; dlg.InitialDirectory = strInitDir; //默认路径 dlg.FileName = strFileName; int count = listFile.SelectedItems[0].Index; if (dlg.ShowDialog() == DialogResult.OK) { strSaveName = dlg.FileName; //m_lSaveHandle = H264_DVR_GetFileByName(m_lLoginID, pstrFileInfo,strSaveName.GetBuffer(0),SDKDownLoadPosCallback,(DWORD)this); m_DownLoadFileHandle = XMSDK.H264_DVR_GetFileByName(m_lLoginID, ref FileInfo, strSaveName, null, 0, null); if (m_DownLoadFileHandle >= 0) { progressBarDownloadPos.Value = 0; btnDownload.Text = "Stop"; //update the progress control //SetTimer(1,0,NULL); } else { string sTemp = string.Format("dowload fail ERROR = {0}", XMSDK.H264_DVR_GetLastError()); MessageBox.Show(sTemp); } } }
/*public int Connect(ref DEV_INFO pDev, int nChannel, int nWndIndex) * { * Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss - ") + TAG + ".Connect(" + pDev.szDevName + "," + nChannel.ToString() + "," + nWndIndex.ToString() + ")", "DVR INFO"); * * int nRet = 0; * * //if device did not login,login first * if (pDev.lLoginID <= 0) * { * H264_DVR_DEVICEINFO OutDev; * int nError = 0; * int lLogin = XMSDK.H264_DVR_Login(pDev.szIpaddress, (ushort)pDev.nPort, pDev.szUserName, pDev.szPsw, out OutDev, out nError, SocketStyle.TCPSOCKET); * if (lLogin <= 0) * { * int nErr = XMSDK.H264_DVR_GetLastError(); * if (nErr == (int)SDK_RET_CODE.H264_DVR_PASSWORD_NOT_VALID) * { * MessageBox.Show(("Error.PwdErr")); * } * else * { * MessageBox.Show(("Error.NotFound")); * } * * return nRet; * } * * pDev.lLoginID = lLogin; * XMSDK.H264_DVR_SetupAlarmChan(lLogin); * } * * //isConnected = true; * * int nWnd = m_nCurIndex; * if (nWndIndex >= 0) * { * nWnd = nWndIndex; * } * * if (nWnd >= m_nTotalWnd) * { * return nRet; * } * * return m_videoform[nWnd].ConnectRealPlay(ref pDev, nChannel); * }*/ /*public void SetColor(uint nBright, uint nContrast, uint nSaturation, uint nHue) * { * IntPtr lPlayHandle = m_videoform[m_nCurIndex].Handle; * unsafe * { * if (lPlayHandle.ToPointer() == null) * { * return; * } * } * * m_videoform[m_nCurIndex].SetColor((int)nBright, (int)nContrast, (int)nSaturation, (int)nHue); * SetDevChnColor(nBright, nContrast, nSaturation, nHue); * }*/ /*public void PtzControl(uint dwBtn, bool dwStop) * { * long lPlayHandle = m_videoform[m_nCurIndex].GetHandle(); * if (lPlayHandle <= 0) * { * return; * } * }*/ /*public void KeyBoardMsg(uint dwValue, uint dwState) * { * IntPtr lPlayHandle = m_videoform[m_nCurIndex].Handle; * unsafe * { * if (lPlayHandle.ToPointer() == null) * { * return; * } * } * * SDK_NetKeyBoardData vKeyBoardData; * vKeyBoardData.iValue = (int)dwValue; * vKeyBoardData.iState = (int)dwState; * m_nCurIndex = m_nCurIndex < 0 ? 0 : m_nCurIndex; * if (!XMSDK.H264_DVR_ClickKey(m_videoform[m_nCurIndex].m_lLogin, ref vKeyBoardData)) * MessageBox.Show("AccountMSG.Failed"); * }*/ /*public void NetAlarmMsg(uint dwValue, uint dwState) * { * if (m_devInfo.lLoginID > 0) * { * SDK_NetAlarmInfo vAlarmInfo; * vAlarmInfo.iEvent = 0; * vAlarmInfo.iState = (int)(dwState << (int)dwValue); * m_nCurIndex = m_nCurIndex < 0 ? 0 : m_nCurIndex; * if (!XMSDK.H264_DVR_SendNetAlarmMsg(m_devInfo.lLoginID, ref vAlarmInfo)) * MessageBox.Show("AccountMSG.Failed"); * } * }*/ /*public void SetDevInfo(ref DEV_INFO pDev) * { * m_devInfo = pDev; * }*/ public void ReConnect(object source, ElapsedEventArgs e) { Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss - ") + TAG + ".ReConnect(source,e)", "DVR INFO"); Dictionary <int, DEV_INFO> dictDiscontDevCopy = new Dictionary <int, DEV_INFO>(dictDiscontDev); foreach (DEV_INFO devinfo in dictDiscontDevCopy.Values) { H264_DVR_DEVICEINFO OutDev = new H264_DVR_DEVICEINFO(); int nError = 0; int lLogin = XMSDK.H264_DVR_Login(devinfo.szIpaddress, (ushort)devinfo.nPort, devinfo.szUserName, devinfo.szPsw, out OutDev, out nError, SocketStyle.TCPSOCKET); if (lLogin <= 0) { int nErr = XMSDK.H264_DVR_GetLastError(); if (nErr == (int)SDK_RET_CODE.H264_DVR_PASSWORD_NOT_VALID) { MessageBox.Show(("Password Error")); } else if (nErr == (int)SDK_RET_CODE.H264_DVR_LOGIN_USER_NOEXIST) { MessageBox.Show(("User Not Exist")); } return; } dictDiscontDev.Remove(devinfo.lLoginID); DVR2Mjpeg clientForm = new DVR2Mjpeg(true); foreach (Form form in Application.OpenForms) { if (form.Name == "DVR2Mjpeg") { clientForm = (DVR2Mjpeg)form; break; } } DEV_INFO devAdd = new DEV_INFO(); devAdd = devinfo; devAdd.lLoginID = lLogin; foreach (TreeNode node in clientForm.devForm.DevTree.Nodes) { if (node.Name == "Device") { DEV_INFO dev = (DEV_INFO)node.Tag; if (dev.lLoginID == devinfo.lLoginID) { if (this.InvokeRequired) { this.BeginInvoke((MethodInvoker)(() => { node.Text = devAdd.szDevName; node.Tag = devAdd; node.Name = "Device"; })); } else { node.Text = devAdd.szDevName; node.Tag = devAdd; node.Name = "Device"; } foreach (TreeNode channelnode in node.Nodes) { CHANNEL_INFO chInfo = (CHANNEL_INFO)channelnode.Tag; if (chInfo.nWndIndex > -1) { if (InvokeRequired) { BeginInvoke((MethodInvoker)(() => { int iRealHandle = clientForm.m_videoform[chInfo.nWndIndex].ConnectRealPlay(ref devAdd, chInfo.nChannelNo); if (iRealHandle > 0) { isConnected = true; chanelOpened++; } })); } else { int iRealHandle = clientForm.m_videoform[chInfo.nWndIndex].ConnectRealPlay(ref devAdd, chInfo.nChannelNo); if (iRealHandle > 0) { isConnected = true; chanelOpened++; } } Thread.Sleep(100); } } break; } } } dictDevInfo.Add(lLogin, devAdd); XMSDK.H264_DVR_SetupAlarmChan(lLogin); } if (0 == dictDiscontDev.Count) { timerDisconnect.Enabled = false; timerDisconnect.Stop(); } }