- Создал(а) Александр Акимов, редактировал(а) Артем Базеев июн 02, 2022
Основные функции
Выключение опроса монитора при старте системы TRASSIR OS.
Установка
- Перейти в автоматизацию, нажать «Новый скрипт», нажать «Загрузить пример» и выбрать «Из файла», указав путь к скрипту.
- Снять галочку «Включить скрипт» и нажать сохранить.
- Запускается, как только установился на сервер и была нажата кнопка "сохранить запустить"
- Скрипт устанавливает правило, которое не снимает настройки монитора с него, а ставит стандартные.
Таким образом при использовании конвертеров\удлинителей мы сможем получить картинку, не получая отклика по настройкам от монитора.
code
# -*- coding: utf-8 -*-
# This script set new parameters in nvr-system-settings.ini
#
# Script is available only for TrassirOS
#
# Version: 2.0
# Author: A.A.Trubilin, DSSL
# E-mail: a.trubilin@dssl.ru
"""
<parameters>
<company>AATrubilin</company>
<title>nvr-system-settings</title>
<version>2.0</version>
</parameters>
"""
import os
import ConfigParser as configparser
from __builtin__ import object as py_object
import host
class ResultMessage(Exception):
pass
class NvrSystemSettings(py_object):
_SETTINGS_PATH = "/home/trassir/nvr-system-settings.ini"
def __init__(self, setting_path=None):
"""Set/update parameters in nvr-system-settings.ini
Args:
setting_path (str, optional): Full path to setting file
"""
if setting_path is None:
setting_path = self._SETTINGS_PATH
self.setting_path = setting_path
if not os.path.isfile(setting_path):
raise IOError("File {!r} not found".format(self.setting_path))
self.config = configparser.ConfigParser()
self.config.read(setting_path)
def _set_parameter(self, section, key, value):
"""Set parameter to section
Args:
section (str): Parameter section
key (str): Parameter key
value (str): Parameter value
"""
try:
self.config.set(section, key, value)
except configparser.NoSectionError:
self.config.add_section(section)
self.config.set(section, key, value)
def set_from_dict(self, settings):
"""Set settings from dict object
Args:
settings (Dict[Dict[str: str]]): Settings to update
Examples:
settings = {
"hidden": {
"skip_edid_check": "true"
},
"keyboard": {
keyboard_layouts: 0,
keyboard_switch: 1
}
}
This setting will update nvr-system-settings.ini file with:
[hidden]
skip_edid_check = true
[keyboard]
keyboard_layouts = 0
keyboard_switch = 1
"""
if not isinstance(settings, dict):
raise TypeError("Expected 'dict' got {!r}".format(type(settings).__name__))
for section, config in settings.iteritems():
if not isinstance(config, dict):
raise TypeError(
"Expected 'dict' got {!r}".format(type(config).__name__)
)
for key, value in config.iteritems():
self._set_parameter(section, key, value)
with open(self.setting_path, "w") as setting_file:
self.config.write(setting_file)
if __name__ == host.stats().parent().guid:
if os.name == "nt":
raise OSError("This script is unavailable for WinOS")
nvr_system_settings = NvrSystemSettings()
nvr_system_settings.set_from_dict({"hidden": {"skip_edid_check": "true"}})
raise ResultMessage("""<span style="color: #009900">Success</span>""")
При успешном выполнении скрипта вы получите сообщение: ERROR: ResultMessage: Success