Cześć,
Potrzebuję możliwie szybkiej i nie obciążającej obsługi wyświetlania danych na wykresie w Windows Form Application. Dodatkowo chciałbym, żeby obsługa wykresu była jak najbardziej manualna, to jest zlikwidować autodopasowywanie osi itp. Chciałbym także sterować ilością miejsc po przecinku w wyświetlanych wartościach. Niestety nie znalazłem nic interesującego na wyżej wymienione tematy. Jak na razie robiłem to w taki sposób:
Chart.Series["series1"].Points.Clear();
byte[] Bytes_array = new byte[Double_Number_of_Points];
serialPort1.Read(Bytes_array, 0, Double_Number_of_Points);
ushort joined, index = 0, max_amp = 0, min_amp = 1023; //1023 - maksymalna wartość joined
byte High, Low;
for (int i = 0; i < Number_of_Points; i++)
{
Low = Bytes_array[index];
index++;
High = Bytes_array[index];
index++;
joined = Join_bytes(High, Low); //funkcja 2x 8bit => 16bit
if (joined > max_amp) max_amp = joined;
if (joined < min_amp) min_amp = joined;
Chart.Series["series1"].Points.AddXY(i * Constants.ValueX_i, joined * Constants.constant_amplitude);
}
oraz obsługa "automatycznego" dopasowywania osi Y:
if (Auto_checkbox.Checked == true)
{
Chart.ChartAreas[0].AxisY.Maximum = (max_amp + 5) * Constants.constant_amplitude;
Chart.ChartAreas[0].AxisY.Minimum = (min_amp - 5) * Constants.constant_amplitude;
}
Na pewno da się to zrobić lepiej, i tu liczę na wasze rady i podpowiedzi, gdyż z tego typu problemem jeszcze nie miałem do czynienia.
Dzięki wielkie!