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

Входные переменные

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

 

 

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

Основная цель существования входных переменных - это обеспечение проекта внешней информацией, связь с внешним миром. Без них сложно было бы создать динамику в процессе моделирования. Логика проекта не реагировала бы на внешние воздействия, и использование программы не имело бы особого смысла.

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

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

 

Окно 'Входные переменные'

Расположение

Входные переменные создаются в окне Входные переменные. По умолчанию оно располагается в нижнем левом углу главного окна САПР.

Если вы не можете найти окно Входные переменные на экране, проверьте, возможно, оно было закрыто. За его показ и скрытие отвечает опция главного меню {ВидВходные переменные}.

 

Элементы дерева

Всю рабочую поверхность окна занимает дерево. Оно содержит 3 столбца. В первом, расположенном слева, столбце размещаются пиктограммы, поля активности и имена элементов дерева. Во-втором столбце указываются адреса и смещения, по которым извлекаются значения входных переменных из памяти. Это используется в создаваемом САПР программном коде, и по умолчанию для переменных отключено. Для всех остальных элементов дерева, поле во втором столбце всегда остаётся пустым. В третий столбец помещается описание элементов.

Первым и самым верхним в дереве всегда располагается элемент проекта . Он включает в себя одну или несколько задач , а также может содержать группы и входные переменные . Задачи в дереве строятся из двух видов элементов: групп и входных переменных .

Элементы проекта и задач копируют своё состояние из окна Прорисовка. Они аналогично расположены, имеют те же имена и поля свойств. Но есть отличие, поля свойств проекта и задач в окне Свойства не поддаются изменению, а сами элементы в дереве нельзя переместить или удалить.

Группы предназначены исключительно для возможности структурирования ветви проекта или задачи путём объединения входных переменных и других групп.

 

Контекстное меню

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

Опции контекстного меню описаны в таблице расположенной ниже.

Добавить группу  

Создаёт в дереве пустой элемент группы.

Добавить переменную...  

Создаёт в дереве элемент входной переменной.

При выборе опции откроется окно Создание новой переменной. В нём необходимо ввести имя, тип и размерность будущей переменной. После закрытия окна, если это было сделано по нажатию на кнопку OK или на клавишу Enter (Ввод) на клавиатуре, будет создана новая входная переменная.

1 1 1 1
Удалить Del

Удаляет выделенный элемент, а также все элементы, которые в него включены. Удаление элемента проекта или задачи в окне Входные переменные не возможно.

1 1 1 1
Вырезать Ctrl+X

Копирует текущий выделенный элемент дерева и все вложенные в него элементы в буфер обмена операционной системы и удаляет его.

Копировать Ctrl+C

Копирует текущий выделенный элемент дерева и все вложенные в него элементы в буфер обмена операционной системы без его удаления.

Вставить Ctrl+V

Вставляет из буфера обмена входную переменную или группу с дочерними элементами или без.

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

1 1 1 1

 

Свернуть всё  

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

  Раскрыть всё  

Разворачивает (раскрывает) элемент проекта, а также все элементы задач и групп.

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

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

 

Перемещение элементов мышью

Элементы дерева можно перетягивать мышью. Для этого нажмите в области элемента левой кнопкой мыши и, не отпуская её, потяните указатель мыши вверх или вниз. Если перемещение в текущую позицию допустимо, то указатель мыши примет вид , и в дереве над элементом, куда возможна вставка, появится маркер в виде полосы.

Если перемещение в текущую позицию не возможно, то указатель мыши будет иметь вид .

Элемент проекта и элементы задач не могут быть перетянуты с помощью мыши. Это должно выполняться в окне Прорисовка.

Перетягивая элемент мышью, мы меняем его положение в родительской ветви на том же иерархическом уровне. Все остальные перемещения элемента должны выполняться с помощью операций работы с буфером обмена. Например, выделите перемещаемый элемент и нажмите одновременно клавиши Ctrl и X на клавиатуре. Это скопирует элемент в буфер обмена операционной системы и удалит его из дерева. Затем, выделите новый родительский элемент и одновременно нажмите клавиши Ctrl и V. Скопированный элемент появится самым нижним в ветви своего нового родителя. Если при вставке была выделена входная переменная , то вставляемый элемент появится в конце той же ветви, что и переменная.

 

Выделение элементов

В дереве может быть выделено одновременно несколько элементов. Используется это в основном для редактирования в окне Свойства общих свойств выделенных в дереве элементов. Например, есть возможность задать активность одновременно для всех выделенных элементов. Или выделить несколько переменных и поменять их тип или размерность.

Выделение выполняется нажатием левой кнопки мыши на элементе дерева с удержанием нажатой клавиши Shift или Ctrl на клавиатуре.

Клавиша Shift используется для группового выделения последовательно расположенных элементов. Вы, просто, нажимаете левую кнопку мыши и, удерживая клавишу Shift, перемещаете указатель мыши вверх или вниз. В начале операции старое выделение в дереве очищается.

Клавиша Ctrl даёт возможность поэлементного изменения выделения. При её удержании, каждое нажатие левой кнопки мыши выделяет или снимает выделение с элемента, на котором произошло нажатие. При этом выделение на других элементах дерева не изменяется.

 

Поля свойств переменных

Не все свойства входных переменных отображаются в дерева. Чтобы увидеть весь набор свойств, выделите в дереве элемент входной переменной и посмотрите в окно Свойства. Оно будет иметь примерно следующий вид.

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

Имя

Текстовое поле для задания имени входной переменной.

Если вводимое имя недопустимо, например, начинается с цифры или переменная с таким именем уже существует, то цвет текста становится серым. Применить введённое имя по нажатию клавиши Enter (Ввод) в этом случае невозможно.

Описание

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

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

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

Активность

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

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

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

Тип

Поле для выбора типа переменной.

Выделите данное поле и нажмите кнопку в его правой части. Затем в выпадающем списке выберите нужный тип. Либо, не нажимая кнопку, сделайте двойной щелчок левой кнопкой мыши в правой части поля. Это установит следующий тип в списке. Типы переключаются по кругу от bool до string. После string снова будет установлен тип bool.

Размерность Свойство определяет размерность переменной или, говоря иначе, число элементов в её массиве.
Значения по умолчанию

Значение, которое присваивается переменной в процессе моделирования, если она не подыгрывается.

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

Текст в правой части поля свойств в краткой форме также показывает, какие значения по умолчанию заданы для переменной. Рассмотрим на примерах возможные варианты.

  • Текст '1 {-240}' означает, что у переменной есть одно значение по умолчанию, и оно равно -240.
  • Запись '3 {-240,160,250}' показывает, что для переменной задано 3 значения по умолчанию: -240, 160 и 250.
  • Текст '7 {0, 100, 200, 300, 400, ...}' говорит, что переменная имеет 7 значений по умолчанию, 5 из них показаны, и, чтобы увидеть остальные, необходимо нажать на кнопку и открыть окно Значения по умолчанию.
Минимальное значение Допустимое минимальное значение переменной. Не используется, оставлено для будущей модернизации САПР.
Максимальное значение Допустимое максимальное значение переменной. Не используется, оставлено для будущей модернизации САПР.
Инициализация  
  Инициализировать

Свойство определяет, будет ли в создаваемом САПР программном коде браться значение входной переменной из памяти или нет. Если взятие значения из памяти отключено, и переменная не подыгрывается, то входной переменной присвоится её значение по умолчанию.

При переключении свойства в значение Да, в окне Свойства дополнительно появляются два поля: Адрес и Смещение.

Адрес

Поле содержит адрес, по которому будет браться из памяти значение переменной.

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

Смещение

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

Например, мы имеем переменную с типом int и размерностью 3, а также задан адрес 0x00000010 и смещение 2. Тип int занимает в памяти 32 бита или 4 байта. Соответственно, для первого элемента в массиве переменной значение будет извлекаться по заданному адресу 0x00000010, для второго элемента по адресу 0x00000016, для третьего по адресу 0x0000001c.

 

Поля свойств групп

Поля свойств группы входных переменных в окне Свойства имеют примерно следующий вид.

В таблице расположенной ниже описаны поля свойств группы входных переменных.

Имя

Текстовое поле для задания имени группы.

Описание

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

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

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

Активность

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

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

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

Кодогенерация

Свойство разрешает или запрещает участие группы в генерации программного кода.

Если для поля задано значение Запрещена, то ни для одной входной переменной, включённой в данную группу (потомка), не будет создан программный код в генерируемых файлах.

Документогенерация

Свойство разрешает или запрещает участие группы в генерации документации.

Значение поля Запрещена, говорит о том, что информация ни об одной входной переменной, включённой в данную группу (потомке), не будет размещена в создаваемой документации.

 

 

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

forum.aviosoft.ru

 

сборка: 706