Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Необычный GUI
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Skaf
Стоит задача разработки некой распределенной системы управления автоматикой. Основная идея - есть центральный сервер, который собственно подключен к автоматике и есть панели операторов. У каждого оператора своя панель со своим набором кнопок на экране.

Для сервера предполагается использовать достаточно мощный ПК с Linux. А панели делать на ARM9 ~400mhz с Angstrom Linux.

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

В качестве браузера на встраиваемых панелях я думал использовать программу на Qt c WebKit. Эти вещи легко поднимаются во встраиваемом линуксе.

Но тут возникают две сложности.

Первое- панель должна быть достаточно сложной и красивой. Будет использоваться JavaScript фреймворк для создания всяких визуальных эффектов. ARM9 может не потянуть анимацию на JS. WebKit не самый быстрый браузер. Но эту проблему можно решить по-другому. Почему бы не исполнять эту программу-браузер опять же на сервере, а на панель гнать только изображение по протоколу VNC (программы на Qt могут гнать свой вывод в сеть по VNC). А на панелях поставить просто VNCViewer.

Второе- в панелях необходимо будет показывать видео с видеокамер. На ПК для этого используется Flash, которого нет в WebKit. HTML5 с функциями видео тоже в WebKit не поддерживаются. Вопрос с отображением потокового видео остается открытым.

Какие будут предложения? rolleyes.gif
kurtis
Чисто теоретически, можно корневую файловую систему подгружать как-то по сети (например в убуте через тфтп). Тогда исчезнет проблема обновления прошивок панелей.

А по поводу flash, то мне кажется тут ARM9 слабоват будет, и нужно смотреть предлагает ли поддержку flash производитель процессора.
Skaf
Ну приятнее было бы отказаться от flash, нежели от ARM9. Может быть есть какие-то способы вывода потокового видео?

Монтировать КФС по сети можно, даже не по TFTP а по NFS. Вроде для загрузчика u-Boot это вполне тривиальная опция. Но тогда программа будет исполняться на встраиваемой платформе, что создает лишние проблемы. Пожалуй исполнять софт на сервере и отображать по VNC было бы удобнее.. Ну чисто в теории, на практике я пока не пробовал.

даже не знаю.. если речь идео о веб интерфейсе- то плагин к WebKit... если отойти от идеи веб интерфейса, то какой тогда другой? Я просто раньше плотно занимался веб программированием, хорошо знаком с серверным программированием, JavaScript, Perl и прочим. Этот опыт бы тут пригодился.
gosha
А если на arm9 машинах написать gtk приложения.
А по сети гонять данные (состояние/управление).
http://www.opennet.ru/docs/RUS/gtk_mono/
gormih
Почему именно ARM9?
Судя по всему проект не копеечный - не думали о применении одноплатных пк?
Тут затраты на аппаратный комплекс будут выше, однако это с лихвой окупит затраты на разработку встраевомого ПО.
Если, конечно изделие не будет выпускаться тысячами экземпляров :-)
Skaf
Цитата
Почему именно ARM9?
Судя по всему проект не копеечный - не думали о применении одноплатных пк?


Не люблю, когда ресурсы не и спользуются. Можно конечно взять хоть материнки Mini-ITX на атоме... Но я как-то привык бережнее относиться к ресурсам. Может и не прав. Концепция пока не решена, пока думаю на чем и как можно было бы сделать.

Цитата
А если на arm9 машинах написать gtk приложения.
А по сети гонять данные (состояние/управление).
http://www.opennet.ru/docs/RUS/gtk_mono/


А чем GTK лучше, чем Qt. Программа на Qt- первое, что пришло мне в голову. Но появится задача обновления софта на панелях. Хотя.. можно, конечно, и КФС монтировать удаленную, по NFS.. а там и новая, обновленная программа... Тогда панель надо перезагрузить, чтобы изменения вступили в силу... Вобщем как-то веб интерфейс мне больше нравится. И все бы замечательно, если бы не потоковое видео.
gormih
Цитата(Skaf @ Oct 5 2011, 23:07) *
Не люблю, когда ресурсы не и спользуются. Можно конечно взять хоть материнки Mini-ITX на атоме... Но я как-то привык бережнее относиться к ресурсам. Может и не прав. Концепция пока не решена, пока думаю на чем и как можно было бы сделать.

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

Цитата(Skaf @ Oct 5 2011, 23:07) *
Вобщем как-то веб интерфейс мне больше нравится. И все бы замечательно, если бы не потоковое видео.

Потоковое видео через веб на arm - имхо лишняя головная боль.
Есть же готовые gnu библиотеки под RTP, RTCP и прочие радости с выводом содержимого потока прямо в любую часть окна ... Я бы пошел по этому пути.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.