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 jsonify print(json.loads('{"param1": 6.9, "Param:Param:Param": 69}'))
Poprzedni | Spis treści | Następny |
Sterownik iecdmn | Początek rozdziału | Sterownik k601dmn |