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