Руководство программиста
Глава 1. Устройство RDS
В этой главе рассматривается основные принципы работы RDS: модули, из которых состоит приложение, внутреннее устройство блоков схемы, режимы работы, способы взаимодействия блоков с пользователем. Вводятся основные термины, которые будут использованы в следующих главах.
§1.1. Общая структура RDS
Кратко описывается структура RDS как приложения Windows: перечислены основные папки и файлы приложения.
RDS состоит из основной программы (тридцатидвухбитной «Rds.exe» или шестидесятичетырехбитной «Rds64.exe») и набора библиотек в папке «Dll\», обеспечивающих работу различных блоков в схемах. Основная программа позволяет редактировать схемы, обеспечивает вызовы внешних модулей, отвечающих за работу конкретных блоков, а также содержит большую библиотеку сервисных функций, облегчающих взаимодействие блоков с основной программой и между собой.
Кроме основной программы и папки «Dll\\» в состав RDS могут входить:
- файлы «RdsGet.exe» или «RdsGet64.exe» – программа автоматического обновления RDS;
- папка «Bin\» – дополнительные программные модулями RDS;
- Папка «Doc\» – папка с документацией и файлами справки RDS;
- папка «Extensions\» – параметры различных дополнительных модулей RDS;
- Папка «Include\» – файлы заголовков для самостоятельного написания моделей блоков на языке C/C++;
- папка «Install\» – описание текущей установленной конфигурации RDS для программы автоматического обновления;
- папка «Interface\» – переводы интерфейса пользователя RDS на другие языки (на данный момент поддерживаются русский и английский);
- папка «StdBlocks\» – файлы-описания стандартных блоков RDS.
Параметры RDS, настраиваемые пользователем и изменяющиеся в процессе работы, хранятся в специально отведенной для этого папке настроек. Если при установке RDS был выбран портативный вариант, папка настроек будет располагаться непосредственно внутри папки установки (папка «UserData\»). Если был выбран фиксированный вариант установки, настройки RDS будут находиться в общей папке данных программ Windows.
В папке настроек обычно располагаются:
- папки «Panel\» и «Library\» – содержимое панели стандартных блоков и библиотеки стандартных блоков соответственно;
- папка «Template\» – набор шаблонов схем и автокомпилируемых моделей;
- папка «Models\» – набор автоматически компилируемых моделей, используемых в разных схемах;
- папка «Include\» – файлы заголовков для самостоятельного написания моделей блоков на языке C/C++;
- прочие файлы и папки с параметрами RDS и дополнительных модулей.
RDS – однодокументное приложение, то есть в основную программу можно загрузить только одну схему. Если необходимо работать с несколькими схемами одновременно, следует запустить несколько экземпляров программы. Основная программа («Rds.exe», «Rds64.exe») содержит и среду разработки, и большую библиотеку функций, которые используются моделями блоков для взаимодействия с RDS и между собой. Среда разработки не может быть отделена от этой библиотеки – отдельной версии RDS, позволяющей только запускать расчет в заранее созданных схемах, не существует.
Панель и библиотека стандартных блоков в RDS организованы как папки и файлы внутри папок «Panel\» и «Library\». Каждая вкладка панели блоков представляет собой папку внутри «Panel\», имя этой папки является названием вкладки. Подразделы библиотеки блоков тоже представляют собой папки внутри «Library\», однако, если в панели блоков внутри папок-вкладок не может быть других папок (на панели могут находиться только блоки), в библиотеке может быть сколько угодно вложенных подразделов. С каждым блоком библиотеки и панели связано несколько файлов с одинаковым названием и разными расширениями: описания блоков, значки для их, всплывающие подсказки и т. п. Структура файлов панели и библиотеки подробно описана в §2.16.5 описания пользователя.
При добавлении в схему блока из библиотеки или с панели блоков этому блоку дается имя, соответствующее имени файла, в котором находится его описание, с добавлением порядкового номера. Например, если блок хранится в файле «MyBlock.blk», первый добавленный в подсистему блок получит имя «MyBlock1», второй – «MyBlock2», и т.д.
В папке «Include\» находятся файлы заголовков для написания моделей блоков и других программ, взаимодействующих с RDS, на языке C или C++. В других языках программирования эти файлы нельзя использовать напрямую, но описания типов и констант, находящиеся в них, могут помочь в создании таких же описаний на другом языке. Обычно в этой папке находятся следующие файлы:
- «RdsDef.h» – описания типов и констант, необходимые как для написания функций моделей блоков, так и для прочих модулей и программ, работающих с RDS. Эти описания будут постоянно использоваться в этом руководстве.
- «RdsFunc.h» – макросы для быстрого получения доступа ко всем сервисным функциям RDS, то есть функциям, экспортированным из rds.exe. Функции моделей блоков можно писать и без использования этого файла, но с ним это делать гораздо удобнее – он автоматизирует получение указателей на все сервисные функции. Включение этого файла в программу модели подробно рассмотрено в §2.2.
- «CommonAC.hpp» – макросы для стандартных модулей автоматической компиляции моделей блоков. Эти макросы используются модулями, включенными в состав библиотеки «Common.dll». Файл «CommonAC.hpp» не нужно включать в программы вручную – модули автокомпиляции включают его автоматически, а для написания моделей без использования автокомпиляции он не нужен.
- «CommonBl.h» – типы и имена функций блоков и динамических переменных из стандартной библиотеки «Common.dll». Этот файл имеет смысл включать в программы моделей, которые будут взаимодействовать с блоками из этой библиотеки.
- Другие файлы заголовков, которые не используются программистом непосредственно. Они подключаются автоматически при включении в текст программы перечисленных выше файлов.
Все эти файлы, кроме «CommonAC.hpp», содержат описания в синтаксисе «простого» C, то есть без использования классов и других дополнений, появившихся в C++. Таким образом, файлы заголовков можно использовать при написании моделей как на C++, так и на C.