예제 #1
0
        private void discovery(String strStartIP, String strEndIP)
        {
            if (strStartIP == "" || strEndIP == "")
            {
                return;
            }

            oDeviceInfoList.Clear();
            DeviceInfoListView.Items.Clear();

            m_oNetDemo.discoveryCB = new NETDEVSDK.NETDEV_DISCOVERY_CALLBACK_PF(discoveryCallBack);
            Int32 iRet = NETDEVSDK.NETDEV_SetDiscoveryCallBack(m_oNetDemo.discoveryCB, IntPtr.Zero);

            if (NETDEVSDK.FALSE == iRet)
            {
                MessageBox.Show("set discovery callBack failed,the error is [" + NETDEVSDK.NETDEV_GetLastError().ToString() + "]");
                return;
            }

            iRet = NETDEVSDK.NETDEV_Discovery(strStartIP, strEndIP);
            if (NETDEVSDK.FALSE == iRet)
            {
                MessageBox.Show("discovery failed,the error is [" + NETDEVSDK.NETDEV_GetLastError().ToString() + "]");
                return;
            }
        }
예제 #2
0
파일: FaceTEST.cs 프로젝트: piaoye2019/face
 private void FaceTEST_FormClosing(object sender, FormClosingEventArgs e)
 {
     NETDEVSDK.NETDEV_StopRealPlay(m_lpDevHandlestrem);
     NETDEVSDK.NETDEV_Logout(m_lpDevHandle);
     NETDEVSDK.NETDEV_Cleanup();
     System.Environment.Exit(0);
 }
예제 #3
0
        public void saveStstemTime(int timeZone, string Date, String time)
        {
            /* Save system time */
            NETDEV_TIME_CFG_S stTimeCfg = new NETDEV_TIME_CFG_S();

            stTimeCfg.stTime.dwYear  = Convert.ToInt32(Date.Split('/')[0]);
            stTimeCfg.stTime.dwMonth = Convert.ToInt32(Date.Split('/')[1]);
            stTimeCfg.stTime.dwDay   = Convert.ToInt32(Date.Split('/')[2]);

            stTimeCfg.stTime.dwHour   = Convert.ToInt32(time.Split(':')[0]);
            stTimeCfg.stTime.dwMinute = Convert.ToInt32(time.Split(':')[1]);
            stTimeCfg.stTime.dwSecond = Convert.ToInt32(time.Split(':')[2]);

            stTimeCfg.dwTimeZone = (NETDEV_TIME_ZONE_E)timeZone;

            int iRet = NETDEVSDK.NETDEV_SetSystemTimeCfg(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_lpDevHandle, ref stTimeCfg);

            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_oNetDemo.getDeviceInfoList()[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Save device system time", NETDEVSDK.NETDEV_GetLastError());
                return;
            }
            m_oNetDemo.showSuccessLogInfo(m_oNetDemo.getDeviceInfoList()[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Save device system time");

            m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_channelInfoList[m_oNetDemo.m_curSelectedTreeChannelIndex].m_basicInfo.stSystemTime = stTimeCfg;
        }
예제 #4
0
        private void StopPatrolsBtn_Click(object sender, EventArgs e)
        {
            if (false == this.m_curRealPlayPanel.m_trackStatus)
            {
                MessageBox.Show("Connot Tracking", "warning");
                return;
            }

            NETDEV_PTZ_TRACK_INFO_S stTrackCruiseInfo = new NETDEV_PTZ_TRACK_INFO_S();

            int iRet = NETDEVSDK.NETDEV_PTZGetTrackCruise(m_lpDevHandle, m_iChannelID, ref stTrackCruiseInfo);

            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Get Route", NETDEVSDK.NETDEV_GetLastError());
                return;
            }
            m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Get Route");

            iRet = NETDEVSDK.NETDEV_PTZTrackCruise(m_lpDevHandle, m_iChannelID, (int)NETDEV_PTZ_E.NETDEV_PTZ_TRACKCRUISESTOP, stTrackCruiseInfo.TrackName);
            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Stop Route patrol fail", NETDEVSDK.NETDEV_GetLastError());
                return;
            }
            else
            {
                this.m_curRealPlayPanel.m_trackStatus = false;
                m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Stop Route patrol");
            }

            return;
        }
예제 #5
0
        public void saveImageInfo(NETDEV_IMAGE_SETTING_S stImageInfo)
        {
            int dwDeviceIndex    = m_oNetDemo.getDeviceIndex();
            int dwOrgIndex       = m_oNetDemo.getOrgIndex();
            int dwSubDeviceIndex = m_oNetDemo.getSubDeviceIndex();
            int dwChannelIndex   = m_oNetDemo.getChannelIndex();

            if (dwDeviceIndex < 0 || dwChannelIndex < 0)
            {
                return;
            }

            int iRet = NETDEVSDK.NETDEV_SetDevConfig(m_deviceInfoList[dwDeviceIndex].m_lpDevHandle, m_oNetDemo.getChannelID(), (int)NETDEV_CONFIG_COMMAND_E.NETDEV_SET_IMAGECFG, ref stImageInfo, Marshal.SizeOf(stImageInfo));

            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[dwDeviceIndex].m_ip + " chl:" + (m_oNetDemo.getChannelID()), "Save image info", NETDEVSDK.NETDEV_GetLastError());
                return;
            }
            m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[dwDeviceIndex].m_ip + " chl:" + (m_oNetDemo.getChannelID()), "Save image info");

            if (NETDEMO.NETDEMO_DEVICE_TYPE_E.NETDEMO_DEVICE_VMS == m_deviceInfoList[dwDeviceIndex].m_eDeviceType)
            {
                m_deviceInfoList[dwDeviceIndex].stVmsDevInfo.stOrgInfoList[dwOrgIndex].stVmsDevBasicInfoList[dwSubDeviceIndex].stChnInfoList[dwChannelIndex].m_imageInfo.imageInfo = stImageInfo;
            }
            else
            {
                m_deviceInfoList[dwDeviceIndex].m_channelInfoList[dwChannelIndex].m_imageInfo.imageInfo = stImageInfo;
            }
        }
예제 #6
0
        public Bitmap TakeSnapshot(string cameraName)
        {
            var    curRealPanel = FindPlayPanel(cameraName);
            var    deviceInfo   = FindDeviceInfo(cameraName);
            Bitmap bitmap       = null;

            if (curRealPanel != null && curRealPanel != null)
            {
                String   strTemp    = string.Copy(LocalSetting.m_strPicSavePath);
                DateTime oDate      = DateTime.Now;
                String   strCurTime = oDate.ToString("yyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
                LocalSetting.m_strPicSavePath += "\\";
                LocalSetting.m_strPicSavePath += deviceInfo.m_ip;
                LocalSetting.m_strPicSavePath += "_";
                LocalSetting.m_strPicSavePath += cameraName;
                LocalSetting.m_strPicSavePath += "_";
                LocalSetting.m_strPicSavePath += strCurTime;

                byte[] picSavePath;
                GetUTF8Buffer(LocalSetting.m_strPicSavePath, NETDEVSDK.NETDEV_LEN_260, out picSavePath);

                int iRet = NETDEVSDK.NETDEV_CapturePicture(curRealPanel.m_playhandle, picSavePath, (int)NETDEV_PICTURE_FORMAT_E.NETDEV_PICTURE_JPG);
                //showSuccessLogInfo(m_deviceInfoList[m_CurSelectTreeNodeInfo.dwDeviceIndex].m_ip + " chl:" + (getChannelID()), "CapturePicture");
                bitmap = (Bitmap)Image.FromFile(LocalSetting.m_strPicSavePath + ".jpg");
                LocalSetting.m_strPicSavePath = strTemp;
            }

            return(bitmap);
        }
예제 #7
0
        public void StartRecord(string cameraName)
        {
            var curRealPanel = FindPlayPanel(cameraName);
            var deviceInfo   = FindDeviceInfo(cameraName);

            if (curRealPanel.m_playStatus == false)
            {
                return;
            }

            if (curRealPanel.m_recordStatus == false)
            {
                String temp = string.Copy(LocalSetting.m_strRecordSavePath);
                LocalSetting.m_strRecordSavePath += CommonFunc.FormatFileNameVideo();

                byte[] localRecordPath;
                GetUTF8Buffer(LocalSetting.m_strRecordSavePath, NETDEVSDK.NETDEV_LEN_260, out localRecordPath);
                int iRet = NETDEVSDK.NETDEV_SaveRealData(curRealPanel.m_playhandle, localRecordPath, (int)NETDEV_MEDIA_FILE_FORMAT_E.NETDEV_MEDIA_FILE_MP4);
                if (NETDEVSDK.FALSE == iRet)
                {
                    return;
                }
                curRealPanel.m_recordStatus      = true;
                LocalSetting.m_strRecordSavePath = temp;
            }
        }
예제 #8
0
        private void GetPresetID()
        {
            PresetIDcobBox.Items.Clear();
            NETDEV_PTZ_ALLPRESETS_S stPtzPresets = new NETDEV_PTZ_ALLPRESETS_S();

            Int32 dwBytesReturned = 0;
            int   iRet            = NETDEVSDK.NETDEV_GetPTZPresetList(m_lpDevHandle, m_iChannelID, ref stPtzPresets);

            if (NETDEVSDK.TRUE != iRet)
            {
                if (NETDEVSDK.NETDEV_E_NO_RESULT == NETDEVSDK.NETDEV_GetLastError())
                {
                    m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Preset list is emtpy.", NETDEVSDK.NETDEV_GetLastError());
                    return;
                }

                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Get presets", NETDEVSDK.NETDEV_GetLastError());
            }
            else
            {
                m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Get presets");
                for (Int32 i = 0; i < stPtzPresets.dwSize; i++)
                {
                    PresetIDcobBox.Items.Add(Convert.ToString(stPtzPresets.astPreset[i].dwPresetID));
                }

                PresetIDcobBox.SelectedIndex = 0;

                PresetNameText.Text = GetDefaultString(stPtzPresets.astPreset[0].szPresetName);
            }

            return;
        }
예제 #9
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);
            }
        }
예제 #10
0
        public void Button1_Click(object sender, EventArgs e)
        {
            String   strTemp    = string.Copy("D:\\");
            DateTime oDate      = DateTime.Now;
            String   strCurTime = oDate.ToString("yyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);

            strTemp += "192.168.1.1";
            strTemp += "_";
            strTemp += 2;
            strTemp += "_";
            strTemp += strCurTime;
            byte[] picSavePath;
            GetUTF8Buffer(strTemp, NETDEVSDK.NETDEV_LEN_260, out picSavePath);
            int iRet = NETDEVSDK.NETDEV_CapturePicture(Handle, picSavePath, (int)NETDEV_PICTURE_FORMAT_E.NETDEV_PICTURE_JPG);

            if (NETDEVSDK.FALSE == iRet)
            {
                MessageBox.Show("Capture Failed");
                NETDEVSDK.NETDEV_StopRealPlay(lpDevHandle);
                NETDEVSDK.NETDEV_Logout(lpDevHandle);
                return;
            }
            NETDEVSDK.NETDEV_StopRealPlay(lpDevHandle);
            NETDEVSDK.NETDEV_Logout(lpDevHandle);
            Image img = Image.FromFile(strTemp + ".jpg");

            pictureBox1.ImageLocation = strTemp + ".jpg";
            pictureBox1.Height        = img.Height;
            pictureBox1.Width         = img.Width;
            this.Height = img.Height;
            this.Width  = img.Width;
        }
예제 #11
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");
        }
예제 #12
0
        private void PresetIDcobBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            NETDEV_PTZ_ALLPRESETS_S stPtzPresets = new NETDEV_PTZ_ALLPRESETS_S();

            Int32 dwBytesReturned = 0;
            int   iRet            = NETDEVSDK.NETDEV_GetPTZPresetList(m_lpDevHandle, m_iChannelID, ref stPtzPresets);

            if (NETDEVSDK.TRUE != iRet)
            {
                if (NETDEVSDK.NETDEV_E_NO_RESULT == NETDEVSDK.NETDEV_GetLastError())
                {
                    m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Presets list is emtpy.", NETDEVSDK.NETDEV_GetLastError());
                    return;
                }

                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Get presets", NETDEVSDK.NETDEV_GetLastError());
            }
            else
            {
                m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Get presets");

                String strPreSetID = (string)PresetIDcobBox.SelectedItem;
                for (Int32 i = 0; i < stPtzPresets.dwSize; i++)
                {
                    if (stPtzPresets.astPreset[i].dwPresetID == Convert.ToInt32(strPreSetID))
                    {
                        PresetNameText.Text = GetDefaultString(stPtzPresets.astPreset[i].szPresetName);
                        return;
                    }
                }
            }

            return;
        }
예제 #13
0
        public void Discovery(String strStartIP, String strEndIP)
        {
            if (strStartIP == "" || strEndIP == "")
            {
                return;
            }

            oDeviceInfoList.Clear();

            discoveryCB = new NETDEVSDK.NETDEV_DISCOVERY_CALLBACK_PF(DiscoveryCallBack);
            Int32 iRet = NETDEVSDK.NETDEV_SetDiscoveryCallBack(discoveryCB, IntPtr.Zero);

            if (NETDEVSDK.FALSE == iRet)
            {
                Debug.WriteLine("set discovery callBack failed,the error is [" + NETDEVSDK.NETDEV_GetLastError().ToString() + "]");
                return;
            }

            iRet = NETDEVSDK.NETDEV_Discovery(strStartIP, strEndIP);
            if (NETDEVSDK.FALSE == iRet)
            {
                Debug.WriteLine("discovery failed,the error is [" + NETDEVSDK.NETDEV_GetLastError().ToString() + "]");
                return;
            }
        }
예제 #14
0
 public void GotoPreset()
 {
     byte[] byPresetName;
     GetUTF8Buffer(szPresetName, NETDEVSDK.NETDEV_LEN_32, out byPresetName);
     int dwChannelID = PTZControl.Instance.TreeNodeInfo.dwChannelID;
     int bRet        = NETDEVSDK.NETDEV_PTZPreset_Other(Instance.lpUserID, dwChannelID, (int)NETDEV_PTZ_PRESETCMD_E.NETDEV_PTZ_GOTO_PRESET, byPresetName, lPresetID);
 }
예제 #15
0
        public void refreshMotionInfo()
        {
            NETDEV_MOTION_ALARM_INFO_S stMotionAlarmInfo = new NETDEV_MOTION_ALARM_INFO_S();

            stMotionAlarmInfo.awScreenInfo = new NETDEV_SCREENINFO_COLUMN_S[NETDEVSDK.NETDEV_SCREEN_INFO_ROW];

            for (int i = 0; i < NETDEVSDK.NETDEV_SCREEN_INFO_ROW; i++)
            {
                stMotionAlarmInfo.awScreenInfo[i].columnInfo = new short[NETDEVSDK.NETDEV_SCREEN_INFO_COLUMN];
            }

            Int32 dwBytesReturned = 0;
            int   iRet            = NETDEVSDK.NETDEV_GetDevConfig(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_lpDevHandle, m_oNetDemo.m_curSelectedTreeChannelIndex + 1, (int)NETDEV_CONFIG_COMMAND_E.NETDEV_GET_MOTIONALARM, ref stMotionAlarmInfo, Marshal.SizeOf(stMotionAlarmInfo), ref dwBytesReturned);

            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Get motion cfg", NETDEVSDK.NETDEV_GetLastError());
                return;
            }

            m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Get motion cfg");

            if (stMotionAlarmInfo.dwObjectSize > MAXMOTIONOBJECTSIZE)
            {
                stMotionAlarmInfo.dwObjectSize = MAXMOTIONOBJECTSIZE;
            }

            m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_channelInfoList[m_oNetDemo.m_curSelectedTreeChannelIndex].m_MotionAlarmInfo.MotionAlarmInfo = stMotionAlarmInfo;
            m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_channelInfoList[m_oNetDemo.m_curSelectedTreeChannelIndex].m_MotionAlarmInfo.existFlag       = true;
            m_oNetDemo.showMotionInfo(ref stMotionAlarmInfo);
        }
예제 #16
0
        private void RunRoutePatrolsBtn_Click(object sender, EventArgs e)
        {
            NETDEV_PTZ_TRACK_INFO_S stTrackCruiseInfo = new NETDEV_PTZ_TRACK_INFO_S();

            Int32 iRet = NETDEVSDK.NETDEV_PTZGetTrackCruise(m_lpDevHandle, m_iChannelID, ref stTrackCruiseInfo);

            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Get Route", NETDEVSDK.NETDEV_GetLastError());
                return;
            }

            m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Get Route");

            iRet = NETDEVSDK.NETDEV_PTZTrackCruise(m_lpDevHandle, m_iChannelID, (int)NETDEV_PTZ_E.NETDEV_PTZ_TRACKCRUISE, stTrackCruiseInfo.TrackName);
            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Start Route patrol", NETDEVSDK.NETDEV_GetLastError());
            }
            else
            {
                this.m_curRealPlayPanel.m_trackStatus = true;
                m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_curSelectedTreeChannelIndex + 1), "Start Route patrol");
            }

            return;
        }
예제 #17
0
 public bool Control(int PTZCommand)
 {
     //NETDEVSDK.NETDEV_PTZControl(CurrentHandle, (int)NETDEV_PTZ_E.NETDEV_PTZ_ALLSTOP, this.m_speed);
     if (NETDEVSDK.FALSE == NETDEVSDK.NETDEV_PTZControl(CurrentHandle, PTZCommand, this.m_speed))
     {
         return(false);
     }
     return(true);
 }
예제 #18
0
파일: FaceTEST.cs 프로젝트: piaoye2019/face
        /// <summary>
        /// 获取摄像头图片
        /// </summary>
        /// <param name="lpUserID"></param>
        /// <param name="pstFaceSnapShotData"></param>
        /// <param name="lpUserParam"></param>
        private void FaceSnapshotCallBack(IntPtr lpUserID, ref NETDEV_TMS_FACE_SNAPSHOT_PIC_INFO_S pstFaceSnapShotData, IntPtr lpUserParam)
        {
            try
            {
                bool stimeresult = getTimeSpan(DateTime.Now.ToString(), stime1, etime1);
                bool etimeresult = getTimeSpan(DateTime.Now.ToString(), stime2, etime2);
                if (stimeresult == true || etimeresult == true)
                {
                    if (pstFaceSnapShotData.udwFaceId != 0)
                    {
                        String   strNowTime = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                        DateTime time       = DateTime.Now;
                        string   path       = time.ToString("yyyyMMddHHmmssfff");
                        string   path1      = time.ToString("yyyyMMdd");
                        String   sPath1     = @facepath + path1 + @"\";
                        int      faceid     = pstFaceSnapShotData.udwFaceId;
                        loginfo.Info("faceid:" + faceid + "," + path);

                        if (!Directory.Exists(sPath1))
                        {
                            Directory.CreateDirectory(sPath1);
                        }
                        string strFileName = @sPath1 + path + ".jpg";

                        byte[] array = new byte[pstFaceSnapShotData.udwPicBuffLen];
                        NETDEVSDK.MemCopy(array, pstFaceSnapShotData.pcPicBuff, pstFaceSnapShotData.udwPicBuffLen);
                        FileStream fs = new FileStream(strFileName, FileMode.Create);
                        //将byte数组写入文件中
                        fs.Write(array, 0, array.Length);
                        //所有流类型都要关闭流,否则会出现内存泄露问题
                        fs.Close();
                        loginfo.Info(strFileName + "处理开始:" + IMG_Queue1.Count);
                        if (IMG_Queue1.Count >= throwway)
                        {
                            loginfo.Info("照片处理达到上限" + IMG_Queue1.Count);
                            return;
                        }
                        string jitime = new string(pstFaceSnapShotData.szPassTime).Trim();
                        jitime = jitime.Substring(0, 17);

                        IMG_Queue1.Enqueue(jitime + "|" + faceid);
                        IMG_Queue.Enqueue(strFileName);
                        loginfo.Info(strFileName + "加入队列");
                        autoReset.Set();
                    }
                }
                else
                {
                    Updatemess("", "", "非考勤时间", "");
                }
            }
            catch (Exception ex)
            {
                Updatemess("", "", "摄像头异常", "FaceSnapshotCallBack");
                loginfo.Error("FaceSnapshotCallBack", ex);
            }
        }
예제 #19
0
        public bool control_Other(IntPtr lpHandle, int ChannelID, int PTZCommand)
        {
            if (NETDEVSDK.FALSE == NETDEVSDK.NETDEV_PTZControl_Other(lpHandle, ChannelID, PTZCommand, this.m_speed))
            {
                return(false);
            }

            return(true);
        }
예제 #20
0
        public bool control(IntPtr lpPlayHandle, int PTZCommand)
        {
            if (NETDEVSDK.FALSE == NETDEVSDK.NETDEV_PTZControl(lpPlayHandle, PTZCommand, this.m_speed))
            {
                return(false);
            }

            return(true);
        }
예제 #21
0
파일: Program.cs 프로젝트: Anberm/Fine1Ar
        private static void InitUniSdk()
        {
            int iRet = NETDEVSDK.NETDEV_Init();

            if (NETDEVSDK.TRUE != iRet)
            {
                Debug.WriteLine("it is not a admin oper");
            }
            var ptz = PTZControl.Instance;
        }
예제 #22
0
        private void okBtn_Click(object sender, EventArgs e)
        {
            if (m_oNetDemo.getChannelID() == -1)
            {
                return;
            }

            int    dwChannelID = m_oNetDemo.getChannelID();
            IntPtr lpHandle    = m_oNetDemo.getDeviceInfoList()[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_lpDevHandle;


            if (IntPtr.Zero == lpHandle)
            {
                MessageBox.Show("Device Handle is 0 ", "warning");
                return;
            }

            String szPresetName;

            Int32 lPresetID = -1;

            try
            {
                lPresetID = Convert.ToInt32(this.presetIDText.Text);
            }
            catch (FormatException)
            {
                return;
            }

            szPresetName = this.presetNameText.Text;

            if (0 >= lPresetID || lPresetID > NETDEVSDK.NETDEV_MAX_PRESET_NUM)
            {
                MessageBox.Show("Preset ID invalid.", "warning");
                return;
            }

            byte[] byPresetName;
            GetUTF8Buffer(szPresetName, NETDEVSDK.NETDEV_LEN_32, out byPresetName);

            int bRet = NETDEVSDK.NETDEV_PTZPreset_Other(lpHandle, dwChannelID, (int)NETDEV_PTZ_PRESETCMD_E.NETDEV_PTZ_SET_PRESET, byPresetName, lPresetID);

            if (NETDEVSDK.TRUE != bRet)
            {
                m_oNetDemo.showFailLogInfo(m_oNetDemo.getDeviceInfoList()[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_ip + " chl:" + (m_oNetDemo.getChannelID()), "Set preset", NETDEVSDK.NETDEV_GetLastError());
            }
            else
            {
                m_oNetDemo.showSuccessLogInfo(m_oNetDemo.getDeviceInfoList()[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_ip + " chl:" + (m_oNetDemo.getChannelID()), "Set preset");

                m_oNetDemo.presetGetBtn_Click(null, null);
                this.Close();
            }
        }
예제 #23
0
        public void refreshBasicInfo()
        {
            /* Get Device System time */
            NETDEV_TIME_CFG_S stTimeCfg = new NETDEV_TIME_CFG_S();
            int iRet = NETDEVSDK.NETDEV_GetSystemTimeCfg(m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_lpDevHandle, ref stTimeCfg);

            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_ip + " chl:" + (m_oNetDemo.getChannelID()), "Get device system time", NETDEVSDK.NETDEV_GetLastError());
                return;
            }
            else
            {
                m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_ip + " chl:" + (m_oNetDemo.getChannelID()), "Get device system time");
                m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_channelInfoList[m_oNetDemo.getChannelIndex()].m_basicInfo.stSystemTime = stTimeCfg;
            }

            m_oNetDemo.showSystemTime(stTimeCfg);

            /* Get Device name */
            NETDEV_DEVICE_BASICINFO_S stDeviceInfo = new NETDEV_DEVICE_BASICINFO_S();
            Int32 dwBytesReturned = 0;

            iRet = NETDEVSDK.NETDEV_GetDevConfig(m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_lpDevHandle, m_oNetDemo.getChannelID(), (int)NETDEV_CONFIG_COMMAND_E.NETDEV_GET_DEVICECFG, ref stDeviceInfo, Marshal.SizeOf(stDeviceInfo), ref dwBytesReturned);
            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_ip + " chl:" + (m_oNetDemo.getChannelID()), "Get device name", NETDEVSDK.NETDEV_GetLastError());
                return;
            }

            m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_ip + " chl:" + (m_oNetDemo.getChannelID()), "Get device name");

            string strDevName = GetDefaultString(stDeviceInfo.szDeviceName);

            m_oNetDemo.showDeviceName(strDevName);
            m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_channelInfoList[m_oNetDemo.getChannelIndex()].m_basicInfo.szDeviceName = strDevName;

            /* Get disk info */
            NETDEV_DISK_INFO_LIST_S stDiskInfoList = new NETDEV_DISK_INFO_LIST_S();

            iRet = NETDEVSDK.NETDEV_GetDevConfig(m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_lpDevHandle, m_oNetDemo.getChannelID(), (int)NETDEV_CONFIG_COMMAND_E.NETDEV_GET_DISKSINFO, ref stDiskInfoList, Marshal.SizeOf(stDiskInfoList), ref dwBytesReturned);
            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_ip + " chl:" + (m_oNetDemo.getChannelID()), "Get disk info", NETDEVSDK.NETDEV_GetLastError());
                return;
            }

            m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_ip + " chl:" + (m_oNetDemo.getChannelID()), "Get disk info");

            m_oNetDemo.showDiskInfoList(stDiskInfoList);
            m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_channelInfoList[m_oNetDemo.getChannelIndex()].m_basicInfo.stDiskInfoList = stDiskInfoList;

            m_deviceInfoList[m_oNetDemo.m_CurSelectTreeNodeInfo.dwDeviceIndex].m_channelInfoList[m_oNetDemo.getChannelIndex()].m_basicInfo.existFlag = true;
        }
예제 #24
0
        public void saveDeviceName(String deviceName)
        {
            int iRet = NETDEVSDK.NETDEV_ModifyDeviceName(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_lpDevHandle, deviceName);

            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Save device name", NETDEVSDK.NETDEV_GetLastError());
                return;
            }
            m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Save device name");
            m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_channelInfoList[m_oNetDemo.m_curSelectedTreeChannelIndex].m_basicInfo.szDeviceName = deviceName;
        }
예제 #25
0
        public CameraHelper(List <PlayPanel> playPanels, List <DeviceInfo> deviceInfos)
        {
            this.playPanels  = playPanels;
            this.deviceInfos = deviceInfos;
            int iRet = NETDEVSDK.NETDEV_Init();

            if (NETDEVSDK.TRUE != iRet)
            {
                MessageBox.Show("it is not a admin oper");
            }
            SetSavePath();
        }
예제 #26
0
        public void SetPreset()
        {
            byte[] byPresetName;
            GetUTF8Buffer(szPresetName, NETDEVSDK.NETDEV_LEN_32, out byPresetName);
            int dwChannelID = PTZControl.Instance.TreeNodeInfo.dwChannelID;
            int bRet        = NETDEVSDK.NETDEV_PTZPreset_Other(Instance.lpUserID, dwChannelID, (int)NETDEV_PTZ_PRESETCMD_E.NETDEV_PTZ_SET_PRESET, byPresetName, lPresetID);

            if (NETDEVSDK.TRUE != bRet)
            {
                var err = NETDEVSDK.NETDEV_GetLastError();
            }
        }
예제 #27
0
        public void deletePrivacyMaskInfo(int index)
        {
            int iRet = NETDEVSDK.NETDEV_SetDevConfig(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_lpDevHandle, m_oNetDemo.m_curSelectedTreeChannelIndex + 1, (int)NETDEV_CONFIG_COMMAND_E.NETDEV_DELETE_PRIVACYMASKCFG, ref index, Marshal.SizeOf(index));

            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Delete privacy mask cfg", NETDEVSDK.NETDEV_GetLastError());
                return;
            }

            m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Delete privacy mask cfg");
        }
예제 #28
0
        public void saveVideoInfo(NETDEV_VIDEO_STREAM_INFO_S stStreamInfo)
        {
            int iRet = NETDEVSDK.NETDEV_SetDevConfig(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_lpDevHandle, m_oNetDemo.m_curSelectedTreeChannelIndex + 1, (int)NETDEV_CONFIG_COMMAND_E.NETDEV_SET_STREAMCFG, ref stStreamInfo, Marshal.SizeOf(stStreamInfo));

            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Save stream info", NETDEVSDK.NETDEV_GetLastError());
                m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_channelInfoList[m_oNetDemo.m_curSelectedTreeChannelIndex].m_videoStreamInfo.existFlag = false;
                return;
            }
            m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Save stream info");
        }
예제 #29
0
        public void saveNTPNetworkInfo(NETDEV_SYSTEM_NTP_INFO_S stNTPInfo)
        {
            int iRet = NETDEVSDK.NETDEV_SetDevConfig(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_lpDevHandle, m_oNetDemo.m_curSelectedTreeChannelIndex + 1, (int)NETDEV_CONFIG_COMMAND_E.NETDEV_SET_NTPCFG, ref stNTPInfo, Marshal.SizeOf(stNTPInfo));

            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Set NTP cfg", NETDEVSDK.NETDEV_GetLastError());
                return;
            }
            m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Set NTP cfg");

            m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_channelInfoList[m_oNetDemo.m_curSelectedTreeChannelIndex].m_networkInfo.stNetWorkNTP = stNTPInfo;
        }
예제 #30
0
        public void saveOSDInfo(NETDEV_VIDEO_OSD_CFG_S stOSDInfo)
        {
            int iRet = NETDEVSDK.NETDEV_SetDevConfig(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_lpDevHandle, m_oNetDemo.m_curSelectedTreeChannelIndex + 1, (int)NETDEV_CONFIG_COMMAND_E.NETDEV_SET_OSDCFG, ref stOSDInfo, Marshal.SizeOf(stOSDInfo));

            if (NETDEVSDK.TRUE != iRet)
            {
                m_oNetDemo.showFailLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Save OSD cfg", NETDEVSDK.NETDEV_GetLastError());
                return;
            }
            m_oNetDemo.showSuccessLogInfo(m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_ip + " chl:" + (m_oNetDemo.m_curSelectedTreeChannelIndex + 1), "Save OSD cfg");

            m_deviceInfoList[m_oNetDemo.m_curSelectedTreeDeviceIndex].m_channelInfoList[m_oNetDemo.m_curSelectedTreeChannelIndex].m_OSDInfo.OSDInfo = stOSDInfo;
        }