У меня есть этот код:
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: Я немного изменил свой вопрос, теперь я хочу масштабировать график, чтобы показать точки за последний час / день