Beispiel #1
0
        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);
                    }
                }
            }
        }
Beispiel #3
0
        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);
     }
 }
Beispiel #5
0
        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;
                }
            }
        }
Beispiel #10
0
        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);
                }
            }
        }
Beispiel #11
0
        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);
        }
Beispiel #12
0
        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");
                }
            }
        }
Beispiel #15
0
        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);
                }
            }
        }
Beispiel #17
0
        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;
        }