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(); } }