www.label.pl | LAB-EL Elektronika Laboratoryjna
Elektronika Laboratoryjna
    
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
See also
Zobacz również