CtrlExtension, основы

Чтобы добавить пользовательские функции C++ в программе CONTROL, необходимо записать CtrlExtension,  что дает возможность получить класс BaseExternHdl.

Допустимые классы и библиотеки

Все библиотеки, которые не были созданы с помощью «КАСКАД Цифра», и все последующие классы библиотек можно использовать для выполнения пользовательских функций программы CONTROL:

  • bcm.dll или .so (Linux)
  • libBasics.dll или .so (Linux)
  • libConfigs.dll или .so (Linux)
  • libDatapoint.dll или .so (Linux)
  • libMessages.dll или .so (Linux)
  • libManager.dll или .so (Linux)
  • libCtrl.dll или .so (Linux)
  • libV24.lib или .a (Linux)

Данные библиотеки являются частью интерфейса API программы «КАСКАД Цифра».

Недопустимые классы и библиотеки

Библиотеки

  • libComDrv.lib или .a (Linux)

также являются частью интерфейса API. Однако, их нельзя использовать.

Загрузка DLL (динамически подключаемых библиотек)

С помощью ключевого слова #uses можно указать, какие расширения программы CTRL необходимы в сценарии или панели. Поэтому больше нет необходимости вводить расширения в конфигурационном файле. Это облегчает использование расширений, при этом они загружаются в первую очередь по мере необходимости. Какие именно расширения должен загрузить менеджер, можно определить также с помощью записей в файле «config.level». Однако мы рекомендуем использовать ключевое слово   #uses. Как использовать ключевое слово #usesили как определить, какие именно расширения следует загрузить с помощью записей в файле «config.level», описывается ниже.

ПРИМЕЧАНИЕ

Дополнительные модули драйверов, используемые при работе под Linux вместе с CtrlADO, были переименованы из-за QT4:
QMYSQL3 -> QMYSQL (для MySQL 4 и более поздних версий)>
QOCI8 -> QOCI (для Oracle 9i, 10g и более поздних версий)

Ключевое слово #uses

С помощью ключевого слова #uses можно определить,  какое расширение необходимо для панели или сценария. Расширение файла можно опустить, так как оно задается автоматически в зависимости от операционной системы.

#uses «CtrlADO»

Расширения, указанные в сценарии или панели, являются действительными не только в сценарии, но и в менеджере, и остаются в памяти до прекращения работы менеджера. Расширения загружаются в память с помощью ядра программы CTRL. Ключевое слово можно использовать в каждом сценарии перед функциями, а также в глобальных функциях панели. Произвольное число определений #uses можно использовать в панелях и сценариях. Обратите внимание, что открытие панелей может происходить немного дольше, когда одна или несколько больших библиотек загружаются в первый раз.

Записи в файле «config.level»

Для того, чтобы менеджер мог загрузить расширение, необходимо

  1. скопировать его в каталог bin (корзина) проекта «PVSS_II»,
  2. сделать записьв файле «config.level».

Для поиска расширений программы CTRL применяется следующий способ:

  1. Выполняется поиск определенного имени.
  2. Выполняется поиск различных расширений: «.dll», «.so», «.shlib».
  3. Выполняется поиск (попытка) приставки «lib». Это значит:

    «lib» + запись + «.dll»
    «lib» + запись + «.so»

ПРИМЕЧАНИЕ

Мы рекомендуем использовать расширение программы CONTROL без расширения имени файла в предложении #uses, так как сценарий оставляет платформу в нейтральном состоянии и может быть выполнен без изменений на всех платформах. Если вы указываете расширение, например, «CtrlADO.dll», то его будет невозможно найти при работе в Linux, так как оно будет иметь вид «CtrlADO.so». Лучше использовать #uses «CtrlADO».

IconПРИМЕР

При работе с Windows можно использовать следующую конфигурационную запись для загрузки DLL:

CtrlDLL = «CtrlADO»

Сначала программа ищет эту библиотеку DLL в каталоге <<путь_проекта>/bin>. Если она там не найдена, программа продолжает поиск в каталоге <путь_КАСКАД>/bin.

Данную запись можно сделать только в секции [ui] или [ctrl]. Если динамически подключаемая библиотека DLL используется интерфейсом пользователя и программой CTRL, ее необходимо ввести в обеих секциях. Можно загрузить любое количество библиотек DLL.

Пример для CtrlExtension

Пример для CtrlExtension можно найти в папке /api/TemplateCtrlExt/ для установки  «КАСКАД Цифра». Обязательно прочитайте файл README!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *