Пример #1
0
        /// <summary>
        /// Callback function To receive data series from the Arduino
        /// </summary>
        /// <param name="arguments"></param>
        private void OnReceiveData(ReceivedCommand arguments)
        {
            var currentChannel = arguments.ReadBinUInt16Arg();

            if (_currentChannel != currentChannel)
            {
                if (_traceBuffer.Any())
                {
                    var trace = new SeismicTrace(_traceBuffer.ToArray());
                    trace.Header.Station      = _currentChannel.ToString();
                    trace.Header.ChannelType  = ChannelType.Z;
                    trace.Header.StartTime    = _timeTriggered;
                    trace.Header.SamplingRate = 3750;
                    _traces.Add(trace);
                    _traceBuffer.Clear();
                }
                _currentChannel = currentChannel;
                if (currentChannel != 0)
                {
                    _form.CaptionWaitFor("Transfering Data from " + currentChannel);
                }
            }

            // Read data packet (consist of 8 samples)
            for (int i = 0; i < 8; i++)
            {
                var receiveValue = (float)arguments.ReadBinInt32Arg();
                _traceBuffer.Add(receiveValue);
                //Debug.WriteLine(receiveValue);
            }

            if (_traces.Count != _form.NumberOfChannels)
            {
                return;
            }
            _form.CloseWaitForm();
        }