void UpdateData() { // "scroll" the whole chart to the left Array.Copy(liveData, 1, liveData, 0, liveData.Length - 1); // place the newest data point at the end double nextValue = ecg.GetVoltage(sw.Elapsed.TotalSeconds); liveData[liveData.Length - 1] = nextValue; }
private void timerUpdateData_Tick(object sender, EventArgs e) { double nextValue = ecg.GetVoltage(sw.Elapsed.TotalSeconds); if (rollCheckbox.Checked) { // "roll" new values over old values like a traditional ECG machine nextValueIndex = (nextValueIndex < liveData.Length - 1) ? nextValueIndex + 1 : 0; liveData[nextValueIndex] = nextValue; vline.IsVisible = true; vline.X = nextValueIndex; } else { // "scroll" the whole chart to the left Array.Copy(liveData, 1, liveData, 0, liveData.Length - 1); liveData[liveData.Length - 1] = nextValue; vline.IsVisible = false; } }