Wpis z mikrobloga

#arduino

Loguję dane na karcie SD przez zapis stringów. Wiersz kończy się odpowiednim znakiem końca linii. Np:
Czas;temp;wilg;itp:LF
Chciałbym teraz odczytać takie dane, ale nie wiem jak przeskoczyć do wiersza i pobrać cały string. O dzieleniu stringów czytałem, nie powinno być z tym problemu.
Jak zrealizować to zadanie? Dodam, że czas jest zapisywany w formacie uniksowym.
  • 4
@KokiX: dokładnie jak napisał kolega @zachwiej. Niestety procesowanie plików z kart SD na Arduino jest dość toporne bo robisz to znak po znaku. Tak więc żeby wczytaj całą linię robisz abc=SD.readUntil("\n") a potem operujesz na abc. Niestety nie da się "przeskoczyć" do wiersza, więc żeby wczytaj kolejny musisz znów zrobić abc=SD.readUntil("\n"). Licząc ilość "przeskoczeń" możesz określić nr wiersza w którym się znajdujesz. Parsowanie wiersza na pojedyńcze parametry możesz zrobić tak
@Kyokub: hmm, to trochę czeka mnie kombinacji. Zrobiłem układ rejestrujący dane pogodowe i teraz chciałem wykorzystać dane z dnia poprzedniego (tylko wczorajszego) do przewidywania stanu pogody dnia bieżącego. Nie wiem czy nie obejść tego w jakiś prostszy sposób, na przykład utworzyć tablicę z wartościami przeliczonymi, która będzie się zapisywać na bieżąco przy odczycie danych, a następnego dnia wykorzystam z niej dane do obliczeń.

Nie mają to być skomplikowane działania, na przykład
@KokiX: Ja na twoim miejscu robiłbym raczej to na pamięci trwałej. Zawsze może się zdarzyc, że ci się Ardu zrestartuje z jakiegoś powodu i trzymając dane w tabeli w pamięci stracisz je. Twórz sobie na karcie SD pliki które w nazwie mają datę. Otwierasz sobie pliczek i pierwszą pętląwczytujesz linię,i parsujesz sobie dane do zmiennych. Kodu będzie naprawdę niewiele. Parę tysiecy wierszy z pliku przerobisz w parę sekund więc luzik no