Rozdział 5. IPK - konfiguracja systemu SZARP

Spis treści
5.1. Koncepcja
5.1.1. Po co nowy format konfiguracji
5.1.2. Założenia
5.2. Format pliku IPK
5.2.1. Struktura pliku
5.2.2. Element params
5.2.3. Element device
5.2.4. Elementy radio i unit
5.2.5. Element send
5.2.6. Element param
5.2.7. Element value
5.2.8. Element define
5.2.9. Element raport
5.2.10. Element draw
5.2.11. Element treenode
5.2.12. Element analysis
5.2.13. Przykłady elementów param
5.2.14. Elementy defined i drawdefinable
5.2.15. Elementy boilers oraz boiler
5.2.16. Element interval
5.2.17. Elementy seasons oraz season
5.2.18. Elementy i atrybuty z innych przestrzeni nazw
5.3. Tworzenie i edycja konfiguracji
5.3.1. Używanie konfiguracji w formacie IPK
5.3.2. Narzędzia do plików XML
5.3.3. Konwersja konfiguracji SZARP 2.1 na IPK.
5.3.4. Konwersja konfiguracji IPK na SZARP 2.1
5.3.5. Weryfikacja poprawności konfiguracji
5.3.6. Tworzenie i używanie szablonów
5.3.7. Samodzielne tworzenie i edytowanie konfiguracji IPK
5.3.8. Określanie kolejności wykresów i raportów.
5.3.9. Program Edytor IPK
5.3.10. Spis narzędzi do IPK
5.4. IPK dla programistów
5.4.1. Interfejs biblioteki IPK
5.4.2. Korzystanie z parserów konfiguracji SZARP 2.1
5.4.3. Rozszerzanie IPK
5.5. Łączenie wielu konfiguracji w jedną
5.5.1. Koncepcja
5.5.2. Tworzenie i uaktualnianie konfiguracji
5.5.3. Plik konfiguracyjny
5.5.4. Szablony parametrów definiowalnych

IPK jest opartym na XML formacie opisu konfiguracji systemu SZARP. Niniejszy rozdział opisuje założenia IPK, format samego pliku, tworzenie i modyfikację konfiguracji (w tym współpracę z programami korzystającymi z systemu konfiguracji SZARP 2.1), a także zawiera uwagi dla programistów piszących programy korzystające z IPK.

Dokumentacja ta nie jest przeznaczona dla użytkowników systemu, ale dla osób konfigurujących system oraz programistów rozwijających obecne i piszących nowe aplikacje wchodzące w jego skład. Zakłada się w szczególności znajomość ogólnej struktury systemu, w szczególności tradycyjnych plików konfiguracyjnych wersji 2.1.

5.1. Koncepcja

Notatka: Informacje w tym rozdziale mają obecnie charakter historyczny. W szczególności żadne programy SZARP nie używają już plików konfiguracyjnych w formacie 2.1, wszystkie nowo dodawane programy także korzystają wyłącznie z konfiguracji w formacie IPK.

5.1.1. Po co nowy format konfiguracji

Konfiguracja SZARP'a 2.1 składa się z wielu plików, opisujących różne aspekty systemu. Oddzielne pliki opisują sposób komunikacji ze sterownikami, przyporządkowanie danym ze sterowników konkretnych parametrów, parametry wyliczane na podstawie innych (dwóch rodzajów), strukturę bazy danych do zapisu parametrów, generowane raporty i wykresy. Dodatkowo każdy program (np. analiza czy sender) wprowadza zwykle własny plik konfiguracyjny.

Podejście takie jest z jednej strony dość elastyczne, w szczególności nie jest konieczne opisywanie elementów systemu, które nie są w danej instalacji wykorzystywane. Część zmian i modyfikacji może być wykonywana lokalnie, bez ingerencji w opis innych elementów.

Niestety, między opisywanymi w różnych miejscach elementami zachodzą często dość głębokie i skomplikowane zależności. W szczególności jako identyfikatory parametrów w systemie stosowane są albo indeksy IPC, albo numery linii w pliku PTT.act (które odpowiadają z grubsza indeksom w bazie). Powoduje to jednak, że o ile dodawanie nowych elementów do systemu jest dość proste, to usuwanie czy też modyfikacja układu parametrów już istniejących jest dość skomplikowane.

Dodatkowo, pliki konfiguracyjne były konstruowane w taki sposób, aby łatwo mogły z nich korzystać programy. Na przykład większość plików zawiera na początku liczniki linii, co z dzisiejszego punktu widzenia jest anachronizmem, utrudniającym modyfikację konfiguracji przez człowieka.

Rozmiary poszczególnych instalacji także zapewne przerosły nieco początkowe zamierzenia twórców. W efekcie ręczna edycja konfiguracji stała się bardzo skomplikowana i pracochłonna, trudno się przy niej ustrzec błędów. Rozwiązaniem miał być program parconf, czyli edytor konfiguracji systemu SZARP.

Program parsował całą strukturę konfiguracji SZARP'a, a następnie pozwalał za pomocą języka poleceń na dokonywanie w niej modyfikacji, których wykonanie ręczne wymagałoby dokonania setek przeliczeń i zmian różnego rodzaju indeksów. Rewolucyjnym pomysłem było także wprowadzenie szablonów, które pozwalały na szybkie i proste dodawanie zestawu parametrów na podstawie stworzonego wcześniej opisu dla konkretnego sterownika.

Program parconf nie jest niestety pozbawiony wad. Dodanie nowego pliku konfiguracyjnego (dla nowego programu) wymagałoby dodania obsługi tego pliku do parconfa. Uciążliwe okazały się istniejące w programie błędy (które objawiają się tylko w niektórych przypadkach), skutecznie uniemożliwiające poprawne wygenerowanie niektórych konfiguracji. Dodatkowo, parconf jest napisany w języku skryptowym Tcl/Tk. Efektem jest nie tylko powolne działanie, ale, w połączeniu z dość enigmatycznym stylem kodowania autora, powoduje, że utrzymywanie i dalsze rozwijanie programu stało się bardzo trudne.

Wszystkie te czynniki przesądziły o rozpoczęciu prac nad nowym ujęciem problemu konfiguracji systemu SZARP.