5.3.6. Tworzenie i używanie szablonów

W IPK nie ma oddzielnego formatu dla szablonów konfiguracji. Przez szablon będziemy rozumieć dowolny plik XML (IPK), który może zostać użyty do dodania grupy parametrów do konfiguracji. Struktura IPK powoduje, że tak naprawdę dodanie grupy parametrów sprowadza się do tekstowego wklejenia ich w odpowiednie miejsce (zwykle dodaje się odpowiedni element lub elementy device, oraz parametry definiowalne). Problemem jest jedynie nadanie nowym parametrom odpowiednich indeksów w bazie.

Aby jednak ułatwić i zautomatyzować dodawanie parametrów przyjęto następujące rozwiązanie. Szablonem IPK nazywamy plik, który od poprawnego pliku IPK opisującego interesujące nas parametry różni się w następujący sposób:

Oczywiście szablon powinien zawierać tylko informacje o interesujących nas parametrach. Przykładowy opis parametru w szablonie może wyglądać tak:
<param name="XXXXX:Sterownik:temperatura zadana" short_name="Tod"
draw_name="Temp. zadana" unit="°C" prec="1" tobase="1">
        <raport title="XXXXX" description="temperatura zadana"
		filename="XXXXX.rap"/>
        <raport title="RAPORT TESTOWY" description="XXXXX Sterownik" 
		filename="test.rap"/>
        <draw title="XXXXX - temperatury" prior="81" color="cyan"
		min="0" max="150"/>
      </param>

W dystrybucji SZARP'a znajduje się program ipk_create_template, który pozwala na wybranie z podanej konfiguracji parametrów zawierających podany ciąg znaków (np. 'Kocioł 1') i utworzenie z nich szablonu. Pierwszym parametrem jest szukany podciąg, drugim plik z konfiguracją. Wynik działania jest wypisywany na standardowe wyjście. Tak więc z danej konfiguracji szablon zawierający opis kotła można uzyskać przez wydanie następującej komendy:

/opt/szarp/bin/ipk_create_template 'Kocioł 1' params.xml > template.xml

Następnym krokiem jest przejrzenie pliku template.xml i sprawdzenie, czy na pewno umieszczone zostały te parametry, które chcemy umieścić w szablonie i czy ogólnie nie trzeba wprowadzić jakiś poprawek. W szczególności uwagi na temat ustalania kolejności wykresów znajdują się w Sekcja 5.3.8.

Kolejny program ułatwiający korzystanie z szablonów, to ipk_add_template. Służy do dodania parametrów opisanych przez szablon do konfiguracji. Automatycznie zamienia nazwy na podane (z XXXXX), nadaje także parametrom odpowiednie indeksy w bazie. W wywołaniu należy podać ścieżkę do szablonu z dodawanymi parametrami, ciąg znaków do utworzenia prawidłowych nazw parametrów, oraz nazwę konfiguracji. Jeżeli nie podamy tego ostatniego parametru, z szablonu zostanie utworzona nowa konfiguracja. Wynik działania programu jest wypisywany na standardowe wyjście.

Uwaga! Z szablonu wklejane są do konfiguracji całe elementy 'device', tak więc nie jest możliwe bezpośrednie dodanie parametrów do istniejącego sterownika. Można oczywiście dodać sztuczny nowy sterownik, a ręcznie przenieść parametry do istniejącego.

Jeżeli więc do konfiguracji z poprzedniego przykładu chcielibyśmy dodać czwarty kocioł, identyczny z pierwszym, mając już utworzony szablon wydajemy komendę:

/opt/szarp/bin/ipk_add_template template.xml 'Kocioł 4:' params.xml > new.xml
Plik new.xml będzie zawierał nową konfigurację. Oczywiście możliwe, że będziemy chcieli poddać ją edycji, np. aby dodać parametry dotyczące nowego kotła do wyliczeń ogólnej sprawności czy mocy ciepłowni.

Wszystkie wymienione w tym rozdziale programy do operacji na konfiguracji wykorzystują do swego działania procesor XSLT i odpowiednie szablony. Szablony te można także wykorzystywać samodzielnie, znajdują się one w dystrybucji SZARP'a w katalogu libSzarp2/xslt. W kodzie każdego z szablonów znajduje się dokładny opis działania oraz sposób podawania parametrów (dla procesora xsltproc, dla innych programów sposób podawania parametrów może być inny).