8.5.2. Dane wejściowe

Program czyta dane ze standardowego wejścia. Spodziewa się linii następującej postaci:

<nazwa parametru> <rok> <miesiac> <dzien> <godzina> <minuta> <wartość>
Jeżeli któreś z pól ma zawierać spację, to powinno być wzięte w podwójny cudzysłów. Znak cudzysłowu może się pojawić, o ile zostanie poprzedzony znakiem '\'. Przykład:
"Bardzo:fajna:nazwa z \"cudzysłowem\"" 2004 10 28 20 19 6.38
Dodatkowo, jeżeli nazwa parametru kończy się wyrażeniem w nawiasach kwadratowych, to przyjmuje się że wyrażenie w nawiasach jest nazwą jednostki dla danego parametru. Nazwa jednostki dłuższa niż 5 znaków zostanie obcięta do pierwszych 5 znaków.

Program wczytuje kolejne linie z wejścia. Jeżeli parametr o podanej nazwie nie istnieje w konfiguracji a użyto opcji -n, jest do niej dodawany jako parametr definiowalny.

Jeżeli nazwa parametru pasuje do wzorca dla parametrów dwusłownych (patrz Sekcja 8.5.1), to precyzja parametru jest ustawiana na 0, tworzone są dwa parametry definiowalne o nazwach powstałych przez dodanie do nazwy z wejścia napisów 'lsw' i 'msw', a sam parametr jest dodawany jako parametr definiowalny przeglądającego, z odpowiednią formułą sklejającą dwa parametry definiowalne.

Jeżeli nowy parametr nie jest "dwusłowny", to jego precyzja jest ustalana na podstawie ilości miejsc po przecinku w polu wartości.

Zarówno ustalanie, czy parametr ma być zapisywany w dwóch słowach, jak i ustalanie precyzji parametru odbywa się tylko raz - przy pierwszym wystąpieniu parametru na wejściu. Nie jest możliwa zmiany tych własności później, gdyż wymagałoby to konwersji zapisanych wcześniej do bazy danych.

Podana wartość jest zapisywana do bazy, przy czym jeżeli bezpośrednio po sobie wystąpi więcej wartości, które mieszczą się w jednej 10-minutowej próbce (a więc np. wartość z 10:10 i 10:15), to do bazy zostanie zapisana ich średnia.

Jeżeli skonfigurowano zapisywanie próbek 10-sekundowych za pomocą programu prober, oraz nie użyto opcji -p, to program zapisze także próbki 10-sekundowe.

Puste miejsca zostaną wypełnione wartościami NO_DATA.

Ze względu na fakt, że program stara się jak najdłużej nie zamykać otwartego pliku, najbardziej wydajnie będzie pracował jeżeli wartości dla jednego parametru będą występowały bezpośrednio po sobie.

Podsumowując powyższe - prawidłowe i efektywne działanie programu wymaga aby linie wejściowe były pogrupowane najpierw po nazwie parametru, a następnie posortowane po dacie i czasie wartości. Najprościej uzyskać to przez wygenerowanie pliku, w którym wartości daty i czasu będą zapisane na stałej ilości znaków (dopełnione zerami), a następnie posortowanie go programem sort.