Как просмотреть последние 10 точек данных на диаграмме, которая обновляется каждую секунду?

У меня есть этот код:

private void timer_Tick(object sender, EventArgs e)
    {
        timer.Stop();
        for (int i = 0; i < TOTAL_SENSORS; i++)
        {
            DateTime d = DateTime.Now;
            devices[i].Value = float.Parse(serialPort.ReadLine());
            if (chart1.Series[i].Points.Count > MAX_POINTS)
            {
                //see the most recent points
            }
            chart1.Series[i].Points.AddXY(d, devices[i].Value);
        }
        timer.Start();
    }

Эта часть моего кода является событием тика таймера, когда я рисую диаграмму, и мне нужно обновлять ее каждый тик. Я продолжаю добавлять точки, и когда количество точек достигает MAX_POINTS ( 10) удаляет первую точку , а добавляет новую в конце.

Проблема в том, что когда он достигает MAX_POINTS, он начинает удалять точки в конце, и график не прокручивается автоматически. Все точки удаляются, и новые точки не добавляются.

Пожалуйста, помогите мне и скажите, что мне нужно, чтобы диаграмма работала, как я сказал.

РЕДАКТИРОВАТЬ 1: Я использую Windows Forms.

РЕДАКТИРОВАТЬ 2: AddXY и RemoveAt не мои, они из коллекции точек.

РЕДАКТИРОВАТЬ 3: Я также хочу знать, как иметь «область действия» и видеть данные за последний час, или за последнюю неделю, или за последний месяц.

РЕДАКТИРОВАТЬ 4: Я немного изменил свой вопрос, теперь я хочу масштабировать диаграмму, чтобы показать точки за последний час / день

5
задан Nick Knowlson 25 August 2011 в 00:51
поделиться