Rejestrator

Zadaniem rejestratora jest zapis na karcie SD wyników pomiarów. Pomiary powinny być wykonane w regularnych odstępach czasu. Kiedy zbierze się blok albo minie ustalony czas należy zapisać wyniki na karcie. Rejestrator powinien nasłuchiwać na porcie szeregowym na polecenia. Po otrzymaniu polecenia powinem odczytać z karty zapisane wyniki i przesłać je portem szeregowym.

Komentarz: Skrajnie uproszczona wersja rejestratora pojawia się jako przykład 'Datalogger' do biblioteki SD. Chodzi o trochę lepszą wersję, w szczególności o zarządzanie przez port szeregowy.

Komentarz: Rejestratory są szeroko używane do celów zbierania danych naukowych, technicznych czy do nadzoru. Zależnie od przeznaczenia są różne wymagania dotyczące kiedy dane powinny się znaleźć na karcie. Niekiedy wymaga się by dane były zapisane "natychmiast" po tym jak będą dostępne. W innych sytuacjach można tolerować dość długi odstęp pomiędzy otrzymaniem danych a ich zapisem na kartę. Jeśli wymagania problemu nie stanowią inaczej dobrze jest buforować dane w pamięci tak długo aż zbierze się cały blok (512 bajtów). Karty zapisują dane blokami i zapis fragmentu bloku wymaga skasowania poprzedniej wersji bloku i zapis nowej. Karty SD mają ograniczoną ilość cykli kasowanie-zapis, ponadto jednostka kasowania jest często wieksza niż blok zapisu, dlatego zapis jednostek mniejszych niż blok znacznie bardziej zużywa kartę niż zapis całych bloków. Układ zarządzający kartą stara się zmniejszać wpływ częstych zmian bloków remapując bloki i rozdzielając zapisy równomiernie po całej dostępnej przestrzeni. Jednakże skuteczność tego typu zabiegów zależy od producenta karty. Ponadto gdy następuje zmiana wielu bloków nawet dobry układ zarządzanie nie może wiele pomóc. Toteż decyzja o buforowaniu lub nie musi być kompromisem między ryzykiem utratu danych z powodu opóźninego zapisu a zużyciem karty. Np. jeśli chcemy rejestrować przez dłuższy czas bez nadzoru w sposób ciągły to ewentualny problem z rejestratorem spowoduje utratę pewnej częsci danych i stata danych w buforze może tylko niezacznie powiększyć straty. Wtedy raczej należy powiększyć niezawodność rejestratora (i jego zasilania) niż starać się zmniejszać straty przez unikanie buforowania. W innych sytacjach chcemy uniknąć buforowania, np. jeśli rejestator jest podłączony do instalcji samolotu czy samochodu i ma zbierać dane pozwalające wyjaśnić okoliczności ewentualnego wypadku. W razie wypadku rejestrator może utracić zasilanie i buforowane dane, a oczywiście dane tuż przed wypadkiem są najbardziej interesujące.