示例#1
0
        private void Button2_Click(object sender, EventArgs e)
        {
            //Our Code
            NETDEV_DEVICE_INFO_S pstDevInfo = new NETDEV_DEVICE_INFO_S();

            lpDevHandle = NETDEVSDK.NETDEV_Login("192.168.1.20", 80, "admin", "123456", ref pstDevInfo);
            if (lpDevHandle == IntPtr.Zero)
            {
                MessageBox.Show("login Error");
                return;
            }

            NETDEV_PREVIEWINFO_S stPreviewInfo = new NETDEV_PREVIEWINFO_S();

            stPreviewInfo.dwChannelID  = 1;
            stPreviewInfo.dwLinkMode   = (int)NETDEV_PROTOCAL_E.NETDEV_TRANSPROTOCAL_RTPTCP;
            stPreviewInfo.dwStreamType = (int)NETDEV_LIVE_STREAM_INDEX_E.NETDEV_LIVE_STREAM_INDEX_MAIN;
            stPreviewInfo.hPlayWnd     = lpDevHandle;
            Handle = NETDEVSDK.NETDEV_RealPlay(lpDevHandle, ref stPreviewInfo, IntPtr.Zero, IntPtr.Zero);
            if (Handle == IntPtr.Zero)
            {
                MessageBox.Show("NNETDEV_RealPlay error");
                NETDEVSDK.NETDEV_StopRealPlay(lpDevHandle);
                NETDEVSDK.NETDEV_Logout(lpDevHandle);
                return;
            }
            MessageBox.Show("Connected");
        }
示例#2
0
        public void StartRealPlay(string cameraName)
        {
            var curRealPanel = FindPlayPanel(cameraName);
            var deviceInfo   = FindDeviceInfo(cameraName);

            if (curRealPanel != null && deviceInfo != null)
            {
                curRealPanel.initPlayPanel();
                NETDEV_PREVIEWINFO_S stPreviewInfo = new NETDEV_PREVIEWINFO_S();
                stPreviewInfo.dwLinkMode   = (int)NETDEV_PROTOCAL_E.NETDEV_TRANSPROTOCAL_RTPTCP;
                stPreviewInfo.dwChannelID  = 1;
                stPreviewInfo.dwStreamType = (int)NETDEV_LIVE_STREAM_INDEX_E.NETDEV_LIVE_STREAM_INDEX_MAIN;
                stPreviewInfo.hPlayWnd     = curRealPanel.Handle;
                IntPtr Handle = NETDEVSDK.NETDEV_RealPlay(deviceInfo.m_lpDevHandle, ref stPreviewInfo, IntPtr.Zero, IntPtr.Zero);
                if (Handle == IntPtr.Zero)
                {
                    return;
                }
                curRealPanel.m_playStatus = true;
                curRealPanel.m_playhandle = Handle;

                //NETDEVSDK.NETDEV_SetIVAEnable(Handle, 1);
                //NETDEVSDK.NETDEV_SetIVAShowParam(7);
            }
        }
示例#3
0
        /// <summary>
        /// 视频播放
        /// </summary>
        public void Play()
        {
            NETDEV_PREVIEWINFO_S stNetInfo = new NETDEV_PREVIEWINFO_S();

            stNetInfo.dwChannelID = int.Parse("1");
            stNetInfo.hPlayWnd    = pictureBox1.Handle;
            // stNetInfo.dwStreamType = (Int32)NETDEV_LIVE_STREAM_INDEX_E.NETDEV_LIVE_STREAM_INDEX_MAIN;
            stNetInfo.dwStreamType = (Int32)NETDEV_LIVE_STREAM_INDEX_E.NETDEV_LIVE_STREAM_INDEX_AUX;
            stNetInfo.dwLinkMode   = (Int32)NETDEV_PROTOCAL_E.NETDEV_TRANSPROTOCAL_RTPTCP;//only support

            m_lpDevHandlestrem = NETDEVSDK.NETDEV_RealPlay(m_lpDevHandle, ref stNetInfo, IntPtr.Zero, IntPtr.Zero);
            NETDEVSDK.NETDEV_SetIVAShowParam(7);
            NETDEVSDK.NETDEV_SetIVAEnable(m_lpDevHandlestrem, 1);
        }
示例#4
0
        public void DevLogin(DeviceInfo devInfo)
        {
            if (DeviceInfo != null &&
                DeviceInfo.m_ip == devInfo.m_ip &&
                DeviceInfo.m_port == devInfo.m_port
                )
            {
                return;
            }

            NETDEMO.NETDEV_LOGIN_TYPE_E loginFlag       = NETDEMO.NETDEV_LOGIN_TYPE_E.NETDEV_NEW_LOGIN;
            NETDEV_DEVICE_LOGIN_INFO_S  pstDevLoginInfo = new NETDEV_DEVICE_LOGIN_INFO_S();
            NETDEV_SELOG_INFO_S         pstSELogInfo    = new NETDEV_SELOG_INFO_S();

            pstDevLoginInfo.szIPAddr   = devInfo.m_ip;
            pstDevLoginInfo.dwPort     = devInfo.m_port;
            pstDevLoginInfo.szUserName = devInfo.m_userName;
            pstDevLoginInfo.szPassword = devInfo.m_password;
            if (NETDEMO.NETDEMO_DEVICE_TYPE_E.NETDEMO_DEVICE_VMS == devInfo.m_eDeviceType)
            {
                pstDevLoginInfo.dwLoginProto = (int)NETDEV_LOGIN_PROTO_E.NETDEV_LOGIN_PROTO_PRIVATE;
            }
            else
            {
                pstDevLoginInfo.dwLoginProto = (int)NETDEV_LOGIN_PROTO_E.NETDEV_LOGIN_PROTO_ONVIF;
            }
            IntPtr lpDevHandle = NETDEVSDK.NETDEV_Login_V30(ref pstDevLoginInfo, ref pstSELogInfo);

            if (lpDevHandle == IntPtr.Zero)
            {
                Debug.WriteLine(devInfo.m_ip + " : " + devInfo.m_port, "login", NETDEVSDK.NETDEV_GetLastError());
                return;
            }
            lpUserID = lpDevHandle;
            if (loginFlag == NETDEMO.NETDEV_LOGIN_TYPE_E.NETDEV_AGAIN_LOGIN)
            {
                devInfo.m_lpDevHandle = lpDevHandle;
            }
            int iRet = NETDEVSDK.NETDEV_SetExceptionCallBack(excepCB, IntPtr.Zero);

            if (NETDEVSDK.FALSE == iRet)
            {
                Debug.WriteLine(devInfo.m_ip + " : " + devInfo.m_port, "register ExceptionCallBack", NETDEVSDK.NETDEV_GetLastError());
                return;
            }
            devInfo.m_lpDevHandle = lpDevHandle;
            DeviceInfo deviceInfoTemp = devInfo;

            //DeviceInfo deviceInfoTemp = new DeviceInfo();
            //deviceInfoTemp.m_lpDevHandle = lpDevHandle;
            //deviceInfoTemp.m_ip = devInfo.m_ip;
            //deviceInfoTemp.m_port = devInfo.m_port;
            //deviceInfoTemp.m_userName = devInfo.m_userName;
            //deviceInfoTemp.m_password = devInfo.m_password;
            //deviceInfoTemp.m_eDeviceType = devInfo.m_eDeviceType;

            //get the channel list
            if (NETDEMO.NETDEMO_DEVICE_TYPE_E.NETDEMO_DEVICE_VMS == devInfo.m_eDeviceType)
            {
                deviceInfoTemp.stVmsDevInfo = new NETDEMO_VMS_DEVICE_INFO_S();

                NETDEV_ORG_FIND_COND_S stFindCond = new NETDEV_ORG_FIND_COND_S();
                stFindCond.udwRootOrgID = 0;
                IntPtr lpFindOrgHandle = NETDEVSDK.NETDEV_FindOrgInfoList(lpDevHandle, ref stFindCond);
                if (IntPtr.Zero == lpFindOrgHandle)
                {
                    Debug.WriteLine(devInfo.m_ip + " : " + devInfo.m_port, "find org list", NETDEVSDK.NETDEV_GetLastError());
                    return;
                }

                while (true)
                {
                    NETDEMO_VMS_ORG_INFO_S stDemoOrgInfo = new NETDEMO_VMS_ORG_INFO_S();
                    NETDEV_ORG_INFO_S      stOrgInfo     = new NETDEV_ORG_INFO_S();
                    iRet = NETDEVSDK.NETDEV_FindNextOrgInfo(lpFindOrgHandle, ref stOrgInfo);
                    if (NETDEVSDK.FALSE == iRet)
                    {
                        break;
                    }

                    stDemoOrgInfo.stOrgInfo = stOrgInfo;
                    deviceInfoTemp.stVmsDevInfo.stOrgInfoList.Add(stDemoOrgInfo);
                }

                NETDEVSDK.NETDEV_FindCloseOrgInfo(lpFindOrgHandle);

                IntPtr lpFindDevHandle = NETDEVSDK.NETDEV_FindDevList(lpDevHandle, (int)NETDEV_DEVICE_MAIN_TYPE_E.NETDEV_DTYPE_MAIN_ENCODE);
                if (IntPtr.Zero == lpFindDevHandle)
                {
                    Debug.WriteLine(devInfo.m_ip + " : " + devInfo.m_port, "NETDEV_FindDevList", NETDEVSDK.NETDEV_GetLastError());
                    //return;
                }

                while (true)
                {
                    NETDEMO_VMS_DEV_BASIC_INFO_S stDemoVmsBasicInfo = new NETDEMO_VMS_DEV_BASIC_INFO_S();

                    NETDEV_DEV_BASIC_INFO_S pstDevBasicInfo = new NETDEV_DEV_BASIC_INFO_S();
                    iRet = NETDEVSDK.NETDEV_FindNextDevInfo(lpFindDevHandle, ref pstDevBasicInfo);
                    if (NETDEVSDK.FALSE == iRet)
                    {
                        break;
                    }

                    stDemoVmsBasicInfo.stDevBasicInfo = pstDevBasicInfo;

                    IntPtr lpFindDevChnHandle = NETDEVSDK.NETDEV_FindDevChnList(lpDevHandle, pstDevBasicInfo.dwDevID, 0);
                    if (IntPtr.Zero == lpFindDevChnHandle)
                    {
                        Debug.WriteLine(devInfo.m_ip + " : " + devInfo.m_port, "NETDEV_FindDevChnList", NETDEVSDK.NETDEV_GetLastError());
                        break;
                    }

                    while (true)
                    {
                        NETDEMO_VMS_DEV_CHANNEL_INFO_S stDemoVmsChnInfo = new NETDEMO_VMS_DEV_CHANNEL_INFO_S();

                        int pdwBytesReturned = 0;
                        NETDEV_DEV_CHN_ENCODE_INFO_S stDevChnInfo = new NETDEV_DEV_CHN_ENCODE_INFO_S();
                        IntPtr lpOutBuffer = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(NETDEV_DEV_CHN_ENCODE_INFO_S)));
                        Marshal.StructureToPtr(stDevChnInfo, lpOutBuffer, true);
                        iRet = NETDEVSDK.NETDEV_FindNextDevChn(lpFindDevChnHandle, lpOutBuffer, Marshal.SizeOf(typeof(NETDEV_DEV_CHN_ENCODE_INFO_S)), ref pdwBytesReturned);
                        if (NETDEVSDK.FALSE == iRet)
                        {
                            Marshal.FreeHGlobal(lpOutBuffer);
                            break;
                        }
                        else
                        {
                            stDevChnInfo = (NETDEV_DEV_CHN_ENCODE_INFO_S)Marshal.PtrToStructure(lpOutBuffer, typeof(NETDEV_DEV_CHN_ENCODE_INFO_S));
                            stDemoVmsChnInfo.stChnInfo = stDevChnInfo;
                            stDemoVmsBasicInfo.stChnInfoList.Add(stDemoVmsChnInfo);

                            Marshal.FreeHGlobal(lpOutBuffer);
                        }
                    }

                    NETDEVSDK.NETDEV_FindCloseDevChn(lpFindDevChnHandle);

                    for (int k = 0; k < deviceInfoTemp.stVmsDevInfo.stOrgInfoList.Count; k++)
                    {
                        if (stDemoVmsBasicInfo.stDevBasicInfo.dwOrgID == deviceInfoTemp.stVmsDevInfo.stOrgInfoList[k].stOrgInfo.dwOrgID)
                        {
                            deviceInfoTemp.stVmsDevInfo.stOrgInfoList[k].stVmsDevBasicInfoList.Add(stDemoVmsBasicInfo);
                        }
                    }
                }

                NETDEVSDK.NETDEV_FindCloseDevInfo(lpFindDevHandle);

                //if (loginFlag == NETDEMO.NETDEV_LOGIN_TYPE_E.NETDEV_AGAIN_LOGIN)//again login
                //{
                //    m_deviceInfoList[DeviceNodeIndex] = deviceInfoTemp;
                //    TreeNode treeNode = TreeViewFindNode(DeviceTree, DeviceNodeIndex, 0, NETDEMO.NETDEMO_FIND_TREE_NODE_TYPE_E.NETDEMO_FIND_TREE_NODE_DEVICE_INDEX);
                //    if (null != treeNode)
                //    {
                //        setDeviceTreeNode(treeNode, DeviceNodeIndex, deviceInfoTemp);
                //        //updatedeviceTreeStatus(DeviceNodeIndex);

                //        for (int j = 0; j < deviceInfo.m_RealPlayInfoList.Count; j++)
                //        {
                //            m_CurSelectTreeNodeInfo = new TreeNodeInfo();
                //            m_CurSelectTreeNodeInfo.dwDeviceIndex = DeviceNodeIndex;
                //            m_CurSelectTreeNodeInfo.dwChannelID = deviceInfo.m_RealPlayInfoList[j].m_channel;
                //            m_curRealPanel = arrayRealPanel[deviceInfo.m_RealPlayInfoList[j].m_panelIndex];
                //            startRealPlay();
                //        }
                //    }
                //}
                //else
                //{
                //    setTreeView(deviceInfoTemp);
                //    m_deviceInfoList.Add(deviceInfoTemp);
                //}
            }
            else
            {
                int    pdwChlCount     = 256;
                IntPtr pstVideoChlList = new IntPtr();
                //pstVideoChlList = Marshal.AllocHGlobal(NETDEVSDK.NETDEV_LEN_32 * Marshal.SizeOf(typeof(NETDEV_VIDEO_CHL_DETAIL_INFO_S)));
                pstVideoChlList = Marshal.AllocHGlobal(256 * Marshal.SizeOf(typeof(NETDEV_VIDEO_CHL_DETAIL_INFO_S)));
                iRet            = NETDEVSDK.NETDEV_QueryVideoChlDetailList(deviceInfoTemp.m_lpDevHandle, ref pdwChlCount, pstVideoChlList);
                if (NETDEVSDK.TRUE == iRet)
                {
                    deviceInfoTemp.m_channelNumber = pdwChlCount;
                    NETDEV_VIDEO_CHL_DETAIL_INFO_S stCHLItem = new NETDEV_VIDEO_CHL_DETAIL_INFO_S();
                    for (int i = 0; i < pdwChlCount; i++)
                    {
                        IntPtr ptrTemp = new IntPtr(pstVideoChlList.ToInt64() + Marshal.SizeOf(typeof(NETDEV_VIDEO_CHL_DETAIL_INFO_S)) * i);
                        stCHLItem = (NETDEV_VIDEO_CHL_DETAIL_INFO_S)Marshal.PtrToStructure(ptrTemp, typeof(NETDEV_VIDEO_CHL_DETAIL_INFO_S));

                        ChannelInfo channelInfo = new ChannelInfo();
                        channelInfo.m_devVideoChlInfo = stCHLItem;
                        deviceInfoTemp.m_channelInfoList.Add(channelInfo);
                        TreeNodeInfo.dwChannelID = stCHLItem.dwChannelID;
                    }

                    NETDEV_PREVIEWINFO_S stPreviewInfo = new NETDEV_PREVIEWINFO_S();
                    stPreviewInfo.dwChannelID = TreeNodeInfo.dwChannelID;
                    //stPreviewInfo.dwFluency =
                    stPreviewInfo.dwLinkMode   = (int)NETDEV_PROTOCAL_E.NETDEV_TRANSPROTOCAL_RTPTCP;
                    stPreviewInfo.dwStreamType = (int)NETDEV_LIVE_STREAM_INDEX_E.NETDEV_LIVE_STREAM_INDEX_MAIN;
                    stPreviewInfo.hPlayWnd     = CurrentHandle;
                    IntPtr Handle = NETDEVSDK.NETDEV_RealPlay(devInfo.m_lpDevHandle, ref stPreviewInfo, IntPtr.Zero, IntPtr.Zero);
                    if (Handle == IntPtr.Zero)
                    {
                        return;
                    }
                    CurrentHandle = Handle;
                    //if (loginFlag == NETDEMO.NETDEV_LOGIN_TYPE_E.NETDEV_AGAIN_LOGIN)//again login
                    //{
                    //    m_deviceInfoList[DeviceNodeIndex] = deviceInfoTemp;
                    //    TreeNode treeNode = TreeViewFindNode(DeviceTree, DeviceNodeIndex, 0, NETDEMO.NETDEMO_FIND_TREE_NODE_TYPE_E.NETDEMO_FIND_TREE_NODE_DEVICE_INDEX);
                    //    if (null != treeNode)
                    //    {
                    //        setDeviceTreeNode(treeNode, DeviceNodeIndex, deviceInfoTemp);
                    //        //updatedeviceTreeStatus(DeviceNodeIndex);

                    //        for (int j = 0; j < deviceInfo.m_RealPlayInfoList.Count; j++)
                    //        {
                    //            m_CurSelectTreeNodeInfo = new TreeNodeInfo();
                    //            m_CurSelectTreeNodeInfo.dwDeviceIndex = DeviceNodeIndex;
                    //            m_CurSelectTreeNodeInfo.dwChannelID = deviceInfo.m_RealPlayInfoList[j].m_channel;
                    //            m_curRealPanel = arrayRealPanel[deviceInfo.m_RealPlayInfoList[j].m_panelIndex];
                    //            startRealPlay();
                    //        }
                    //    }
                    //}
                    //else
                    //{
                    //    setTreeView(deviceInfoTemp);
                    //    m_deviceInfoList.Add(deviceInfoTemp);
                    //}
                }
                Marshal.FreeHGlobal(pstVideoChlList);

                NETDEV_DEVICE_INFO_S pstDevInfo = new NETDEV_DEVICE_INFO_S();
                NETDEVSDK.NETDEV_GetDeviceInfo(deviceInfoTemp.m_lpDevHandle, ref pstDevInfo);
                deviceInfoTemp.m_stDevInfo = pstDevInfo;
            }
        }