Witam, mam problem z projektem.
Tworzę program który pobiera dane z portu COM i tworzy na ich podstawie wykres. Wykres obejmuje 120 punktów X (odpowiadającym 1 sek). Po zapełnieniu 120 punktów wykres powinien się przesuwać (coś jak EKG). Przesuwanie działa mi, tylko po pierwszej kolekcji danych (120 wyników), następna tworzy "wyrwę" tak jakby dostał dla kilku X z rzędu Y=0. Później już przesuwanie działa bez zarzutu.
Przesyłam screen jak to mniej więcej wygląda i kawałek kodu odpowiedzialny za "przesuwanie wykresu". Wartość obok wykresu na screenie to wartość jaką otrzymuje program. Nie zmieniała się podczas budowania wykresu. (dla tego przypadku)
Zmienna licznik określa pozycję na osi X.
Zmienna tablica przechowuje dane dla osi (tablica[1]=25 to na osi x=1 y=25)
if(licznik!=120)
{
tablica[licznik]=wartosc;
wykres.Series["ods"].Points.AddXY(licznik,wartosc);
label4.Text=Convert.ToString(tablica[licznik]);
licznik++;
}
else //tutaj przy pierwszym wykonaniu zaczyna się błąd
{
wykres.Series["ods"].Points.Clear();
for (int g = 1; g<licznik; g++)
{
wykres.Series["ods"].Points.AddXY(g,tablica[g+1]);
tablica[g]=tablica[g+1];
}
tablica[licznik]=wartosc;
wykres.Series["ods"].Points.AddXY(licznik,wartosc);
label4.Text=Convert.ToString(tablica[licznik]);
}
Pozdrawiam i dziękuję z góry z pomoc.