Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Написание простого GUI 
:(
    Опции темы
umup
Дата 17.9.2006, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.9.2006

Репутация: 1
Всего: 1



 Возможно ли серьёзное использование Ruby для написания несложной программы сбора данных и отображения графиков, если даже старейшая GUI Ruby-Tk не имеет нормальной документации (нужно лезть в исходники, искать нужные классы и их методы). Неужели за столько лет нельзя было потратить день-два и привести доки до уровня Питона и Перла. Да, в книгах есть некоторое описание, но очень поверхностное. В версии 1.8.2 хотя бы примеры запускались, пробовал 1.8.4 и 1.8.5 - ни один не запускается (или виснет после запуска, или сразу закрывается) (запускал в Win98 и WinXP на двух разных компьютерах). Не говоря уже о разных глюках (например, где мышкой рисуются линии). По расширениям - Tix, BWidgets вообще никакой информации.
 - С Fox Toolkit также - почему-то присутствуют версии 1.2 и 1.6, в дистрибутиве 1.8.4 версия примеры запускались, поставил 1.8.5 - не работают.
 - wxRuby - посмотрел - 'early beta stage' - все ясно.

 Думаю, похожая ситуация и с множеством других - FLTK, GTK и т.д.

 Часто на разных форумах вижу ответы авторов этих и других пакетов и даже самого Ruby - типа если хочешь, напиши сам, но неужели я смогу лучше автора написать документацию, роясь в чужих исходниках ? Я, например, использую Doxygen, когда вношу изменения, сразу вношу изменения и в документацию.

 Также многих отталкивает невозможность компиляции исходников в промежуточный код (как в Питоне) для производства коммерческих продуктов.

 Короче, использовал кто-нибудь Ruby для подобных задач ?

 Я сейчас больше склоняюсь к Питону, там с GUI таких проблем нет (Tkinter, wxPython - все примеры работают стабильно).


Это сообщение отредактировал(а) umup - 17.9.2006, 13:33
PM MAIL   Вверх
max_lapshin
Дата 17.9.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 10.9.2006
Где: Москва

Репутация: 2
Всего: 3



Скорее всего, эта часть неразвита из-за того, что проще всего приложение писать, как веб-приложение. Способа быстрее создать софт еще не придумали.
PM MAIL WWW ICQ Jabber   Вверх
umup
Дата 17.9.2006, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.9.2006

Репутация: 1
Всего: 1



> что проще всего приложение писать, как веб-приложение

 А можно подробнее, как это сделать, какие пакеты задействовать и т.п., вообще, в какую сторону копать (еще не сталкивался с этим). И можно ли организовать доступ к просмотру данных и графиков с других компьютеров в таком режиме (по локальной сети или через интернет)?
 Данные будут собираться через последовательный порт (уже работает, написал через вызовы WinAPI), интерфейс начал писать на Ruby-Tk, в версии 1.8.2 шло нормально, поставил 1.8.4, 1.8.5 - Tk вообще не запускается, виснет еще на этапе инициализации (в require 'Tk'), можел кто с этим сталкивался (системы WinXP, Win98).
 Нужна кроссплатформенная переносимость Windows - Linux - BSD.


Это сообщение отредактировал(а) umup - 17.9.2006, 14:31
PM MAIL   Вверх
max_lapshin
Дата 17.9.2006, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 10.9.2006
Где: Москва

Репутация: 2
Всего: 3



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

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

Если нужна более детальная помощь, более детально озвучь задачу.

Добавлено @ 17:15 
Да, и автоматически решается вопрос с переносимостью. Не очень, правда, ясно, как же быть с COM-портом. Если нужно считывание данных под linux-ом, то выглядеть это будет по-другому.
PM MAIL WWW ICQ Jabber   Вверх
umup
Дата 17.9.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.9.2006

Репутация: 1
Всего: 1



 С ком-портом разберусь (сейчас нужно работать только под Windows, потом разберусь с Linuxом, например как сделано в pyserial, для Ruby из подобных библиотек нашел serialport_win32, но прикрутить его не получилось, написал через вызовы WinAPI).
 В RoR пока не лезу, сначала попробую что-нибудь попроще для ознакомления с Webом, сейчас смотрю Ruby cookbook, The Ruby way, Programming Ruby, Ruby developer's guide - там есть разделы на эту тему.

PM MAIL   Вверх
max_lapshin
Дата 17.9.2006, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 10.9.2006
Где: Москва

Репутация: 2
Всего: 3



Проще, чем с RoR не будет уже ни с чем =) Любая самостоятельная работа с CGI тебя похоронит.

Но есть одно но. Ты в чем данные собираешься хранить? В SQL таблице, или у тебя специализированней?
PM MAIL WWW ICQ Jabber   Вверх
umup
Дата 18.9.2006, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.9.2006

Репутация: 1
Всего: 1



Наверно надо будет организовывать какую-то базу данных. Нужны как минимум 3 таблицы :
 - текущие настройки (какие приборы подключены к каким портам, настройки портов, описание каналов измерения приборов);
 - текущие данные (то, что считано из приборов на данный момент), отображаются в цифровом виде и в виде шкал и стрелок;
 - архив всех данных и аварий на срок до 2-6 месяцев (по этим данным будут строится графики).

  Короче, задача типа промышленного OPC-сервера, сеть-Modbus на несколько портов.

PM MAIL   Вверх
max_lapshin
Дата 18.9.2006, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 10.9.2006
Где: Москва

Репутация: 2
Всего: 3



Ясно. Вообщем, я бы структуру делал так, что есть один процесс, который асинхронно в базу пишет, а есть веб-сервер, который из базы читает. И не вздумай кидаться и реализовать самостоятельную работу с базой данных, подключение к ней и т.п. Для этого уже есть ActiveRecord.
PM MAIL WWW ICQ Jabber   Вверх
Dark Elf
Дата 18.9.2006, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 26.12.2003
Где: Брисбен

Репутация: 1
Всего: 10



Если сильно хочешь GUI то вот тебе среда разработки с рисовалкой GUI (Ruby + Tk) - там есть выбор версии то есть таких проблем как у тебя

Цитата(umup @  17.9.2006,  13:22 Найти цитируемый пост)
В версии 1.8.2 хотя бы примеры запускались, пробовал 1.8.4 и 1.8.5 - ни один не запускается


юыть не должно

http://www.activestate.com/Products/Komodo/?mp=1

А вообще я бы использовал ROR или если уж хочешь GUI QtRuby

http://rubyforge.org/projects/korundum/


--------------------
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
umup
Дата 18.9.2006, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.9.2006

Репутация: 1
Всего: 1



> юыть не должно

 То есть, вы сами пробовали запускать ? Или это теоретическое рассуждение ?

http://www.activestate.com/Products/Komodo/?mp=1

 Нет, за бапки мне не надо. Несколько кнопок, списков и канвасов для рисования графиков я могу и программно кинуть, что уже и сделано, но работает только на дистрибутиве 1.8.2, на других у меня Tk почему-то не запускается, поэтому и спрашивал, не сталкивался кто-нибудь с таким.

> если уж хочешь GUI QtRuby

 А QT платный для коммерческого использования, или я неправ ?

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

 Спасибо за ответы.

PM MAIL   Вверх
max_lapshin
Дата 18.9.2006, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 10.9.2006
Где: Москва

Репутация: 2
Всего: 3



Ну смотрите, ваше дело. Создание гуя — это реальная потеря времени.
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1570 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.