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.
Co znaczy odtwarzania próbek w czasie
?
Chcesz posortować słownik względem czasu?
chyba chodzi o interpolację wielomianową, dla której nie ma wsparcia w standardowej bibliotece, ale pewnie jakieś numeryczne biblioteki by się znalazły.
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.
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...
Możesz to zrobić coś a'la:
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;
}
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
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).
Powoli, powoli.
- Co zawierają te Twoje próbki?
- Co rozumiesz poprzez
odtworzenie w czasie
? - 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.
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.
WTF? Nie wiesz jaki ma być efekt końcowy? To jakiś wyższy poziom agile-a czy praca w NSA? :)
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.