コード例 #1
0
        /// <summary>
        /// Reads this instance from a specified start index to a specified end index.
        /// </summary>
        /// <param name="startIndex">The start index.</param>
        /// <param name="endIndex">The end index.</param>
        public IList <short[]> Read(ulong startIndex, ulong endIndex)
        {
            _signals.Clear();
            int rows     = Convert.ToInt32(endIndex - startIndex + 1);
            int cols     = _labels.Count();
            var dataName = string.Concat("/", _groupName, "/Data");

            short[,] data = Hdf5.ReadDataset <short>(fileId, dataName, startIndex, endIndex);
            IEnumerable <short> dataEnum = data.Cast <short>();


            int      byteLength = sizeof(short) * rows;
            TimeSpan zeroSpan   = new TimeSpan(0);

            for (int i = 0; i < _readChannelCnt; i++)
            {
                //_signals.Add(new short[rows]);
                string lbl = _labels[i];
                int    nr  = _usedChannels[lbl];
                int    pos = nr * byteLength;
                var    ar  = dataEnum.Where((d, j) => (j - nr) % cols == 0);
                _signals.Add(ar.ToArray());
                //Buffer.BlockCopy(data, pos, _signals[i], 0, byteLength);
            }
            return(_signals);
        }