MojorDoMo и Processing

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

MojorDoMo и Processing

Сообщение Alex » Чт июл 19, 2012 11:00 am

Возник очередной вопрос. Где-то читал, что программу на Processing-е (там кажется Ява) можно интегрировать прямо на веб-страничку. Было бы здорово осуществить это на практике. Только как? Тестовую программку на Processing-е могу предоставить.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: MojorDoMo и Processing

Сообщение sergejey » Чт июл 19, 2012 2:42 pm

немного погуглил и нашел http://processingjs.org/ -- это для запуска программ в браузере.
но вообще скинь код, посмотрим что можно сделать :)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: MojorDoMo и Processing

Сообщение Alex » Чт июл 19, 2012 4:23 pm

Вот примеры как это выглядит на веб-страничках:

http://glebsite.net/assets/3dclock/index.html
http://www.openprocessing.org/sketch/59627
Вложения
applet.zip
А вот апплет.
(179.84 КБ) 339 скачиваний
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: MojorDoMo и Processing

Сообщение ser009 » Вс дек 16, 2012 2:27 pm

Monitor program for Arduino интересная программа
http://n.mtng.org/ele/arduino/arduinomon.html
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: MojorDoMo и Processing

Сообщение Alex » Чт янв 30, 2014 9:13 pm

Если кто не знает — Processing это гениальный язык программирования и визуализации. На нём можно делать совершенно потрясающие вещи. У меня давно была идея интегрировать его в М для продвинутой визуализации данных и процессов. Оказалось, что это не так сложно и теперь в М можно просто творить чудеса.

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

Для примера я взял готовый 3D “живой” гиперкуб и переделал под свои нужды. Каждый кубик это сенсор. Гиперкуб в реальном времени получает данные из системы и отображает цветом состояние сенсоров.

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

Подобные объекты можно использовать для визуализации больших массивов информации (например, сотни датчиков) или сложных процессов (например, части системы могут иметь своё здоровье, которое наглядно отображается в 3D виде.)

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

Ещё вопрос. Это работает на отдельной страничке, но не хочет работать в стандартных вкладках М. Как бы это исправить?
Вложения
2.jpg
2.jpg (33.25 КБ) 11629 просмотров
1.jpg
1.jpg (31.72 КБ) 11629 просмотров
3.jpg
3.jpg (30.01 КБ) 11629 просмотров
1.zip
(93.77 КБ) 308 скачиваний
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: MojorDoMo и Processing

Сообщение sergejey » Пт янв 31, 2014 10:17 am

Alex, интересная наработка. а как происходит в данном случае подключение?

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: MojorDoMo и Processing

Сообщение Alex » Пт янв 31, 2014 11:30 am

В архиве есть готовый работающий пример. А в общем случае действуем так:

Берём в Интернете готовый файл pde или пишем сами программу на Процессинге.

Далее берём файл processing-1.4.1.js и помещаем в папку js.

В php файле подключаем js библиотеки, как в примере.

Дальше хитрость: чтобы получить значение из JS в pde файле используем переменную (но не объявляем её!), которую объявляем в php файле.

Вот и всё. А дальше дело техники — в php файле присваиваем ей значение, которое автоматически становится доступным внутри pde программы.

Всё работает на ура, никаких проблем замечено не было.

------------------
Теперь сняты все ограничения на графику внутри М. Можно сделать не только любой индикатор, но запрограммировать любой 2D или 3D мир прямо на страничке. Кто не особо понял о чём это я — посмотрите демо на Процессинге — глаза вылезут на лоб, а вопросы отпадут.

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

Можно отображать внутреннюю сущность частей системы, а можно управлять сложной системой через визуальные 3D объекты. Мы взаимодействуем с сущностями, а сущности меняют состояние системы.

Сказать, что это фантастика — это ничего не сказать. Это вообще вынос мозга.
------------------

Теперь о задачах.

1. Заставить это работать внутри вкладок М, а не на отдельной страничке.

2. Написать промежуточный (объект на JS?) слой Ajax на для лёгкого сопряжения значений переменных в М и переменных в Процессинге.

Задачи ерундовые. Для нормального программиста 1 часа хватит.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: MojorDoMo и Processing

Сообщение sergejey » Пт янв 31, 2014 11:39 am

Да, очень круто. Надо "пощупать" :)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: MojorDoMo и Processing

Сообщение Alex » Пн фев 03, 2014 9:04 pm

Промежуточный слой middle-connector и пример живого (реакция 1-2 сек.) 3D вольтметра.


Промежуточный слой
------------------------------

1. Запрашивает и обновляет значения свойств объектов М в программах на Процессинге.
2. Транслирует изменения значений в программах на Процессинге обратно в М.
3. Запускает скрипты М по запросу программ на П.

Является посредником между П и М в обе стороны. :)


Живой 3D вольтметр
----------------------------

Пример 3D объекта, который в реальном времени получает напряжение в сети и отображает его в 3D виде. Он медленно поворачивается и его можно вращать мышкой и нажимать на кнопки Set- и Set+, которые меняют свойства объекта voltHome в М.


НЕРЕШЁННЫЕ ЗАДАЧИ
------------------------------
Осталось решить только одну проблему. Как заставить это работать в стандартных вкладках М. Help!


Как запускать
------------------

Папки из архива поместить в дирректорию

htdocs

Запускать строкой

http:// ... ip ... /processing/electro_volt.php

Поменять названия объектов в файле

electro_volt.php

на свои.
Вложения
volt.png
volt.png (30.52 КБ) 11517 просмотров
middle_connector_v1_0.zip
(86.32 КБ) 292 скачивания
lavstudia
Сообщения: 31
Зарегистрирован: Вт фев 04, 2014 9:29 am
Благодарил (а): 0
Поблагодарили: 4 раза

Re: MojorDoMo и Processing

Сообщение lavstudia » Вт фев 04, 2014 9:41 am

Processing - штука хорошая. Но есть одно серьезная проблема - это не web стандарт, а очерезная "java поделка". В очередной раз необходимы ухищрения с прослойками и др. проблемами.

Рекомендую обратить внимание на WebGL - web стандарт. Код пишется непосредственно в javascript, а все современные браузеры используют WebGL по умолчанию и ненужно больше всяких плагинов и дополнений.
Для WebGL существует множество framework-ов. Приведу пример особо значимых и достигших большого развития:
threejs: http://threejs.org/
babylonjs: http://www.babylonjs.com/
goo: http://www.gootechnologies.com/
Ответить