ПрагмаСофтСтудия 2.1

Вызов функции или вычислительного узла

 

 

Общая информация

В окнах Прорисовка и Функции есть возможность создать один интересный элемент. Он универсальный и подходит для вызова сразу трёх сущностей проекта: функции прорисовки, функции вычисления и вычислительного узла. В рамках одной задачи имена функций и узлов, а также входных и выходных переменных уникальны. Это даёт возможность программе определить, что необходимо вызвать, просто, по заданному имени. Например, вы указываете имя функции прорисовки, и программа пытается интерпретировать вашу запись именно, как вызов функции прорисовки.

Синтаксис вызова для всех трёх случаев приведён ниже.

Параметр name – это имя, вызываемой функции или узла. in1 – это входное значение, передаваемое в функцию или узел. out и out1 – выходное значение, возвращаемое из функции или узла.

В качестве входных значений может использоваться любое формульное выражение так же, как и число, строка, константа, имя входной, выходной или локальной переменной с указанием индекса или без. В качестве выходных значений может выступать имя локальной или выходной (только для дерева Прорисовка) переменной с указанием индекса или без. Индекс, как обычно, допустимо задавать не только непосредственным значением, но и формульным выражением.

Функции прорисовки не возвращают значений, поэтому при их вызове указывается только одна пара круглых скобок с входными параметрами или без них.

В квадратные скобки заключены необязательные параметры. Это означает, что может быть одно, два и более входных значения, или не быть их вовсе, и круглые скобки останутся пустыми. В случае вычислительного узла минимум одно выходное значение должно быть указано всегда. Всё это зависит от того, сколько входных и выходных параметров было задано при создании функции или узла.

 

Создание

Попробуем создать вызов функции или вычислительного узла. Нажмите правой кнопкой мыши на каком-либо элементе дерева окна Прорисовка, появится контекстное меню.

Место, где будет создан вызов зависит от того, на каком элементе вы нажали при вызове контекстного меню. Нажатие на элементе проекта , задачи или группы , создаёт формулу в виде последнего, самого нижнего дочернего элемента в ветви проекта , задачи или группы , соответственно. В остальных случаях формула создаётся последней в той же ветви, что и выделенный элемент.

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

В данном случае это будет означать не только по имени, но ещё и по цветовой подсветке, что мы собираемся вызвать вычислительный узел Node. Далее идут две пары круглых скобок, соответственно, с входными и выходными параметрами.

Входных аргумента три. Первый передаётся, как абсолютное значение локальной переменной val1. Второй аргумент извлекается из массива локальной переменной val2 по индексу получаемому в результате вычисления выражения max(0,i). Далее, значение входной переменной val3 обрамляется фигурными скобками. Полученная строка передаётся в качестве третьего входного параметра.

Выходных параметра два. После отработки вычислительного узла первое выходное значение будет записано в локальную переменную res1. Второе - в выходную переменную res2 по индексу 1, т.е. во второй элемент её массива.

 

Нажатие на кнопку OK внизу окна заканчивает создание вызова функции или вычислительного узла. В дереве рабочего окна в конце родительской ветви появится новый элемент. Внутри корневой ветви элемента задачи это могло бы выглядеть примерно так.

Для наглядности промежуточные элементы выше формулы удалены. Вспомогательная пиктограмма означает, что этот элемент является вызовом функции или вычислительного узла, а метка , что элемент в данный момент активен и участвует в работе проекта.

 

Как было сказано выше, данный вид формул создаётся и в дереве окна Функции. В этом случае формула должна размещаться в приделах элемента функции. Иначе говоря, она должна быть потомком элемента с пиктограммой или .

Функция вычисления не может производить прорисовку графики. Это означает, что она не только не может содержать примитивов, но и вызов функции прорисовки для неё также запрещён. Элемент , созданный внутри функции вычисления , может выполнять только вызов функции вычисления или вычислительного узла .

  

Поля свойств

Вызов функции или вычислительного узла имеет 5 свойств. Они отображаются в окне Свойства, как отдельные строки, и называются полями. Чтобы их увидеть, выделите элемент формулы в дереве. При этом для описанного выше выражения окно Свойства будет иметь следующий вид.

Ниже приведено описание полей свойств формулы.

Выражение

Поле содержит выражение вызова функции или вычислительного узла.

Текст выражения можно вводить непосредственно в правую часть поля. Но удобнее это делать в отдельном специально предназначенном для этого окне. Чтобы его увидеть, выделите поле и нажмите на кнопку , расположенную в его правой части. Откроется редактор с пиктограммой в заголовке окна.

Описание

Поле позволяет пользователю задать любой произвольный текст, который с его точки зрения как-то характеризует формулу. Это может быть описание действий, которые совершает формула, назначение её переменных, вида и особенностей выходного результата и т.д..

Если поле выделено, то в его правой части отображается кнопка . Нажав на неё, вы откроете окно Описание, где сможете изменить значение поля.

Описание формулы также приводится в виде одиночной строки во втором столбце дерева справа от элемента формулы. Если описание многострочное, то его строки объединяются в одну.

Активность

Активность формулы определяется состоянием данного поля. В целом активность - это участие формулы в процессе моделирования, генерации документации и программного кода, а также во всём, что с этим связано. Отсутствие активности равносильно отсутствию самой формулы в проекте.

Значение поля Есть устанавливает метку на элементе дерева формулы. Соответственно, метка означает, что формула неактивна.

Чтобы изменить активность формулы, выделите данное поле и нажмите кнопку в его правой части. Затем в выпадающем списке выберите нужное значение. Либо, не нажимая кнопку, сделайте двойной щелчок левой кнопкой мыши в правой части поля. Это переключит состояние активности на обратное без отображения выпадающего списка.

Рисунок при документогенерации

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

Конечный элемент

Это свойство появилось для поддержания функциональности одного из созданных нами генераторов документации. В его идеологии, многие элементы деревьев могут помечаться, как конечные , и по каждому из них в документации формируются таблицы зависимостей: формулы, используемые в свойствах элемента, переменные, используемые в этих формулах, и т.д.. Это помогает легче прослеживать связи при тестировании индикационных кадров и определять, что от чего зависит.

 

 

Авионика и Софт

forum.aviosoft.ru

 

сборка: 706