Описание пользователя
Глава 1. Необходимые сведения об устройстве RDS
§1.8. Автоматическая компиляция моделей блоков
Кратко описываются возможности модуля автоматической компиляции, позволяющего пользователю создавать собственные модели блоков.
Если пользователю недостаточно стандартных блоков, входящих в состав RDS, он может написать свои собственные модели, воспользовавшись модулями автоматической компиляции. В RDS входят модули, позволяющие создавать модели на языке C++ с использованием следующих компиляторов:
- MinGW gcc (32 и 64 бита, бесплатный);
- TDM-GCC (MinGW) (32 бита, бесплатный);
- OpenWatcom C++ (32 бита, бесплатный);
- Borland C++ 5.5 (32 бита, бесплатный).
В установочный комплект тридцатидвухбитной версии RDS включен компилятор TDM-GCC, в установочный комплект шестидесятичетырехбитной – MinGW gcc. Следует учитывать, что используемый компилятор должен создавать исполняемые файлы моделей той же разрядности, что и используемая версия RDS (32 бита для «Rds.exe», 64 бита для «Rds64.exe»).
Фактически, эти модули представляют собой один и тот же модуль с разными настройками параметров, поэтому, при необходимости, любой из них можно настроить на работу и с каким-либо другим компилятором C++, если этот компилятор позволяет создавать динамически подключаемые библиотеки (DLL) Windows и управляется из командной строки. RDS также позволяет подключать другие модули автоматической компиляции (в том числе и для других языков программирования), если таковые будут созданы сторонними разработчиками.
Стандартный модуль автоматической компиляции позволяет пользователю сосредоточиться на основных действиях, выполняемых блоком, беря на себя встраивание написанных им фрагментов программы в необходимую для функционирования модели блока структуру программного кода и вызов компилятора, который преобразует этот код в исполняемую библиотеку. Например, для того, чтобы создать модель блока, складывающего вещественные входы «x1» и «x2» и выдающего результат на выход «y», пользователю достаточно в специальном окне редактора модели ввести список входов и выходов блока и записать строку «y=x1+x2;» (рис. 17). Эта строка фактически представляет собой оператор присваивания в синтаксисе языка C, но для ее написания не требуется глубокого знания этого синтаксиса. Пользователю, создающему модель, можно не задумываться о том, как заявленные им переменные «x1», «x2» и «y» будут связаны с входами и выходами блока в RDS – модуль автоматической компиляции установит эту связь за него. Модели, создаваемые при помощи этого модуля, не ограничиваются простыми алгебраическими выражениями, вроде приведенного выше – модуль также позволяет использовать динамические переменные, записывать реакции блока на действия пользователя и системные события, программно рисовать внешний вид блока, описывать для этого блока окно настройки параметров и т.п. В фрагментах программного кода, которые пользователь вводит в редактор модели, можно использовать функции стандартной математической библиотеки языка C, функции Windows API и специализированные функции RDS, что позволяет создавать достаточно сложные блоки. Следует, однако, учитывать, что использование автоматической компиляции накладывает на модель некоторые ограничения – особенно сложные модели блоков (например, открывающие дополнительные окна) лучше создавать вручную, в полноценной среде разработки, содержащей развитые средства отладки. Кроме того, редактор модели в модуле автоматической компиляции не поддерживает реакции блока на некоторые редко используемые системные события. Тем не менее, средств, предоставляемых модулем, будет вполне достаточно для создания большинства блоков.
Рис. 17. Внешний вид окна редактора модели блока
Работа со стандартным модулем автокомпиляции и создание с его помощью моделей блоков подробно описана в главе 3.