private void processTimeSeries(String itemName, byte[] rowbytes)
    {
        try
        {
            _series.decode(itemName, rowbytes);
            if (_first)
            {
                _first = false;
                String[] rics = _series.getRics();
                int[] sampleCounts = _series.getSampleCounts();
                int sampleCount = sampleCounts[0];
                // skip primary record
                for (int i = 1; i < rics.length && sampleCount < _numberOfSamples; i++)
                {
                    sampleCount += sampleCounts[i];
                    String ric = rics[i];
                    request(ric);
                }
            }
            if (isComplete())
            {
                _numberOfSamples = Math.min(_numberOfSamples, _series.getNumberOfSamples());
                if (_client != null)
                    _client.processTimeSeriesComplete(this);
            }
        }
        catch (TS1Exception e)
        {
            e.printStackTrace();
        }
    }