Beispiel #1
0
        public void FromBytes(byte[] buffer, int offset, int length)
        {
            Int32             newOffset = offset;
            SearchFileRequest fileinfo  = new SearchFileRequest();
            Int32             count     = length / fileinfo.GetLength();

            FileInfos = new SearchFileRequest[count];
            for (int i = 0; i < count; i++)
            {
                SearchFileRequest fileinfo2 = new SearchFileRequest();
                fileinfo2.FromBytes(buffer, newOffset, length);
                newOffset   += fileinfo2.GetLength();
                FileInfos[i] = fileinfo2;
            }
        }
        void GetFileTest()
        {
            SearchFileRequest searchFileRequest = new SearchFileRequest()
            {
                ChannelNo = 0, Beg = new SystemTimeInfo(2017, 7, 4, 8, 0, 0), End = new SystemTimeInfo(2017, 7, 4, 13, 0, 0), Type = 0
            };
            SearchFileResponse searchFileResponse = m_howell5198client.SearchFile(searchFileRequest);

            if (searchFileResponse == null)
            {
                Console.WriteLine("SearchFile error");
                return;
            }
            Console.WriteLine("searchFileResponse: filecount:{0}", searchFileResponse.FileInfos.Length);
            if (searchFileResponse.FileInfos.Length > 0)//搜索到录像文件的话
            {
                GetFileInfoRequest getFileInfoRequest = new GetFileInfoRequest();
                getFileInfoRequest.ChannelNo = searchFileResponse.FileInfos[0].ChannelNo;
                getFileInfoRequest.Beg       = searchFileResponse.FileInfos[0].Beg;
                getFileInfoRequest.End       = searchFileResponse.FileInfos[0].End;
                GetFileInfoResponse getFileInfoResponse = m_howell5198client.GetFileInfo(getFileInfoRequest);
                if (getFileInfoResponse == null)
                {
                    Console.WriteLine("GetFileInfo error");
                    return;
                }
                Console.WriteLine("getFileInfoResponse: FileFormatType:{0}", getFileInfoResponse.FileFormatType);
                //构建HW头
                HW_MediaInfo media = new HW_MediaInfo();
                media.Dvr_version = getFileInfoResponse.FileFormatType;
                media.Adec_code   = getFileInfoResponse.Audio_dec;
                media.Vdec_code   = getFileInfoResponse.Video_dec;
                media.Reserved[0] = (8 << 24) + (8 << 16) + (1 << 8) + 0;//au_bits+au_sampleau_sample+au_channel+reserve

                GetFileRequest getFileRequest = new GetFileRequest();
                getFileRequest.ChannelNo = searchFileResponse.FileInfos[0].ChannelNo;
                getFileRequest.Beg       = searchFileResponse.FileInfos[0].Beg;
                getFileRequest.End       = searchFileResponse.FileInfos[0].End;
                getFileRequest.Type      = searchFileResponse.FileInfos[0].Type;
                Howell5198FileStream filestream = m_howell5198client.GetFile(getFileRequest);
                filestream.FileDataReceived += howell5198client_FileDataReceived;
                filestream.StartReceive();
                Thread.Sleep(1000);
                filestream.StopReceive();
            }
        }