示例#1
0
        protected override int StartFind(int userId, DateTime periodStart, DateTime periodEnd, int channel)
        {
            NET_DVR_FIND_PICTURE_PARAM findConditions = new NET_DVR_FIND_PICTURE_PARAM
            {
                lChannel      = channel,
                byFileType    = 0xff, // all
                struStartTime = new NET_DVR_TIME(periodStart),
                struStopTime  = new NET_DVR_TIME(periodEnd)
            };

            return(SdkHelper.InvokeSDK(() => NET_DVR_FindPicture(userId, ref findConditions)));
        }
示例#2
0
 private static extern int NET_DVR_FindPicture(int lUserID, ref NET_DVR_FIND_PICTURE_PARAM pFindParam);
        public void NET_DVR_FindPictureTest()
        {
            PublicClassCurrency.VideoInfo           vInfo      = TestDataSource.HikDataSource.GetHikData2();
            SDK_HikClientSDK.NET_DVR_DEVICEINFO_V30 DeviceInfo = new SDK_HikClientSDK.NET_DVR_DEVICEINFO_V30();
            //登录设备
            int m_lUserID = SDK_HikClientSDK.NET_DVR_Login_V30(vInfo.DVSAddress, vInfo.DVSConnectPort, vInfo.UserName, vInfo.Password, ref DeviceInfo);

            NET_DVR_FIND_PICTURE_PARAM para = new NET_DVR_FIND_PICTURE_PARAM();

            para.dwSize     = (uint)Marshal.SizeOf(para);
            para.lChannel   = 1;
            para.byFileType = 0;
            DateTime tim = DateTime.Parse("2018-05-30 21:41:30");
            //DateTime timStart = DateTime.Now.AddSeconds(-70);
            DateTime timStart = tim.AddSeconds(-70);

            SDK_HikClientSDK.NET_DVR_TIME Stime = new SDK_HikClientSDK.NET_DVR_TIME();
            Stime.dwYear       = uint.Parse(timStart.Year.ToString());
            Stime.dwMonth      = uint.Parse(timStart.Month.ToString());
            Stime.dwDay        = uint.Parse(timStart.Day.ToString());
            Stime.dwHour       = uint.Parse(timStart.Hour.ToString());
            Stime.dwMinute     = uint.Parse(timStart.Minute.ToString());
            Stime.dwSecond     = uint.Parse(timStart.Second.ToString());
            para.struStartTime = Stime;
            //DateTime timEnd = DateTime.Now.AddSeconds(-60);
            DateTime timEnd = tim.AddSeconds(-60);

            SDK_HikClientSDK.NET_DVR_TIME Etime = new SDK_HikClientSDK.NET_DVR_TIME();
            Etime.dwYear      = uint.Parse(timEnd.Year.ToString());
            Etime.dwMonth     = uint.Parse(timEnd.Month.ToString());
            Etime.dwDay       = uint.Parse(timEnd.Day.ToString());
            Etime.dwHour      = uint.Parse(timEnd.Hour.ToString());
            Etime.dwMinute    = uint.Parse(timEnd.Minute.ToString());
            Etime.dwSecond    = uint.Parse(timEnd.Second.ToString());
            para.struStopTime = Etime;
            int lFindHandle = SDK_HikClientSDK.NET_DVR_FindPicture(m_lUserID, ref para);
            NET_DVR_FIND_PICTURE lpFindData = new NET_DVR_FIND_PICTURE();
            bool     bolEnd        = false;
            string   strPath       = @"C:\SHIKE_Video\9999\Pic";
            int      Temp_intCount = 1;
            DateTime Temp_tim      = DateTime.Now.AddYears(-10);

            while (!bolEnd)
            {
                long lResult = NET_DVR_FindNextPicture(lFindHandle, ref lpFindData);
                switch (lResult)
                {
                case 1000:
                    //下载图片
                    NET_DVR_TIME  t      = lpFindData.struTime;
                    StringBuilder sb     = new StringBuilder();
                    DateTime      timPic = ConvertToDateTime(lpFindData.struTime);
                    if (Temp_tim == timPic)
                    {
                        Temp_intCount++;
                    }
                    else
                    {
                        Temp_tim      = timPic;
                        Temp_intCount = 1;
                    }

                    string strFileName = lpFindData.sFileName;
                    sb.Append(timPic.ToString("yyyyMMddHHmmss") + "_" + Temp_intCount + "_");
                    sb.Append(strFileName.Substring(0, strFileName.IndexOf("_")));
                    string strFilePath = strPath + "\\" + sb.ToString() + ".jpg";
                    NET_DVR_GetPicture(m_lUserID, lpFindData.sFileName, strFilePath);
                    Thread.Sleep(30);
                    break;

                case 1002:
                    Thread.Sleep(30);
                    break;

                case 1001:      //未查找到
                case 1003:      //查找结束
                case 1004:      //查找文件异常
                    bolEnd = true;
                    NET_DVR_CloseFindPicture(lFindHandle);
                    break;
                }
            }
            //Thread.Sleep(5000);

            Assert.Fail();
        }