Введение в VPL

2. Введение в VPL

Microsoft Visual Programming Language (VPL) является средой разработки приложений, основанной на графической модели программирования. Принцип выполнения команд в Dataflow-программе похож на принцип работы конвейера, где рабочие на линии выполняют свою часть работы по мере прибытия материалов. Благодаря этому VPL хорошо подходит для программирования различных параллельных или распределённых сценариев.

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

Рисунок 1 - Пример схемы VPL диаграммы

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

Рисунок 2 - У блоков активностей есть связи, по которым сообщения пересылаются от одной активности к другой.

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

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

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

Рисунок 3 - Соединения вызывают действия, например SayText

Активности соединены через специальные разъёмы. Соединительный разъём в левой части блока является приёмником входящих сообщений, а разъём в правой части предназначен для передачи исходящих сообщений.

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

Блок активности обрабатывает входные данные сразу после получения правильного входящего сообщения.

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

Рисунок 4 -Типы соединений

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

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

Приступая к работе

Запустите Microsoft Visual Language (Язык VPL) из меню "Пуск". Когда VPL загрузится, вы увидите окно с набором меню, методических материалов, а также вкладками страниц, как показано на следующем скриншоте.

VPL моделирует поток данных, когда вы создаете определенный график или диаграммы деятельности (блоки, которые представляют DSS услуг или других функций), связанных вместе, используя соединения, которые определяют, как данные будут перемещаться между элементами деятельности. Одна или несколько диаграмм составляют проект VPL. Вы строите диаграммы в основной рабочей области в центре экрана (вкладка Диаграмма). При открытии нового проекта VPL создает по умолчанию это поле.

Пользовательский интерфейс VPL

Окно VPL отображает меню и панели инструментов для доступа к командам с главной страницы, чтобы сформировать свой график, а также несколько подокон, которые должны показывать список встроенных в поток данных сервисов и доступных услуг (предварительно написанного кода, который выполняет определенные функции), которые могут быть использованы в диаграммах проекта. Содержание проекта (его диаграммы и файлы конфигурации), а также раздел для редактирования свойств отдельных элементов.

Вы также можете объединить несколько диаграмм в одну VPL программу, которые могут быть доступны как отдельные вкладки в верхней части диаграммы.

Также можно выборочно скрыть или открыть скрытые окна панели инструментов с помощью меню Вид. Так что если вы случайно закрыть панели инструментов, нажав на "Х" в верхнем правом углу в строке заголовка, вы всегда можете получить ее обратно.

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

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

Вы можете вырезать, копировать, вставлять и удалять деятельности, выбрав блок на диаграмме с помощью меню Изменить Деятельности Pop-Up или контекстного меню.

Основные функции инструментов окна

Инструменты основного окна позволяют определять данные блоков (данные), контролировать потоки данных (If и Switch), совмещать сообщения (Присоединиться и слияния), производить расчеты (расчеты) и хранить результаты в переменных (Variable). Также имеется Комментарий функции, что позволяет разместить комментарий в текстовых блоках диаграммы.

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

Сервисы инструментов окна

Окно Сервисы панели инструментов отображает предлагаемые пакетом сервисы. Предоставляемые сервисы зависят от того, что было установлено при инсталляции VPL. Список их может быть расширен путем добавления DSS сервисов.

Некоторые из сервисов, перечисленных в панели инструментов, не предназначены для использования в VPL. В частности, любой сервис, который имеет название, содержащие "Учебник" представляет собой отдельное приложение, которое не может быть использовано из VPL. Аналогичным образом, если ваш пакет включает в себя Simulator, имена сервисов, начинающиеся с "Моделирование", не подходят для использования в VPL, если это явно не упоминается в документации.

Сервисы, отображаемые в этом окне, также зависят от набора инструментов служб в текстовом поле Найти, которое появляется в верхней части списка. Ввод текста здесь вызывает только те службы, чей текст появится в окне. Фильтр ищет отображаемое имя службы, а также его текстовое описание. Чтобы очистить службы фильтра, нажмите кнопку 'X' в поле.

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

Вы можете использовать фильтры для вывода перечня сервисов за счет создания раздела фильтра. Чтобы создать раздел, щелкните фильтр (плюс) на правой стороне все найденные (отображается непосредственно под Найти сервис текст в рамке). Это создает новый заголовок раздела в окне панели инструментов сервисы с использованием слова выбранного в качестве фильтра для поиска и результаты фильтрации под ним.

Если вы хотите создать заголовок фильтра поиска с помощью команды, добавьте название, фильтр по тексту. Теперь, когда вы щелкните ' ' в строке все найденные, новый раздел будет использовать только этот текст. Например, если ввести следующее

диалоговое = Любимые Мои сервисы

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

Обратите внимание, что при сохранении вашего проекта будут сохраняться пользовательские настройки фильтра.

Окно диаграммы

Как вы видели на скриншоте выше, первая диаграмма проекта всегда называется Диаграмма. Для простоты вы, вероятно, просто используете значение по умолчанию.

Вы можете создать новые диаграммы из меню "Файл", выбрав Добавить диаграмму. Диаграммы выполняются параллельно.

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

Чтобы закрыть текущую диаграмму, нажмите кнопку Закрыть (Кнопка 'X') на вкладке Диаграмма. Это не удалит диаграмму из Вашего проекта. Чтобы снова отобразить диаграмму, которая была закрыта или переименовать или удалить диаграмму, см. следующий раздел В ОКНЕ ПРОЕКТА.

В окне проекта

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

Чтобы снова отобразить диаграмму, в контекстном меню диаграммы выберите из списка имя проекта.

Для добавления диаграммы в проект, в дисплее из Pop-Up меню нажмите кнопку Добавить диаграмму. Кроме того, можно выбрать Добавить Диаграмма в меню "Файл". Каждый раз, когда Вы добавляете новую диаграмму, ее имя будет диаграмма, или, если это уже использовался VPL, добавится номер, например, Diagram0, Diagram1.

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

Чтобы удалить диаграмму, правой кнопкой мыши на диаграмме в контекстном меню или в окне проекта и выберите команду Удалить.

В окне Свойства

В окне свойств отображаются свойства выбранного объекта. Это позволяет настроить активности (включая сервисы) и соединения для диаграмм. Чтобы изменить свойства активности, выберите ее, щелкнув левой кнопкой, свойства будут отображаться в окне "Свойства".

Окно ошибки

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

Создание диаграммы

Когда вы открываете VPL в первый раз, или если вы выберите Новый из меню Файл, появится новая схема. Вы можете перетаскивать (или двойной клик), элементы из основных видов активностей или сервисов, методических материалов для размещения на вашей новой диаграмме.

Если имя активности или сервиса имеет значения, вы можете изменить их, выбрав блок (щелкнув по нему), и изменить имя в окне "Свойства". Например, чтобы изменить имя службы, которую поместили на диаграмме, нужно выбрать ее, а затем ввести новое имя в поле Имя в панели инструментов "Свойства". Некоторые встроенные деятельности (например, данные, переменная, если, Switch, расчет, а также комментарий) позволяют устанавливать значения непосредственно на блоке.

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

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

Сохранение диаграммы

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

Загрузка Диаграмма

Вы можете загрузить диаграмму (или, более конкретно, проект, содержащий диаграмму) с помощью команды "Открыть" в меню "Файл". Это приведет к замене существующих открытых диаграмм. Если у вас есть несохраненные изменения в существующей схеме, то сначала будет предложено сохранить эти изменения. VPL также отслеживает недавно сохраненные проекты и позволяет выбирать их по имени, из последних проектов в меню "Файл".

Печать Диаграмм

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

Выход из VPL

Вы можете выйти из VPL, выбрав команду Выход в меню "Файл". Если у вас есть несохраненные изменения в диаграмме, вам будет предложено сохранить эти изменения.

Подключение активностей

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

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

Для выбора соединения выбрать выход из левого списка (From) и ввод в списке справа (То) И нажмите кнопку ОК.

Иногда, устанавливая связь между активностями, также требуется выбрать, какие данные передаются. В этом случае появится диалоговое окно и отображает параметры сообщения отправителя на левой стороне, а принимаемые параметры справа. Входящие параметры могут включать в себя стандартные типы данных (0 для числовых типов, true или false для булевых типов , а также нуль для всех остальных типов).

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

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

Чтобы удалить ссылку выделите ее и нажмите кнопку Удалить из меню Правка или из всплывающего контекстного меню для ссылки. Вы можете также использовать клавишу Del.

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

Создание и редактирование активностей

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

Как и встроенные активности, пользовательские активности могут поддерживать один или более входных действий (обработчиков). VPL автоматически создает по умолчанию шаблон для пользовательской активности. Шаблон позволяет определить поток данных, который начинается, когда начинается пользовательская активность (то есть, когда Проект осуществляется), независимо от активности на входе подключения. Начать можно выполнять такие задачи, как инициализация переменных. Шаблон действий позволяет определить поток данных, который используется для ввода и вывода соединений.

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

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

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

Вы можете таким образом добавить (или удалить) несколько значений. Кроме того, вы можете добавлять, изменять или удалять уведомления, нажав на вкладку "Уведомления". Когда вы закончите редактирование ввода и вывода соединения, нажмите OK. Вы всегда можете активизировать этот диалог снова для добавления или изменения этих параметров.

Использование служб

Сервисы - это отдельно скомпилированные программы, как правило, написаны на C #, которые могут быть использованы с активностью в диаграмме VPL. Вы можете добавить сервисы на диаграмму с помощью панели инструментов Services.

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

После добавления сервиса в диаграмму вы увидите, что перечисленные в меню "Правка" под Вставить => активность.

Рассмотрим следующий блок активности службы, которая реализует услуги таймер:

Операции

Вход на левой стороне (стрелка в блок) может быть использован для отправки запросов к службе Таймер, таких, как GetCurrentTime, SetTimer и ждать. Эти типы сообщений также часто называют операции по терминологии DSS.

В DSS протоколе есть несколько стандартных операций, которые могут выбрать необходимые услуги.

Запрос

Описание

Завершение

Завершает работу службы.

Получать

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

Запрос

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

Заменять

Заменяет все службы с указанным значением.

Обновление

Заменяет часть службы. Обновленные операции обычно имеют имена, которые являются специфическими для обслуживания.

Ответы

В ответ на просьбу сервис Таймер выдает сообщение о результатах (или ответ) на контакт на правой стороне (стрелка из блока). Для GetCurrentTime, ответ на текущую дату и время, когда был получен запрос. Для SetTimer и жди ответа просто сообщение об успехе. Запрос SetTimer - немного сложнее. В дополнение к отправке обратно ответа, сразу же отправляется сообщение, что запрос был принят, Таймер отправляет уведомление через некоторое время (после определенного времени).

Уведомления

Круглый контакт на правой стороне. Уведомления имеют место, когда случается какое-либо событие, что вызывает сервис для обновления внутреннего состояния. Тип сообщений для уведомлений часто такой же, как для обновления типа операций.

Для службы таймер уведомления отправляются, когда таймер меняет состояние из-за предыдущей просьбы SetTimer. Обратите внимание, что в данном случае два сообщения получаются от сервиса Таймер: немедленный ответ об успехе, когда запрос сделан, и TimerComplete - уведомление спустя некоторое время.

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

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

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

В VPL вы можете использовать существующие сервисы снова и снова, только создавая новые блоки активности для них. Это удобно, если вы хотите использовать сервис в нескольких местах на диаграмме, поскольку это делает макет проще для чтения. Будьте осторожны, чтобы не создавать новых видов активности, если вы хотите иметь только один. В противном случае VPL создаст несколько экземпляров службы, и возникнет большая путаница. Если вы создали несколько экземпляров, поскольку имена VPL активностей должны быть уникальны, будет автоматически добавлять номер к имени, так что вы получите в итоге Таймер, Timer0, Time1, Timer2 и т.д.

Недостатки

Если все в вашей программе работает, как ожидалось, то вы всегда получите ответы, которые ожидаете от службы. Однако иногда что-то идет неправильно. Если служба не может выполнить ваш запрос или отвергает как неприемлемый, то она будет посылать назад Fault. (Ошибки также иногда называют Исключения. Технически они разные, но оба они означают, что произошла непредвиденная ошибка.)

Есть много различных типов Неисправностей и они характерны для определенных сервисов, поэтому невозможно представить список всех возможных неисправностей. Сообщение об ошибках содержит следующую информацию: кодекс, Reason, Node, Роль и детализации. Некоторые или все из этих полей могут быть пустыми. В целом, виды неисправностей, которые могут возникнуть следующие: OperationFailed, InsufficientResources, ActionNotSupported, MessageNotSupported, UnknownContract, UnknownEntry, DuplicateEntry или DuplicateSubscriber.

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

КЕС / ResponsesPlusFault.png

Обратите внимание, что либо правильный ответ будет получен, либо сообщение о неисправности. Вы никогда не получите несколько ответов в результате одного и того же запроса. Так что, хотя есть три выходных соединений на схеме, все три не будут активны одновременно. Кроме того, в данном конкретном случае, ответ возвращается непосредственно из SetTimer. Как указывалось выше, необходимо использовать уведомления на получение сообщений, когда время истекло. Эта схема может выглядеть следующим образом: она ждет перед запуском испытаний и активности, но если все работает, они выполняются практически сразу и простой диалог никогда не появится.

Диалог Акции и Уведомления также позволяет создать дополнительные связи для уведомления. Чтобы добавить извещение, щелкните вкладку Уведомления в диалоговом окне, а затем нажмите кнопку "Добавить" и указать имя нужного типа. После нажатия кнопки OK, вы можете перетащить связи с выходом из ваших пользовательских потоков данных активности на уведомление связи активности, которую вы только что создали.

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

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

Запуск служб

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

Базовые службы

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

Службы. Пользовательский интерфейс

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

Службы Робототехники

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

Службы Моделирования

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

Настройка служб

Мероприятия, которые представляют службы DSS, могут потребовать информацию о конфигурации, с которой они должны начать. Эти параметры называются исходное состояние. Службы отображаются в окне "Свойства", когда выбран блок активности. Установка начальной конфигурации может быть достигнута путем отображения страницы конфигурации Set. Нажмите Установить конфигурацию из меню "Правка" или службы контекстного меню, или двойным щелчком на службе блока.

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

Установить начальную конфигурацию

Служба может быть начальным состоянием, которое включает его конфигурацию при установке в исходное состояние настройки сервиса. Конфигурация может включать в себя такие настройки, как последовательный порт связи и скорость передачи. Она также может включать физические свойства. Эти первоначальные свойства конфигурации могут быть установлен либо в окне "Свойства" или на закладке Начальные конфигурации страницы Set.

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

Вы можете определить, какие службы использовать для партнеров, перетаскивая их из панели инструментов Службы для их записи на вкладке "Партнеры конфигурации” страницы Set. Вы можете настроить конфигурацию для партнерских служб.

При установке начальной конфигурации служб VPL добавляет файл для этого проекта. Если служба будет удалена, а начальная конфигурация была установлена, VPL даст предупреждение с просьбой подтвердить удаление, поскольку в этом случае будет также удален его файл конфигурации. Конфигурационный файл может быть удален, выбрав его во всплывающем меню, и нажав кнопку "Удалить".

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

Используйте другой сервис

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

Использование манифеста

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

Ничего

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

Запуск и отладка

Для запуска проекта с открытым окном VPL, нажмите кнопку Пуск в меню "Выполнить". Появится диалоговое окно Выполнить, начнется выполнение DSS и запустится проект, а также другие службы, определенные в качестве партнеров.

Диалоговое окно Выполнить появится с гиперссылкой на веб - странице Debug, а также список отображения последовательности сообщений, которые содержат информацию о состоянии запуска проекта. Меню "Фильтр" в верхней части списка позволяет определить, какие сообщения отображаются на дисплее. Обратите внимание, что есть знак плюс (+) слева от каждого сообщения. При нажатии на него сообщение расширится.

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

Чтобы остановить программу, нажмите кнопку Остановить в диалоговом окне Выполнить и нажмите кнопку "Закрыть" ("Х" в верхнем правом углу) на диалоговом окне "Выполнить".

Отладка вашего VPL

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

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

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

Полезные ссылки

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

Служба Directory - Отображает вывод сервисной службы Directory.

Отладка и трассировка сообщений - Отображение консоли службы Output", отладки и лог- сообщений, созданных на каком-нибудь узле DSS.

Текущая активность

Текущая активность показывает вид вашей диаграммы и три кнопки для run, run медленно, по шагу к следующему заданию, которые можно использовать для контроля исполнения программы.

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

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

Точки останова

Раздел отображает все точки останова системы. Остановка является способом исполнения паузы в конкретной деятельности, что позволяет просматривать ее состояние в этой точке. После установки точки останова, вы можете использовать или Ран, Ран медленно в разделе Текущая деятельность, чтобы перейти к этой остановке (или первой точке остановки, если вы установили несколько точек остановки).

Кнопка Очистить удаляет точку остановки (если она больше не нужна), а также отключает кнопку, которая позволяет временно игнорировать точку остановки во время отладки. Переключение на кнопку Включить позволяет восстановить остановки.

Используя эти кнопки, появится снова страница Debug Открыть автоматически. Используйте кнопку "Обновить" браузера, чтобы обновить его.

Активности

Этот раздел указывает на следующий блок активности, который будет выполнен при отладке. (Там может быть больше, чем 1 активность, если у вас есть параллельные потоки данных). Он также отображает состояние информации об этой активности и включает SetBP (установить точки остановки), которая позволяет приостановить выполнение этой активности.

Если вы используете кнопку SetBP, просмотр страницы Debug автоматически обновляется, чтобы просмотреть новые точки остановки в разделе Breakpoints.

Использование Port Settings

Так как Ваш проект сам по себе является сервисом DSS (децентрализованной системой программного Services), когда VPL запускает проект DSS и загружает службу. Чтобы сделать это, нужны HTTP и порт TCP. VPL автоматически устанавливает значения по умолчанию для вашего проекта. Однако, если вы работаете в нескольких экземплярах VPL в одно и то же время (или активны другие приложения, которые могут использовать эти порты), вы можете изменить настройки порта, нажав на кнопку Настройки порта в меню Выполнить и введя новые значения в появившемся диалоговом окне.

Вы также можете использовать настройки порта для доступа к отладочной информации о вашем приложении, используя веб - браузер и установив местонахождение вашего порта и консоли вывода; например, с помощью настройки порта по умолчанию, http://localhost:50000/console/output URL, будет отображать веб - страницы вывода консоли службы и ссылки на дополнительную информацию.

Или, если вы нажмете на кнопку "Диаграммы" в панели инструментов проекта, настройки порта перечислены в панели инструментов Свойства и вы можете изменить их там.

Компиляция и запуск VPL приложения

При желании можно скомпилировать VPL проект. Функция генерации кода позволяет диаграммам VPL быть конвертированным в C # код, который будет собран в пакет, содержащий один или более сервисов DSS. Это позволяет простоту разработки сочетать с силой и скоростью исполнения C #.

Есть несколько причин, почему вы, возможно, пожелаете скомпилировать VPL проект. Компиляция вашего проекта VPL как правило, повышает производительность выполнения вашего приложения. Компиляции проекта генерирует более 1 сервиса DSS, это также позволит вам повторно использовать сервисы в других проектах VPL (или DSS приложениях). Наконец, поскольку компиляции проекта VPL генерирует код Microsoft Visual C #, вы можете использовать VPL в качестве отправной точки для создания быстрого прототипа приложения. Однако имейте в виду, что вы не можете создать скомпилированный код и преобразовать его обратно в диаграммы VPL. Тем не менее, действующий DSS сервис появится на панели инструментов службы VPL, если он помещается в папку bin вашей инсталляции.

Создание Кода

Функция генерации кода позволяет диаграммам VPL быть конвертированным в C # код, который будет собран в пакет, содержащий один или более сервис DSS. Это позволяет простоту разработки сочетать с силой и скоростью исполнения C #.

Кроме того, код может быть использован в качестве отправной точки для разработчиков в тех областях, где VPL не рассматривается, например, выполнять сложные вычисления.

Настройка Генерация кода

Первым шагом является настройка диаграммы для генерации кода, следует выполнить следующие действия.

  1. В панели инструментов нажмите проект
  2. В панели Свойства нужно обеспечить, чтобы KeyLocation правильно определяло расположение ключа в SNK файле. Подходящий ключ может быть найден в samplesmrisamples.snk, но вы можете создать свой собственный ключ, если хотите. Все DSS сервисы должны быть подписаны в целях безопасности.
  3. В панели Свойства укажите SourceLocation

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

Начало Компиляции

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

После успешного запуска компиляции в качестве службы новая сборка будет создана и скопировано в каталог bin.

В месте, указанном в свойстве SourceLocation будет несколько файлов Csproj. Они могут быть использованы для проверки и / или модифицирования сгенерированного кода и перекомпилированы, если необходимо.

Создание код снова перекроет все изменения, внесенные в сгенерированный код без выдачи предупреждения.

Запуск службы Сгенерирована