コード例 #1
0
        public uint StartSearch(SearchParaV3_1 param)
        {
            m_searchParam  = param;
            param.CameraID = SearchItem.CameraID;
            m_searchHandle = 0;
            if (SearchItem.IsHistoryTask)
            {
                if (param.StartTime != DataModel.Common.ZEROTIME)
                {
                    if (param.StartTime < SearchItem.AdjustTime)
                    {
                        param.StartTime = Common.ZEROTIME;
                    }
                    else
                    {
                        param.StartTime = Common.ZEROTIME.AddSeconds(param.StartTime.Subtract(SearchItem.AdjustTime).TotalSeconds);
                    }
                }
                if (param.EndTime != DataModel.Common.MAXTIME)
                {
                    if (param.EndTime < SearchItem.AdjustTime)
                    {
                        param.EndTime = Common.ZEROTIME;
                    }
                    else
                    {
                        param.EndTime = Common.ZEROTIME.AddSeconds(param.EndTime.Subtract(SearchItem.AdjustTime).TotalSeconds);
                    }
                }
                param.ResultNumRange = int.MaxValue;
            }
            var comparesort = (E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_GLOBAL | E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_PARTICAL | E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_PASSLINE);

            param.SortType = (((E_SEARCH_FEATURE_TYPE)param[SDKConstant.FeatureType] & comparesort) > 0) ? SortType.SimilarityDes : SortType.TimeAsc;

            if (((E_SEARCH_FEATURE_TYPE)param[SDKConstant.FeatureType] & E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_GLOBAL) > 0 &&
                ((E_SEARCH_FEATURE_TYPE)param[SDKConstant.FeatureType] & E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_PARTICAL) > 0)
            {
                param[SDKConstant.FeatureType] = (E_SEARCH_FEATURE_TYPE)param[SDKConstant.FeatureType] ^ E_SEARCH_FEATURE_TYPE.E_SEARCH_FEATURE_TYPE_GLOBAL;
            }
            if (m_isInited)
            {
                m_searchHandle = SearchService.ADD_TASK(param, SearchItem);
            }
            return(m_searchHandle);
        }