Strona główna Dokumentacja wariometru SkyAssistant Bloki funkcjonalne Generator komunikatów słownych

Format pliku SAW

Plik SAW zawiera skompilowane sample z wymową komunikatów słownych. Struktura fragmentu pamięci flash przeznaczonej do przechowywania sampli wygląda następująco:
Adres strony Opis
0x000 spis treści
0x001 sampel 1
0x002 sampel 1
... ...
n sampel 1
n+1 sampel 2
n+2 sampel 2
... ...
... ...
0x1FF ostatnia strona przeznaczona na sample

Pierwsza strona (512B) jest zarezerwowana na spis treści, pozostała część pamięci jest przeznaczona na przechowywanie sampli. Każdy sampel zaczyna się od nowej strony tak aby do przechowywania jego adresu wystarczyło 16 bitów.
Struktura dwóch stron spisu treści wygląda następująco:
Adres Opis
0x000 ADR0H ADR0L DLG0H DLG0L ADR1H ADR1L DLG1H DLG1L
0x008 ADR2H ADR2L DLG2H DLG2L ADR3H ADR3L DLG3H DLG3L
... ...
0x0F8 ADR126H ADR126L DLG126H DLG126L ADR127H ADR127L DLG127H DLG127L
Legenda:
Adres - adres bajtów pamięci w obrębie dwóch stron spisu treści
ADRxxxL - młodszy bajt adresu początku sampla
ADRxxxH - starszy bajt adresu początku sampla
DLGxxxL - młodszy bajt długości sampla
DLGxxxH - starszy bajt długości sampla

Taki układ spisu treści pozwala na zaadresowanie 128 sampli. Maksymalny rozmiar jednego sampla nie może być większy niż 2^16 / 8e3 = 8,192s.

W obecnej wersji do przechowywania sampli przeznaczony jest następujący zakres pamięci o adresach stron od 0x000 do 0x3FF. Docelowo planuję zaimplementowanie dynamicznego podziału pamięci między samplami i logiem. Na podstawie wpisów w spisie treści program będzie wiedział gdzie kończy się pamięć sampli i może zacząć pamięć logu. Modyfikując zestaw sampli można będzie regulować podział pamięci. W granicznym przypadku wgrywając zestaw sampli o rozmiarze zerowym pamięć sampli ograniczy się tylko do samego spisu treści.