Exemple #1
0
        private void ProcessRecordData(UsbDataReceiveEventArgs e)
        {
            lock (_ringBuffer)
            {
                _ringBuffer.Put(e.Data, 0, e.Data.Length);

                bool found = true;
                int  start = Find(Begin1);

                ArrayList arr = new ArrayList();
                while (found)
                {
                    int count = _ringBuffer.Count();
                    found = start >= 0 &&
                            count > start + 2 + DataLength &&
                            _ringBuffer.ElementAt(start + 1) == Begin2;

                    if (found)
                    {
                        var len  = start + DataLength + 2;
                        var data = new byte[len];
                        _ringBuffer.Get(data, 0, len);

                        foreach (var channel in this.Channels.Where(c => c.IsRecording))
                        {
                            //channel.AddData(data[start + 2 + channel.Index]);
                            channel.AddData(data[start + 2 + channel.CurrentPOId]);
                        }

                        start = Find(Begin1);
                    }
                }
            }
        }