1. Struktura strony rejestracji ------------------------------- | Naglowek | Dane | Trailer | ewentualne dane nieistotne | | 1bajt | ... | 1bajt | uzupelnienie do 256 bajtow | 1a. Naglowek ------------ 00 - strona otwarta (do tej strony dopisywane sa dane) 01 - strona zamknieta (wypelniona) FF - pusta 1b. Dane -------- W obszarze danych moga wystepowac dwa rodzaje rekordow: - rekord kontrolny - rekord danych Pierwszy rekord w obszarze danych powinien byc kontrolny. Kolejne rekordy moga byc dowolnego rodzaju. Rodzaj rekordu rozpoznaje sie po najstarszym bicie pierwszego bajtu: 0 - rekord danych 1 - rekord kontrolny 1c. Trailer ----------- Bajt o wartosci FF - pozostale nastepujace po Trailerze bajty nalezy zignorowac. 2. Rekord kontrolny ------------------- | Flagi | Time | Intv | | 1bajt | 4bajty | 2bajty | 2a. Flagi --------- Flagi w naglowku rekordu kontrolnego opisuja strukture rekordow danych nastepujacych po biezacym rekordzie kontrolnym. Dane rekordu kontrlnego obowiazuja do konca strony, chyba ze wystapi inny rekord kontrolny. Flagi bitowo: 7 - zawsze 1 (oznacza rekord kontrolny) 6 - zero 5 - jesli jeden, to zapisywanie drugiej temperatury (T2) 4 - jesli zero, to zapisywane cisnienie (P) 3 - jesli zero, to zapisywana wilgotnosc (RH) 2 - jesli zero, to zapisywana temperatura (TA) 1 - jesli jeden, to zapis temperatur w szerokim zakresie 0 - jesli jeden, to zapis temperatur w rozdzielczosci 0.01 stC ; jesli zero, to w rozdzielczosci 0.1 stC 2b. Time -------- Czas zapisu rekordu kontrolnego i nastepujacego bezposrednio za nim (jesli istnieje) rekordu danych. Czas zapisany jest jako liczba sekund ktore uplynely od godziny 00:00:00 1 stycznia 2000. 2c. Intv -------- Interwal zapisow w minutach. Z tej wartosci i wartosci zapisanej w polu Time wynikaja czasy zapisu kolejnych rekordow danych. 3. Rekord danych ----------------- Ponizej pokazana przykladowa struktura rekordu danych rozpisana na bity: | Z e h h h h h h | h h h h u p p p | p p p p p p p p | p p p ..... | 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0 | 7 6 5 ..... | bajt 1. | bajt 2. | bajt 3. | bajt 4. Z - zawsze zero (oznacza rekord danych) e - oznacza blad wyniku pierwszego zapisanego parametru (0-ok ; 1-blad) h..h - wartosc pierwszego zapisanego parametru -- dlugosc reprezentacji i sposob kodowania zalezny od rodzaju parametru (tu pokazano wilgotnosc - 10 bitow danych) u - oznacza blad wyniku drugiego zapisanego parametru (0-ok ; 1-blad) p..p - wartosc drugiego zapisanego parametru -- dlugosc reprezentacji i sposob kodowania zalezny od rodzaju parametru (tu pokazano cisnienie - 14 bitow danych) - to, ktore parametry beda wchodzily do rekordu danych, zalezy od pola Flag w bezposrednio poprzednim rekordzie kontrolnym - parametry sa dosuwane do lewej strony (jak pokazano powyzej), - parametry wystepuja w kolejnosci (jesli nie sa pominiete) - wilgotnosc (RH) -- 1 bit bledu + 10 bitow danych zapisane w [0.1 %] - cisnienie (P) -- 1 bit bledu + 14 bitow danych zapisane w [0.1 hPa] - temperatura (TA) -- 1 bit bledu + N bitow danych - druga temperatura (T2) -- 1 bit bledu + N bitow danych - w ostatnim bajcie rekordu danych moga wystepowac niewykorzystane bity, bo kazdy nastepny rekord danych zaczyna sie na granicy bajtu. Kodowanie temperatury zalezy od flag 0 i 1 w rekordzie kontrolnym. fl.1 fl.0 N[bitow] zakres[stC] rozdz. ------------------------------------------------ 0 0 11 -40..+85 [0.1 stC] 0 1 14 -40..+85 [0.01 stC] <*> 1 0 14 -200..+550 [0.1 stC] 1 1 17 -200..+550 [0.01 stC] - ujemne wartosci temperatury zapisywane sa (poza przypadkiem ozn.<*>) w U2 (kodzie uzupelnien do dwoch) - w przypadku oznaczonym <*> aby odkodowac wartosc temperatury nalezy od wartosci zapisanej odjac stala 4000. Np: jesli z pamieci rejestrujacej odczytano wartosc 1234, to po odjeciu 4000 otrzymuje sie -2766, czyli ostatecznie wartosc temperatury to -27,66 stC. 4a. Przyklad#1 -------------- Dla danych z pamieci: 01 B1 0E AA 45 3B 00 01 40 02 ED C5 A9 80 40 02 ED E5 A9 C0 FF .... -- rekord kontrolny -- 01 - strona zamknieta B1 - bitowo: 1 0 1 1 0 0 0 1 - zapisywane sa: T2, RH oraz TA - temperatura z rozdzielczoscia 0.01 stC w zakresie -40..+85 0E AA 45 3B - pierwszy rekord z data 18-paz-07 16:24 00 01 - interwal 1 min -- rekordy danych -- 40 02 ED C5 A9 80 - rekord danych #1, bitowo: 0 - bit zero na poczatku rekordu danych 1 0 0 0 0 0 0 0 0 0 0 - wilgotnosc - bledna wartosc bo pierwszy bit 1 0 0 1 0 1 1 1 0 1 1 0 1 1 1 0 - temperatura (TA): 5998-4000=1998 => 19,98 stC 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 - temperatura (T2): 5798-4000=1798 => 17,98 stC 0 0 0 0 0 0 - niewykorzystane bity 40 02 ED E5 A9 C0 - rekord danych #2: 19,99 i 17,99 stC (18-paz-07 16:25) FF - terminator strony 4b. Przyklad#2 -------------- Dla danych z pamieci: 00 8A 0E AA 48 B5 00 03 27 9C 7F 9C 27 9C 7F 9C FF ... -- rekord kontrolny -- 00 - strona otwarta 8A - bitowo: 1 0 0 0 1 0 1 0 - zapisywane sa: TA, P - temperatura z rozdzielczoscia 0.1 stC w zakresie -200..+550 0E AA 48 B5 - 18-paz-07 16:39 00 03 - interwal 3 min -- rekordy danych -- 27 9C 7F 9C - rekord danych #1, bitowo: 0 - bit zero na poczatku rekordu danych 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 - cisnienie (P): 10140 => 1014,0 hPa 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 - temperatura (TA): bit bledu nie jest ustawiony, wiec wartosc jest poprawna ; tu przyjete jest kodowanie U2, wiec ustawiony pierwszy bit danych swiadczy o ujemnej wartosci: -50 => -5,0 stC 0 - niewykorzystane bity 27 9C 7F 9C - rekord danych #2: wartosci jw. (18-paz-07 16:42) FF - terminator strony