====== Общая конфигурация плагинов и модулей ======
===== Конфигурационные файлы =====
Конфигурация проекта может состоять из одного и более yml-файлов, которые хранятся в каталоге проекта. Данный каталог указывается параметром ''-cfg'' при запуске приложения. При загрузке сканируется весь каталог (без вложенных каталогов), и загружаются все найденные yml-файлы (кроме скрытых, начинающихся с точки).
Конфигурация записывается в [[doc:jroboplc:notes:yaml_techniques|YAML-формате]]. 
Внимание! В YAML отступы имеют значение. Для отступов используется пробел. TAB'ы использовать запрещено.\\ 
[[https://www.youtube.com/watch?v=AXLoRpKnK8U]]
Общий формат конфигурационного файла:
param1: value
param2: value
plugin.pluginA:
  enable: on
  module.moduleA1
    modprm1: value
    modprm2: value
  module.moduleA2
    modprm1: value
    modprm2: value
plugin.pluginB:
  enable: off
  module.moduleB1
    modprm1: value
    
    tag.values:
      tagname1: value
      tagname2: value
    
    tag.flags:
      tagname1: none
      tagname2: autosave hidden
    
===== Общие настройки для плагинов =====
|**plugin.name**  |название плагина ([[doc:jroboplc:notes:how_to_name_modules]])  |
|**enable**  |разрешение работы плагина  |
|:::|**off** - плагин отключен и не загружается при старте приложения  |
|:::|**on** - плагин включен  |
|**debug.logging**  |отладочное логирование в файл ''debug'' (пока реализовано только в группе периферийных модулей, использующих протокол АА55)  |
===== Общие настройки для модулей =====
|**module.name**  |название модуля  |
|**enable**  |разрешение работы модуля  |
|:::|**off** - модуль загружается при старте приложения, но не выполняется в runtime  |
|:::|**on** - модуль выполняется в runtime  |
|**tag.values**  |переопределение значений тегов, где tagname имя тега модуля, либо regex-выражение  |
|**tag.flags**  |переопределение флагов тегов, где tagname имя тега модуля, либо regex-выражение. Флаги указываются через пробел или запятую:  |
|:::|**none**  |
|:::|**autosave** - значение тега сохраняется (необходимо использовать модуль [[doc:jroboplc:modules:tagsaver]] |
|:::|**hidden** - тег не предназначен для показа удаленным клиентам |
|:::|**external** - тег содержит значение, запрошенное с удаленного сервера |
|:::|**status** - тег может изменять свой статус ''GOOD''/''BAD'' |
|**func.tags**  |см. [[doc:jroboplc:functags]]   |
===== Глобальные параметры =====
^  Параметр  ^  Умолчание  ^  Описание  ^
|**appname**  |  ''''  | Имя приложения   |
|**log.dir**  |  ''log''  | Путь до каталога с лог-файлами   |
|**keys.dir**  |  ''keys''  | Путь до каталога с парами приватных и публичных ключей (относительно каталога конфигурации)   |
Все пути относительно каталога конфигурации.
Глобальные параметры рекомендуется указывать в отдельном файле ''conf.yml''.