Сегодня: Вторник, 19.03.2024, 05:02 (МСК)| Здравствуйте, Гость| Мой профиль | Регистрация | Вход | RSS

Что такое matte painting?

Спецэффекты в Cinema4D

Эргономика компьютерных клавиатур

Google Chrome. Таким должен быть браузер

Программы — виртуальные гитаристы
Главная » ПРОГРАММИРОВАНИЕ

Визуальная среда разработки Flowstone

29.10.2010

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

Помимо этого значимое развитие сейчас происходит в системах проектирования и визуализации инженерно-технических решений. А многие новые пакеты 3D-моделирования уже являются и средами разработки для компьютерных игр. В общем, ситуация не стоит на месте и сегодня мы рассмотрим одного из малоизвестных и мощных представителей молодого поколения разработок — визуальный конструктор Flowstone от фирмы DSP Robotics



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


DSP Robotics Flowstone


Требования к установке: Pentium III/AMD и выше (должна иметься поддержка SSE), 512 Mб RAM, Windows 7/Vista/XP/2000.

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

Перво-наперво нужно выделить ее предназначение — работа с цифровым сигнальным процессингом (DSP — Digital Signal Processing). 

Это подразумевает использование:
  • в роботехнике;
  • непосредственно в DSP-системах (IIR, FFT, PID, корелляция и т.п.).
  • для обработки данных в режиме реального времени с различных внешних источников; 
  • для управления различными механизмами и сенсорами;
  • анализа и обработки звука;
  • автоматизации домашних устройств (например, управление температурой, освещением, включение музыки и т.п.),
  • тестирований и измерений;
  • для устройств управления доступом;
  • для быстрого прототипирования устройств и приложений...
В общем, везде, где требуется программирование DSP. Основной базис программы — это, конечно же звук, хотя уже на данный момент среда развилась до уровня более широкого применения и предусматривает, например, варианты управления роботами и устройствами. Другими словами, сейчас вы можете создавать программные структуры ограниченные не только входами и выходами звукового интерфейса, но и USB, и ИК, и COM. 




В рамках реализации мы имеем три варианта поставки Flowstone — бесплатная версия (хороша для ознакомления и обучения, но есть ограничения по количеству поддерживаемых внешних устройств и отсутствует экспорт в *.exe-файл), средняя по возможностям Enterprise ($295) и профессиональная Professional ($745) версии. Последние довольно дороги. 

Что интересно, Flowstone сильно напоминает модульные конструкторы для звука, которые в небольшом количестве присутствовали на рынке в начале 00-х. В их рамках из определенного набора компонент можно было на визуальном уровне собирать звуковые плагины и музыкальные инструменты. Между тем, такие решения не очень прижились за исключением ныне популярной программы Native Instruments Reaktor, а также конструктора синтезаторов SynthMaker. 

Разрабочики из DSP Robotics решили пойти дальше, то есть, во-первых, не зацикливаться только на звуке, во-вторых, создать более универсальную визуализированную модель. Например, в тех же звуковых конструкторах вы не встретите таких компонент как визуализаторов FFT (FFT — быстрое преобразование Фурье) и тому подобного. Здесь же вы можете собрать готовую программу с хорошим GUI особенно не затрудняясь. 

Также можно провести некую параллель с Matlab, но в Flowstone мы имеем более узкоспециализированную среду, к тому же от пользователей требуются только базовые знания. 


Как в ней работать?


По терминологии программы имеются два ключевых понятия — Компоненты и Коннекторы. Компоненты — это рабочие блоки из которых вы формируете схему, а Коннекторами для простоты объяснения называются входы и выходы Компонент. Далее уже все зависит от ваших знаний. 
Графический интерфейс разделяется на несколько ключевых групп, среди которых:
  • Главное меню.
  • Панель инструментов (Компонент).
  • Рабочая область.
  • Окно навигации по рабочим областям.

Видео-плеер/рекордер, созданный в Flowstone

Компонент очень много, и все они довольно удобно распределены по подгруппам, которые имеет смысл указать, для того, чтобы вы более полно смогли представить себе картину.
  • External — внешние устройства и порты, например, Audio In/Out, COM-порт и так далее.
  • Element — стандартные событийные элементы типа After Load, After Duplicate. 
  • Maths — все математические операции, включая округление до целых чисел, работа с массивами и т.п. здесь представлена в виде готовых модулей, у которых есть входы, куда поступают исходные данные и выходы, посредством которых передаются результаты. 
  • String — операции со строковыми типами данных в виде отдельных модулей.
  • Flow — дополнительные промежуточные элементы для работы с данными.
  • DSP — готовые модули цифрового сигнального процессинга, здесь вы можете найти генераторы, фильтры, модуляторы и т.п.
  • Audio — специализированные аудио-компоненты, а именно, ADSR-огибающие, обработка MIDI-сообщений, матрицы подключений.
  • Imagery — загрузка изображений, видео. 
  • GUI — кнопки, индикаторы и другие интерфейсные элементы.
  • System — основные блоки настройки для экспортированной exe-программы. Здесь можно сформировать главное меню и так далее. 
  • Other — остальные, не вошедшие ни в одну из названных групп.
Стоит сказать, что перед тем как приступить к работе с программой нужно разобраться не столько в самих Компонентах, сколько в Коннекторах. Дело в том, что все входы и выходы помечаются специальными символами. Например, «I» указывает на то, что данный вход или выход подразумевает использование целых значений (т.е. integer) и так далее. Естественно, начальные знания в области программирования у пользователя должны быть, иначе он просто не сможет работать. И как он это сделает, если не понимает, что такое массивы и переменные? Помимо этого тот же самый пользователь должен обладать знаниями в области цифрового сигнального процессинга, чтобы понимать, что, куда и зачем идет.


Пример FM-модулятора в Flowstone

Нужно сказать, что компания DSP Robotics занимается не только разработкой среды Flowstone, но и продает всевозмолжные сенсоры, датчики, электронные модули и аппаратные интерфейсы. То есть, сама среда разработки родилась не на пустом месте. И сами блоки (Компоненты) разделены качественно, то есть применимы для различных областей. 


Скорость освоения


Если вы обладаете заниями начального уровня в области программирования и DSP-процессинга, то освоение не будет долгим. Первые дни идет привыкание к интерфейсу, изучению Компонент и вариантов Коннекторов. Стоит отметить, что у среды имеется разносторонний Help, правда с одним недостатком — приведено мало приммеров использования того или иного Компонента. Вместе с тем на сайте разработчика имеется множество собранных схем, сохраненных в формате *.fsm (внутренний формат файлов). Поэтому, перед тем как приняться создавать что-либо свое, рекомендуется изучить то, что есть. В примерах как от самих разработчиков, так и от сторонних пользователей вы сможете ощутить всю мощь среды Flowstone. Потому как там есть видео плееры/рекордеры, мр3-пллеры, полноценные реализации интернет-радио, эквалайзеры и т.п.
Здесь же вы освоите привязку внутренней схемы к графическому интерфейсу самого модуля, потому как описывать все словами в данном случае не совсем целесообразно по сравнению с тем, что может дать практическое освоение.


Результаты


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


Есть ли стандартное программирование или можно использовать только блоки?


В рамках среды Flowstone предусмотрено и обычное программирование, для чего используются специальный Компонент Кода (Code Component), который находится в закладке DSP. В его рамках вы можете пользоваться скриптовым С++-подобным языком. Код может выглядеть так:

streamin in;
streamout out;
float gain;
gain = 2.0;
out = in*gain;

Согласно этому коду, после его введения в Code Component у вас автоматически (!) появляются один in и один out, а сам модуль выдает результат после вычислений по единственной формуле. Параметр/переменную gain можно поместить и в качестве входных данных, подключив его, например, к ручке управления уровнем сигнала. 


Пример использования Code Component. В результате ввода наших строк на самом модуле появились новые входы и выходы

В общем скриптовое программирование не сложное. При этом мы неспроста говорим о скриптах, а не о полноценном языке, поскольку в Flowstone все очень урезано. В рамках программирования подразумеваются только вычисления, при этом вы не можете явно создавать собственные функции. Это возможно только в случае, если саму функцию вы реализуете в виде отдельного Code Component. Даже в примере с нашим кодом мы создали отдельную функцию (умножение входного сигнала на занчение gain). А в дальнейшем все собирается по блокам. Можно сказать, визуализированное ООП и процедурное программирование одновременно. 
Наверное, фраза об отсутствии возможности создания в рамках скрипта пользовательских функций многих нексолько поставила в тупик. Но стоит отметить, что базовые математические функции, то есть сам математический аппарат в скрипте присутствует, там есть синусы, косинусы и тому подобное. 


Подытожим


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

Кристофер




Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ассоциация боевых роботов
Рекомендуем...
Новости

Разделы

Опросы

Какой язык программирования вы считаете наиболее актуальным сегодня?
Всего ответов: 329

Друзья

3D-кино






Найти на сайте:








Об авторе       Контакты      Вопрос-ответ        Хостинг от uCoz