Помимо функций, представленных в последующих разделах, в сценариях Control могут также использоваться все функции, которые содержатся в файлах, находящихся в директории <путь_проекта>\scripts\libs. Некоторые функции могут вызываться только определёнными менеджерами (например, функция «setValue()» может вызываться только менеджером пользовательского интерфейса), поэтому библиотеки, содержащие в себе вызовы данных функций могут использоваться только в соответствующих менеджерах.
Библиотека Control может изменяться пользователем в любом текстовом редакторе даже во время выполнения проекта. Файл библиотеки может быть загружен непосредственно в редактор сценариев модуля GEDI (редактор GEDI -> меню «Редактировать» -> элемент меню «Редактировать библиотеку CTRL»). Редактор сценариев обеспечивает синтаксический контроль редактируемого файла.
При каждом открытии панели в модуле PARA или в модуле VISION ( с помощью диалогового окна выбора файла), менеджер пользовательского интерфейса проверяет наличие изменений в файлах библиотек. В том случае, если библиотека была изменена до момента запуска сценария, который использует библиотеку, то библиотека (файл библиотеки) подключается в её последней редакции. При наличии синтаксических ошибок в файле библиотеки изменения не применяются. При этом выводятся имя файла и номер строки с ошибкой.
Одновременный запуск нескольких сценариев CTRL
Несколько сценариев могут быть запущены при помощи одного менеджера сценариев WCCOActrl. Для этого в строке «Опции:» необходимо применить параметр «-f» с последующим указанием имени файла, содержащего перечень запускаемых сценариев. Данный файл имеет расширение .lst.
ПРИМЕР:
WCCOActrl -f pvss_scripts.lst
В примере выше pvss_scripts.lst представляет собой ASCII-файл, в котором могут быть указаны имена нескольких сценариев CTRL, по одному имени в строке. Все указанные в списке сценарии запускаются менеджером сценариев, при этом первый сценарий в списке запускается в первую очередь. Список сценариев также может содержать строки комментариев и пустые строки (строки комментариев начинаются с «#»). Поиск сценариев, указанных в списке, производится во всех директориях сценариев проекта (по аналогии с запуском отдельного сценария CTRL).
Подключение библиотек
Для указания библиотек CTRL, DLL или shlib, требующихся в сценарии или панели, используется ключевое слово #uses. При этом необходимость указания в конфигурационном файле используемых библиотек отсутствует. Подобный подход упрощает использование библиотек, а сами библиотеки загружаются по мере необходимости. Перечень библиотек, используемых менеджером, также может быть указан в файле «config.level«. Тем не менее, рекомендуется использовать ключевое слово #uses. Информация об использовании ключевого слова #uses и о подключении библиотек при помощи записей в файле «config.level» представлена ниже.
ВНИМАНИЕ
Если необходимая в панели функция не содержится в подключаемой по умолчанию библиотеке CTRL, интересующая библиотека должна быть подключена так, как описано ниже.
Ключевое слово #uses
Ключевое слово #uses предназначено для указания библиотек CTRL, DLL или shlib, требующихся в сценарии или панели.
#uses «myLib.ctl»
ПРИМЕЧАНИЕ
При подключении библиотек не требуется указание расширений имён файлов библиотек. По умолчанию библиотеки и расширения языка Control просматриваются в следующем порядке:
1. <Указанное имя библиотеки>
2. <Имя библиотеки>.ctl
3. <Имя библиотеки>.ctc
4. <Имя библиотеки>.dll или <Имя библиотеки>.so
или DLL
#uses «CtrlADO»
ВНИМАНИЕ
В случае, если #uses используется для подключения библиотек DLL/shlib, указывать файловое расширение не требуется, так как оно добавляется автоматически, в зависимости от платформы. Например, для записи #uses «CtrlADO» в ОС Windows осуществляется поиск файла CtrlADO.dll, а в ОС Linux — CtrlADO.so. Однако для конкретных библиотек, таких как #uses «myLib.ctl», следует указывать расширения.
Библиотеки CTRL, DLL или shlib, указанные в сценарии или в панели, действительны не только в сценарии, но и в пределах менеджера, и остаются в памяти до остановки самого менеджера. Библиотеки загружаются в память ядром CTRL. Ключевое слово может использоваться в начале каждого сценария, а также в функциях с областью видимости в пределах панели. Ключевое слово #uses может быть использовано неограниченное количество раз. При необходимости подключения в каком-либо сценарии библиотеки, которой требуется подключение другой библиотеки (например, сценарию myLib.ctl необходима библиотека yourLib.ctl, а последней необходима xLib.ctl), в данном сценарии следует подключить только непосредственно используемую библиотеку (в данному примере — yourLib.ctl). При подключении одной или нескольких больших библиотек первое открытие панелей может занимать продолжительное время.
ПРИМЕЧАНИЕ
«uses» является ключевым словом и не может использоваться в качестве имени переменной.
Подключение библиотек при помощи записей в файле «config.level»
Существует стандартный файл <путь_КАСКАД>/config/config.level, в котором определяется, какие библиотеки CTRL должны подключаться различными менеджерами. Он содержит настройки по умолчанию для менеджеров.
ВНИМАНИЕ
Настройки по умолчанию из файла <путь_КАСКАД>/config/config.level считываются автоматически. Изменения в данном файле не допускаются! Изменения настроек по умолчанию следует выполнять путём изменения файла «config.level» в директории ПРОЕКТА! Конфигурационный файл в директории проекта считывается первым. Далее считывается файл, находящийся в директории соответствующей версии программы. В случае наличия удаленного проекта, который использует локальный проект в качестве серверного проекта, файл удалённого проекта считывается последним. Формализованная последовательность:
1. Файл проекта
2. Файл в директории системы
3. Удалённый проект, использующий локальный проект в качестве серверного
Записи о подключаемых библиотеках располагаются в отдельных разделах файла «config.level«, которые соответствуют различным менеджерам, например [ui], [ctrl] и т.д. Секция [ui_extend] соответствует модулям PARA и GEDI. Таким образом, менеджер, работающий с параметрами запуска «-extend» или «-m para» или «-m gedi» (PARA, GEDI), считывает значения из секции [ui_extend]. Для всех менеджеров используются следующие ключевые слова в файле «config.level«.
LoadAllCtrlLibs
Тип: unsigned
По умолчанию: 0 (Диапазон: 0/1)
При значении 1 функционирование менеджера не отличается от обычного, он осуществляет загрузку всех файлов из директории сценариев/библиотек, другие записи с ключевыми словами «LoadCtrlLibs» и «UnloadCtrlLibs» игнорируются. По умолчанию подключаются только явно указанные библиотеки CTRL.
LoadCtrlLibs
Записи с данным ключевым словом располагаются в разделе менеджера и обеспечивают подключение всех указанных библиотек менеджера. При использовании в одной записи нескольких имён библиотек, данные имена разделяются запятыми. Ключевое слово может использоваться неограниченное количество раз. Загруженная библиотека может быть удалена при помощи последующей записи с ключевым словом «UloadCtrlLibs«.
ВНИМАНИЕ
Пустые сценарии или сценарии, начинающиеся с «.», не загружаются!
UnloadCtrlLibs
Записи с данным ключевым словом располагаются в разделе менеджера и обеспечивают удаление всех указанных библиотек из списка библиотек, предполагаемых к загрузке. При использовании в одной записи нескольких имён библиотек, данные имена разделяются запятыми. Ключевое слово может использоваться неограниченное количество раз. Библиотека, которая ранее была удалена, может быть снова подключена при помощи «LoadCtrlLibs«.
ПРИМЕР:
[ctrl_1]
LoadCtrlLibs = «archiv.ctl»
Менеджеру сценариев с номером 1 для архивирования данных требуется «archiv.ctl».
[ui]
LoadCtrlLibs = «archiv.ctl, libTOOLs»
Менеджер пользовательского интерфейса запускает панели для архивирования данных.
Подключение библиотек Ctrl при помощи командной строки
-loadCtrlLibs <list>
Подключение указанных библиотек CTRL. <list> — список подключаемых библиотек, такой же, как и в конфигурационном файле, только без кавычек.
Таким же образом могут использоваться параметры запуска «-LoadNoCtrlLib» и «-LoadAllCtrlLibs».
«-LoadNoCtrlLib» очищает список подключаемых библиотек. Список может быть затем перезаполнен при помощи параметра запуска «-LoadCtrlLibs <list>» в той же командной строке.
ПРИМЕР:
-loadNoCtrlLib -loadCtrlLibs javaui.ctc
После того, как список загружаемых библиотек был очищен, загружается только библиотека Ctrl «javaui.ctc».