Jak odtworzyć próbki w czasie

Jak odtworzyć próbki w czasie
UA
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam, mam zgromadzoną pewną listę w postaci pary wartości oraz chwili w której wystąpił pomiar, występują one w różnych interwałach. Chciałbym teraz zgodnie z ich chwilą wystąpienia odtworzyć je w . czasie. Jak to zrobić, czy są jakieś mechanizmy w .NET służące do odtwarzania próbek w czasie.

jarzi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 96
0

Co znaczy odtwarzania próbek w czasie ?
Chcesz posortować słownik względem czasu?

neves
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1114
0

chyba chodzi o interpolację wielomianową, dla której nie ma wsparcia w standardowej bibliotece, ale pewnie jakieś numeryczne biblioteki by się znalazły.

UA
  • Rejestracja: dni
  • Ostatnio: dni
0

Mam posortowane te wartości względem czasu, chodzi mi tylko o wyświetlenie ty wartości w czasie w którym zostały zapisane. np w 1 i 3 i 4 sekundzie próbki zostały zarejestrowane, więc po przyciśnięciu w przycisk play właśnie po takim czasie próbki powinny się wyświetlić w labelce/labelkach.

JP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1065
0

Zapis pierwszego czasu do zmiennej timeStart.
Timeer co 1s.
W zdarzeniu tunera dodajesz ilość sekund jakie upłynęły ( trzeba zaliczać w zmiennej), dodajesz do pierwszego czasu i wyświetlacz pierwszą wartość, która ma czas mniejszy niż timeStart - ilooscsekund. Jesli nie pokreciles bo mnie łeb napierd...

jarzi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 96
0

Możesz to zrobić coś a'la:

Kopiuj
        private void ChangeLabelText()
        {
            _dict = new Dictionary<double, string>
            {
                {1000, "test1"}, {4000, "test2"}, {6000, "test3"}, {10000, "test4"}
            };
            const double startTime = 1000;
            _stringTimer = new Timer {Interval = startTime};
            _stringTimer.Elapsed += OnLabelTextElapsed;
            _stringTimer.Start();
        }

        private void OnLabelTextElapsed(object sender, ElapsedEventArgs e)
        {
            if (sender is Timer s) s.Interval = _dict.ElementAt(_index).Key;
            label1.Text = _dict.ElementAt(_index).Value;
            ++_index;
        }
UA
  • Rejestracja: dni
  • Ostatnio: dni
0

Pomysł dosyć dobry, ale będzie problem bo czas jest wyrażony w mikrosekundach i jest z dokładnością do 20 mikrosekund, a z tego co wyczytałem nie da się zejść z timerem poniżej 1 ms

JP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1065
0

No ale te wartości zmieniają się realnie co 20 mikrosekund? I chcesz zobaczyć taką zmianę białkowym okiem?
Win w ogóle nie przerysuje okna w 20 mikrosekund. Fizyka Panie.
Jakie jest realny czas zmian wartości?

Przeskaluj sobie te mikrosekundy do milisekund w Dictionary w przykładzie @jarzi. I Timer co, no nie wiem, 10 ms (i tak chyba będą problemy).

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

Powoli, powoli.

  1. Co zawierają te Twoje próbki?
  2. Co rozumiesz poprzez odtworzenie w czasie?
  3. Co chcesz osiągnąć?

Nie skupiaj się w ogóle na szczegółach implementacyjnych (w stylu timer nie może działać z prędkością 20 us) - opowiedz o o co chodzi z punktu widzenia biznesu.

UA
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie wiem dokładnie jaki ma być efekt końcowy, mam zrobić wedle własnego pomysłu więc mówię, jak zrobię całość zobaczymy jakie są uwagi od kierowników i ewentualnie wam powiem.

JP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1065
0

WTF? Nie wiesz jaki ma być efekt końcowy? To jakiś wyższy poziom agile-a czy praca w NSA? :)

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

mam zrobić wedle własnego pomysłu

Ale co masz zrobić według własnego pomysłu? Jaka jest idea całego projektu?

Nie odpowiedziałeś na ani jedno z trzech pytań - w jaki sposób mamy pomóc, skoro nie wiemy o co w tym wszystkim chodzi?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.