| System SZARP - dokumentacja techniczna: SZARP v.3.1 | ||
|---|---|---|
| Poprzedni | Rozdział 7. Obsługiwane urządzenia | Następny |
Zgodność ze specyfikacją: 4 .
Obsługiwane urządzenia: Sterownik czyta dane w formacie JSON generowane przez zewnętrzny program.
Protokół komunikacji: Sterownik parsuje wyjście uruchamianego programu, spodziewając się danych w formacie JSON w następujący sposób: {"param1": val1, "param2": val2, ...} Klucz może być nazwą parametru z params.xml albo atrybutem extra:json_name, jeśli ten został zdefiniowany w params.xml
Konfiguracja: Atrybut 'path' elementu device w pliku params.xml zawiera ścieżkę do uruchamianego skryptu (najlepiej napisanego w pythonie), który zwraca dane w formacie JSON. Opcjonalny atrybut 'frequency' z dodatkowej przestrzeni nazw określa co ile sekund uruchamiać skrypt (domyślnie co 10). Zawartość atrybutu 'options' jest dzielona na słowa i przekazywana jako opcje do uruchamianego programu.
Przykładowa konfiguracja:
params.xml
<device
xmlns:exec="http://www.praterm.com.pl/SZARP/ipk-extra"
daemon="/opt/szarp/bin/jsondmn"
path="/opt/szarp/bin/some_script.py"
extra:frequency="30"
options="--some-option -f some-argument" <!-- options for DAEMON -->
extra:script_options="--some-option -f some-argument" <!-- options for script from path -->
>
<unit id="1" ...>
<param name="Heh:Heh:Heh"
extra:json_name="param1"
...>
</param>
<param name="Param:Param:Param"
...>
</param>
</unit>
</device>
some_script.py
#!/usr/bin/python3
import json
print(json.loads('{"param1": 6.9, "Param:Param:Param": 69}'))
| Poprzedni | Spis treści | Następny |
| Sterownik iecdmn | Początek rozdziału | Sterownik k601dmn |