private void tabControlConfigs_Selected(object sender, TabControlEventArgs e) { uint nConfig = 0; TreeNode node = (TreeNode)comboBoxDevice.SelectedItem; if (node.Tag != null) { DEV_INFO devInfo = (DEV_INFO)node.Tag; int nLoginID = devInfo.lLoginID; int nChannel = -1; TabPage tab = tabControlConfigs.SelectedTab; if (tab.Name == "tabPageGeneral") { nConfig = (uint)SDK_CONFIG_TYPE.E_SDK_CONFIG_SYSNORMAL; } else if (tab.Name == "tabPageWifi") { nConfig = (uint)SDK_CONFIG_TYPE.E_SDK_CONFIG_NET_WIFI; UpdateConfig(nLoginID, nChannel, (uint)SDK_CONFIG_TYPE.E_SDK_CONFIG_NET_DHCP); } if (nConfig != 0) { UpdateConfig(nLoginID, nChannel, nConfig); } } }
bool StartTalk(ref DEV_INFO pDevice) { IntPtr pdev = new IntPtr(); Marshal.StructureToPtr(pDevice, pdev, false); unsafe { if (pdev.ToPointer() == null) { return(false); } if (m_lTalkHandle.ToPointer() == null) { return(false); } else { m_lTalkHandle = (IntPtr)XMSDK.H264_DVR_StartLocalVoiceCom(pDevice.lLoginID); if (m_lTalkHandle != (IntPtr)null) { return(true); } else { m_lTalkHandle = (IntPtr)null;; return(false); } } } }
private void comboBoxDevice_SelectedIndexChanged(object sender, EventArgs e) { TreeNode node = (TreeNode)comboBoxDevice.SelectedItem; if (node.Tag != null) { DEV_INFO devInfo = (DEV_INFO)node.Tag; int nLoginID = devInfo.lLoginID; ///获取系统能力集 int nChannel = -1; TabPage tab = tabControlConfigs.SelectedTab; uint nConfig = 0; if (tab.Name == "tabPageGeneral") { nConfig = (uint)SDK_CONFIG_TYPE.E_SDK_CONFIG_SYSNORMAL; } if (nConfig != 0) { UpdateConfig(nLoginID, nChannel, nConfig); } } }
bool StopTalk(ref DEV_INFO pDevice) { unsafe { if (m_lTalkHandle.ToPointer() != null) { XMSDK.H264_DVR_StopVoiceCom(m_lTalkHandle.ToInt32()); m_lTalkHandle = (IntPtr)null; return(true); } return(false); } }
private void buttonSearchWifi_Click(object sender, EventArgs e) { TreeNode node = (TreeNode)comboBoxDevice.SelectedItem; if (node.Tag != null) { DEV_INFO devInfo = (DEV_INFO)node.Tag; int nLoginID = devInfo.lLoginID; int nChannel = -1; UpdateConfig(nLoginID, nChannel, (uint)SDK_CONFIG_TYPE.E_SDK_CONFIG_NET_WIFI_AP_LIST); } }
private void comboDev_SelectedIndexChanged(object sender, EventArgs e) { DEV_INFO devInfo = new DEV_INFO(); ComboxItem selecteditem = (ComboxItem)comboDev.SelectedItem; devInfo = (DEV_INFO)selecteditem.Value; for (int i = 0; i < devInfo.NetDeviceInfo.byChanNum + devInfo.NetDeviceInfo.iDigChannel; i++) { comboChannel.Items.Add(i + 1); } comboChannel.SelectedIndex = 0; m_lLoginID = devInfo.lLoginID; }
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); }
private void OpenChanel(int indexWind, int chanelID, int stream) { Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss - ") + TAG + ".OpenChanel(" + indexWind.ToString() + "," + chanelID + ")", "DVR INFO"); TreeNode nodeDev = devForm.DevTree.Nodes[0]; DEV_INFO devinfo = (DEV_INFO)nodeDev.Tag; CHANNEL_INFO chanInfo = (CHANNEL_INFO)nodeDev.Nodes[chanelID].Tag; int iRealHandle = m_videoform[indexWind].ConnectRealPlay(ref devinfo, chanInfo.nChannelNo, stream); if (iRealHandle > 0) { chanInfo.nWndIndex = indexWind; nodeDev.Nodes[chanelID].Tag = chanInfo; chanelOpened++; isConnected = true; } }
private void DevTree_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Node.Name == "Channel") { DVR2Mjpeg DVR2Mjpeg = (DVR2Mjpeg)Parent; TreeNode nodeDev = e.Node.Parent; DEV_INFO devinfo = (DEV_INFO)nodeDev.Tag; CHANNEL_INFO chanInfo = (CHANNEL_INFO)e.Node.Tag; int iRealHandle = ((DVR2Mjpeg)Parent).m_videoform[((DVR2Mjpeg)Parent).m_nCurIndex].ConnectRealPlay(ref devinfo, chanInfo.nChannelNo); if (iRealHandle > 0) { CHANNEL_INFO chInfo = (CHANNEL_INFO)e.Node.Tag; chInfo.nWndIndex = ((DVR2Mjpeg)this.Parent).m_nCurIndex; e.Node.Tag = chInfo; DVR2Mjpeg.isConnected = true; } } }
private void buttonWifiOK_Click(object sender, EventArgs e) { TreeNode node = (TreeNode)comboBoxDevice.SelectedItem; if (node.Tag != null) { DEV_INFO devInfo = (DEV_INFO)node.Tag; int nLoginID = devInfo.lLoginID; int nChannel = -1; TabPage tab = tabControlConfigs.SelectedTab; uint nConfig = 0; if (tab.Name == "tabPageWifi") { nConfig = (uint)SDK_CONFIG_TYPE.E_SDK_CONFIG_NET_WIFI; SaveConfig(nLoginID, nChannel, (uint)SDK_CONFIG_TYPE.E_SDK_CONFIG_NET_DHCP); } if (nConfig != 0) { SaveConfig(nLoginID, nChannel, nConfig); } } }
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 buttonOK_Click(object sender, EventArgs e) { if (textBoxDevName.Text.Trim() != "" && textBoxIP.Text.Trim() != "" && textBoxport.Text.Trim() != "" && textBoxUsername.Text.Trim() != "") { H264_DVR_DEVICEINFO dvrdevInfo = new H264_DVR_DEVICEINFO(); int nError; int nLoginID = XMSDK.H264_DVR_Login(textBoxIP.Text.Trim(), ushort.Parse(textBoxport.Text.Trim()), textBoxUsername.Text, textBoxPassword.Text, out dvrdevInfo, out nError, SocketStyle.TCPSOCKET); DEV_INFO devInfo = new DEV_INFO(); if (nLoginID > 0) { DVR2Mjpeg clientForm = new DVR2Mjpeg(); foreach (Form form in Application.OpenForms) { if (form.Name == "DVR2Mjpeg") { clientForm = (DVR2Mjpeg)form; break; } } TreeNode nodeDev = new TreeNode(); nodeDev.Text = textBoxDevName.Text; devInfo.szDevName = textBoxDevName.Text; devInfo.lLoginID = nLoginID; devInfo.nPort = Int32.Parse(textBoxport.Text.Trim()); devInfo.szIpaddress = textBoxIP.Text.Trim(); devInfo.szUserName = textBoxUsername.Text; devInfo.szPsw = textBoxPassword.Text; devInfo.NetDeviceInfo = dvrdevInfo; nodeDev.Tag = devInfo; nodeDev.Name = "Device"; for (int i = 0; i < devInfo.NetDeviceInfo.byChanNum + devInfo.NetDeviceInfo.iDigChannel; i++) { TreeNode nodeChannel = new TreeNode(string.Format("CAM{0}", i)); nodeChannel.Name = "Channel"; CHANNEL_INFO ChannelInfo = new CHANNEL_INFO(); ChannelInfo.nChannelNo = i; ChannelInfo.nWndIndex = -1; nodeChannel.Tag = ChannelInfo; nodeDev.Nodes.Add(nodeChannel); } clientForm.devForm.DevTree.Nodes.Add(nodeDev); DVR2Mjpeg.dictDevInfo.Add(devInfo.lLoginID, devInfo); this.Close(); } else { string strErr; switch (nError) { case -11301: strErr = string.Format("Passwd is Error"); break; case -11300: strErr = string.Format("The user has no permissions"); break; case -11302: strErr = string.Format("The user does not exist"); break; case -11303: strErr = string.Format("The user is locked"); break; case -11304: strErr = string.Format("The user is in the blacklist"); break; case -11305: strErr = string.Format("The user has landed"); break; case -11307: strErr = string.Format("There is no equipment"); break; default: { strErr = string.Format("Login Error:{0}", nError); } break; } MessageBox.Show(strErr); } } else { MessageBox.Show("Please input all data!"); } }
/*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(); } }
private void btnSearch_Click(object sender, EventArgs e) { m_nGetPage = 0; m_nCurPage = 0; m_nTotalPage = 0; // 条件检测 if (comboDev.SelectedIndex < 0) { MessageBox.Show("Select a Device!"); return; } if (!checkFile.Checked && !checkTime.Checked) { MessageBox.Show("Select a Search mode!"); return; } ClearResult(); H264_DVR_TIME StartTime; H264_DVR_TIME StopTime; int nChannel = comboChannel.SelectedIndex; //channel No. int nFileType = comboRecordType.SelectedIndex; //file type if (nFileType >= 5) { nFileType += 5; } StartTime.dwYear = beginDate.Value.Year; StartTime.dwMonth = beginDate.Value.Month; StartTime.dwDay = beginDate.Value.Day; StartTime.dwHour = beginTime.Value.Hour; StartTime.dwMinute = beginTime.Value.Minute; StartTime.dwSecond = beginTime.Value.Second; StopTime.dwYear = endDate.Value.Year; StopTime.dwMonth = endDate.Value.Month; StopTime.dwDay = endDate.Value.Day; StopTime.dwHour = endDate.Value.Hour; StopTime.dwMinute = endDate.Value.Minute; StopTime.dwSecond = endDate.Value.Second; H264_DVR_FILE_DATA[] szSend = new H264_DVR_FILE_DATA[64]; ComboxItem item = (ComboxItem)comboDev.SelectedItem; if (item.Value != null) { DEV_INFO devInfo = (DEV_INFO)item.Value; int lLoginID = devInfo.lLoginID; int nMaxLen = 100; int waitTime = 4000; int nNum = 0; H264_DVR_FINDINFO searchInfo = new H264_DVR_FINDINFO(); searchInfo.startTime = StartTime; searchInfo.endTime = StopTime; searchInfo.nChannelN0 = nChannel; searchInfo.nFileType = nFileType; IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(H264_DVR_FILE_DATA)) * 100); int nRet = XMSDK.H264_DVR_FindFile(lLoginID, ref searchInfo, ptr, nMaxLen, out nNum, waitTime); m_nCurRecNum = nNum; for (int index = 0; index < nNum; index++) { unsafe { int *pDev = (int *)ptr.ToPointer(); pDev += Marshal.SizeOf(typeof(H264_DVR_FILE_DATA)) * index / 4; IntPtr ptrTemp = new IntPtr(pDev); szSend[index] = (H264_DVR_FILE_DATA)Marshal.PtrToStructure(ptrTemp, typeof(H264_DVR_FILE_DATA)); // m_listFile[index] = szSend[index]; } } m_listFile.Clear(); if (nRet > 0) { if (nNum > 0) { if (m_nCurRecNum > m_listFile.Capacity) { m_listFile.Capacity = m_nCurRecNum; } for (int i = 0; i < m_nCurRecNum; i++) { m_listFile.Add(szSend[i]); } m_nSearchInfo[m_nCurPage] = searchInfo; m_nCurPage = 1; m_nSearchInfo[m_nCurPage].nChannelN0 = nChannel; m_nSearchInfo[m_nCurPage].nFileType = nFileType; m_nSearchInfo[m_nCurPage].startTime.dwYear = szSend[m_nCurRecNum - 1].stEndTime.year; m_nSearchInfo[m_nCurPage].startTime.dwMonth = szSend[m_nCurRecNum - 1].stEndTime.month; m_nSearchInfo[m_nCurPage].startTime.dwDay = szSend[m_nCurRecNum - 1].stEndTime.day; m_nSearchInfo[m_nCurPage].startTime.dwHour = szSend[m_nCurRecNum - 1].stEndTime.hour; m_nSearchInfo[m_nCurPage].startTime.dwMinute = szSend[m_nCurRecNum - 1].stEndTime.minute; m_nSearchInfo[m_nCurPage].startTime.dwSecond = szSend[m_nCurRecNum - 1].stEndTime.second; m_nSearchInfo[m_nCurPage].endTime = searchInfo.endTime; m_nGetPage++; if (nNum < PLAYBACK_MAX_FILE_NUM) { m_nTotalPage = m_nGetPage; } AddFileListInfo(m_nCurRecNum);//add list item SetPageBtnState(nNum); } else { MessageBox.Show("No File"); } } else { MessageBox.Show("SearchFail"); } } }
public DEV_INFO ReadXML() { XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; XmlReader xml = XmlReader.Create(".\\UserInfo.xml", settings); DEV_INFO devInfo = new DEV_INFO(); while (xml.ReadToFollowing("ip")) { //read the information from XML string strIP = "", strUserName = "", strPsw = "", strDevName = ""; uint nPort = 0; int byChanNum = 0, lID = 0; uint bSerialID = 0, nSerPort = 0; string szSerIP = "", szSerialInfo = ""; xml = xml.ReadSubtree(); while (xml.Read()) { if (xml.NodeType == XmlNodeType.Element) { if (xml.Name == "ip") { continue; } string name = xml.Name; xml.Read(); string value = xml.Value; switch (name) { case "ip2": strIP = value; break; case "DEVICENAME": strDevName = value; break; case "username": strUserName = value; break; case "port": nPort = Convert.ToUInt32(value); break; case "pwd": strPsw = value; break; case "byChanNum": byChanNum = Convert.ToInt32(value); break; case "lID": lID = Convert.ToInt32(value); break; case "bSerialID": bSerialID = Convert.ToUInt32(value); break; case "szSerIP": szSerIP = value; break; case "nSerPort": nSerPort = Convert.ToUInt32(value); break; case "szSerialInfo": szSerialInfo = value; break; } } } H264_DVR_DEVICEINFO dvrdevInfo = new H264_DVR_DEVICEINFO(); int nError; int nLoginID = XMSDK.H264_DVR_Login(strIP.Trim(), ushort.Parse(nPort.ToString().Trim()), strUserName, strPsw, out dvrdevInfo, out nError, SocketStyle.TCPSOCKET); TreeNode nodeDev = new TreeNode(); nodeDev.Text = strDevName; devInfo.szDevName = strDevName; devInfo.lLoginID = nLoginID; devInfo.nPort = Convert.ToInt32(nPort); devInfo.szIpaddress = strIP.Trim(); devInfo.szUserName = strUserName; devInfo.szPsw = strPsw; devInfo.NetDeviceInfo = dvrdevInfo; nodeDev.Tag = devInfo; nodeDev.Name = "Device"; for (int i = 0; i < devInfo.NetDeviceInfo.byChanNum + devInfo.NetDeviceInfo.iDigChannel; i++) { TreeNode nodeChannel = new TreeNode(string.Format("CAM{0}", i)); nodeChannel.Name = "Channel"; CHANNEL_INFO ChannelInfo = new CHANNEL_INFO(); ChannelInfo.nChannelNo = i; ChannelInfo.nWndIndex = -1; nodeChannel.Tag = ChannelInfo; nodeDev.Nodes.Add(nodeChannel); } DevTree.Nodes.Add(nodeDev); DVR2Mjpeg.dictDevInfo.Add(devInfo.lLoginID, devInfo); } return(devInfo); }
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); } } }
private void SearchDevice() { int nRetLength = 0; IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SDK_CONFIG_NET_COMMON_V2)) * 1000); int bRet = H264_DVR_SearchDevice(ptr, Marshal.SizeOf(typeof(SDK_CONFIG_NET_COMMON_V2)) * 1000, ref nRetLength, 5000); for (int index = 0; index < 1000; index++) { unsafe { int *pDev = (int *)ptr.ToPointer(); pDev += Marshal.SizeOf(typeof(SDK_CONFIG_NET_COMMON_V2)) * index / 4; IntPtr ptrTemp = new IntPtr(pDev); m_Device[index] = (SDK_CONFIG_NET_COMMON_V2)Marshal.PtrToStructure(ptrTemp, typeof(SDK_CONFIG_NET_COMMON_V2)); } } if (bRet > 0 && nRetLength > 0) { m_nDevNum = nRetLength / Marshal.SizeOf(m_Device[0]); } searchThread.Interrupt(); buttonSearch.Enabled = true; this.Cursor = Cursors.Default; int count = listViewDevSearched.Items.Count; int i = 0; for (i = 0; i < count; i++) { string strIp; string strIp2; int nPort; int nPort2; strIp = string.Format("{0}.{1}.{2}.{3}", m_Device[i].HostIP.c[0], m_Device[i].HostIP.c[1], m_Device[i].HostIP.c[2], m_Device[i].HostIP.c[3]); nPort = m_Device[i].TCPPort; for (int j = i + 1; j < count; j++) { strIp2 = string.Format("{0}.{1}.{2}.{3}", m_Device[j].HostIP.c[0], m_Device[j].HostIP.c[1], m_Device[j].HostIP.c[2], m_Device[j].HostIP.c[3]); nPort2 = m_Device[j].TCPPort; if (strIp2 == strIp && nPort2 == nPort) { } } } int nIndex = 0; for (i = 0; i < m_nDevNum; i++) { int l = (m_Device[i].HostIP.c[0] << 3) | m_Device[i].HostIP.c[1] << 2 | m_Device[i].HostIP.c[2] << 1 | m_Device[i].HostIP.c[3]; if (m_Device[i].TCPPort == 0 || l == 0) { continue; } //Edit Device Information DEV_INFO pData = new DEV_INFO(); pData.nPort = m_Device[i].TCPPort; pData.szIpaddress = String.Format("{0}.{1}.{2}.{3}", m_Device[i].HostIP.c[0], m_Device[i].HostIP.c[1], m_Device[i].HostIP.c[2], m_Device[i].HostIP.c[3]); pData.szUserName = "******"; pData.szPsw = ""; pData.NetComm = m_Device[i]; //过滤已经存在的IP和mac相同的设备 int nFlag = 1; foreach (KeyValuePair <int, DEV_INFO> a in dict) { if ((a.Value.NetComm.HostIP.c[0] == m_Device[i].HostIP.c[0]) && (a.Value.NetComm.HostIP.c[1] == m_Device[i].HostIP.c[1]) && (a.Value.NetComm.HostIP.c[2] == m_Device[i].HostIP.c[2]) && (a.Value.NetComm.HostIP.c[3] == m_Device[i].HostIP.c[3]) && (a.Value.NetComm.sMac == m_Device[i].sMac)) { nFlag = 0; //存在相同的IP或者Mac break; } } if (nFlag == 0) { continue; } else { ListViewItem item = new ListViewItem(); ListViewItem.ListViewSubItem subitem0 = new ListViewItem.ListViewSubItem(); ListViewItem.ListViewSubItem subitem1 = new ListViewItem.ListViewSubItem(); ListViewItem.ListViewSubItem subitem2 = new ListViewItem.ListViewSubItem(); subitem0.Text = string.Format("{0}", count + nIndex + 1); subitem0.Name = "NO"; subitem1.Text = string.Format("{0}.{1}.{2}.{3}", m_Device[i].HostIP.c[0], m_Device[i].HostIP.c[1], m_Device[i].HostIP.c[2], m_Device[i].HostIP.c[3]); subitem1.Name = "IP"; subitem2.Text = string.Format("{0}", m_Device[i].TCPPort); subitem2.Name = "Port"; item.SubItems.Insert(0, subitem0); item.SubItems.Insert(1, subitem1); item.SubItems.Insert(2, subitem2); pData.nListNum = count + nIndex; item.Tag = pData; listViewDevSearched.Items.Insert(count + nIndex, item); dict.Add(nIndex, pData); nIndex++; } } Capture = false; }