roboforum.ru

Технический форум по робототехнике.
Текущее время: 06 апр 2025, 03:05

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 09 мар 2012, 15:06 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Ребята, прошу помощи. Есть, как мне кажется, неплохая идея и неплохой концепт ее реализации. Итак, нам всем рано или поздно становится нужен ГУЙ (гусары, вашу мать!!!! молчать!). Я для своих прошлых побрякушек пользовался ORFA-terminal - брал с репы исходники, модифицировал, использовал. В частности, приделывал к ОРФЕ ТСП-сокет, делал ПИД-управение и т.д. Тема не сильно плохая, но дохлая. Под каждую задачу многоночное переписывание, тестирование, ограниченное использование и все по новой в каждом новом проекте.

Идея как "переломить" эту хреновую практику простая, навела на нее меня тема про питон на СТМ32 - чем больше играюсь с питоном, тем больше мне нравится парадигма (прости господи, если это не то, что я хотел сказать). Я все чаще использую питон для решения простых задач на ПК, особенно если речь о пакетной обработке и т.п. Один из проектов - визуализация ПИД-регулирования у меня в блоге.

Хотелось бы создать расширяемый и настраиваемый ГУЙ. Но ума и знаний не хватает (возможно, просто требуется пинок небольшой - не знаю). Например, пишем модуль на питоне, который отвечает за работу с ком-портом. Если есть готовый модуль, то, вероятно, должно быть возможно включить его в некий больший гуй. Т.е. начали проект. Создали большой фрейм, а потом простым подключением модулей наполнили этот фрейм. Т.е. подтянули модуль serial-gui с минимумом параметров, в нашем фрейме отрисовался labelFrame с названием Serial Port, там ком-порт, скорость, кнопки отключиться/подключиться. Подтянули модуль, например, PS2-controller - отрисовались нужные контролы управления джойстиком. И т.д Т.е. как конструктор - надергал модулей, заполнийл главное окно, запустил и поехал.

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

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

Давайте, други - кто за?

И теглайн: "ORFA - такая, какая она должна быть!" :-)

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 09 мар 2012, 19:14 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Ээээ, чего? :) такое ощущение, что описывается типичная IDE для любого языка с готовыми визуальными компонентами.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 09 мар 2012, 20:50 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
я не знаю, какой именно у вас питон и какие у него особенности - есть ли уже в нём подходящие паттерны гуи, насколько легко работать с сообщениями, нужно ли будет прикручивать либы для многопоточности (какие у неё +- будут), есть ли механизмы привязки данных и т.д. :) но боюсь работы там или по самое нихачу или это будет что-то жутко примитивное. mvvm в самом примитивном виде это порядка 2-3сотни строк кода +- особенности языка и библиотек, только имхо толку. делать что-то серьёзное тож не сильно прикольно - гарантированно начнётся "а мне вот тут неудобно с этим работать", "а вот для такой-то задачи этот паттерн вообще лучше не использовать", "та блин у тебя даже нет системы плагинов", "ой, ну и гадость твоя система плагинов",.. так что как вариант или заюзать вижуал студию или чтот попроще, тот же эклипс или еще что. по крайней мере без особой надобности не нужно будет велосипед изобретать. :) поверьте, вам и без этого работы хватит, для начала с интерфейсами модулей и протоколами общения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 09 мар 2012, 22:39 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Я за LUA, а не за питон. Питон, имхо, тяжеловат.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 10 мар 2012, 08:53 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
тяжеловат это про lua jvm. а если серьёзно, питон не настолько печален.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 10 мар 2012, 12:38 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
=DeaD= писал(а):
Ээээ, чего? :) такое ощущение, что описывается типичная IDE для любого языка с готовыми визуальными компонентами.

Ну наверное, только компонентов, нужных нам не то чтобы много. Вот ORFA-terminal он же в QT сделан. Т.е. ты брал контролы и набрасывал на форму. Но ты форму компоновал из кнопок, лейблов, инпутов и т.д. А было бы неплохо имхо компоновать из блоков - ком-порт, протокол общения с МК, холст с видео с камеры, джойстик и т.д.

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

А еще - не стоило мне вчера писать на форум :-))) Ну вы понимаете, да?

Добавлено спустя 23 минуты 1 секунду:
Вложение:
comport.jpg
comport.jpg [ 18.66 КиБ | Просмотров: 4031 ]

Ну вот, например, окно выбора и коннекта к ком-порту. У всех оно одинаковое - нечего там городить особо. У орфы такой, в вики такой да и у всех такой.

Эта штука должна:
-энумировать порты
-отдавать хендл порта
-енейблить/дисейблить контролы в зависимости от статуса порта
-подключаться/отключаться от порта

Это минимум сто строк кода, которые каждый раз надо написать заново/скопипастить.
Если бы я умел, я бы написал класс и все заменил одной строкой:
comPort = comPortGUI(self, parent, controlDisableAction, style)
Но не умею :cry: Но это пока :-)

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 10 мар 2012, 13:34 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Так давайте для QT компонентов налепим? :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 10 мар 2012, 13:57 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
=DeaD= писал(а):
Так давайте для QT компонентов налепим? :)

Да тяжелая она. С установкой - гемор. С настройкой - гемор. Со статической компиляцией - гемор. С, прости господи, языком - гемор :-)
Питон - запустил екзешник, прокликал по кнопочкам, запустил модуль, все. Запустил тот же модуль где угодно - даже на айфоне. Про луа - не знаю...

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 10 мар 2012, 18:02 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Хо-хо, а ведь у меня получилось:
comportWidget = comPortWidget(self.frame, text = "Serial settings", labelanchor="nw")
Получается объект, наследующий методы классов LabelFrame и serial.Serial, его можно отрисовать упаковщиком, например comportWidget.pack, с ним работают все методы ком-порта, например comportWidget.isOpen()
ае?

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 10 мар 2012, 18:03 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Angel71 писал(а):
тяжеловат это про lua jvm. а если серьёзно, питон не настолько печален.

Какая связь между LUA и JVM?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 10 мар 2012, 18:09 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Приложил скрипт, если есть желание попробовать.
Скрипт для тестирования:
Код:
from tkinter import *
from tkinter.ttk import *
from robowidgets import *

def main():
    root = Tk()
    serW = comPortWidget(root, text="Serial port settings")
    serW.pack()
    root.mainloop()

if __name__ == '__main__':
    main()


UPDATE: Все, довел до ума компортовый виджет, можно пользоваться. Авто-рефреш и все такое...


Вложения:
robowidgets.py [4.84 КиБ]
Скачиваний: 413

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 11 мар 2012, 01:16 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
elmot, если забыть, что язык это язык, а конкретная реализация компилятора, интерпретарота или коннектора это совсем другое, то никакой. а так http://sourceforge.net/projects/luaj/, http://www.keplerproject.org/luajava/index.html, http://code.google.com/p/kahlua/
dccharacter, да яж не против, только от прочтения первого поста сложилось впечатление, что вы хотите "слегка" посложней, чем простенькие компоненты, виджеты, сниппеты,...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 11 мар 2012, 10:11 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Angel71 писал(а):
elmot, если забыть, что язык это язык, а конкретная реализация компилятора, интерпретарота или коннектора это совсем другое, то никакой.


именно. Берем оригинальный луа, который нативный, и пусть работает. главное есть позитивный пример - вебгуй в прошивках openwrt написан именно на луа. Естественно, никакая ява в роутер не влезет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 11 мар 2012, 10:45 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
тогда не вижу вообще никаких трудностей с выбором. :) питон для десктопа, а луа для роутера и тогда можно будет согласовано работать по двум направлениям.


Последний раз редактировалось Angel71 11 мар 2012, 10:57, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Python, модульный ГУЙ, ОРФА и т.д.
СообщениеДобавлено: 11 мар 2012, 10:56 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Мб на десктоп тоже луа. Зачем 2 языка? надо бы взглянуть, что у луа с гуями десктопными. И, подозреваю, очень быстро встанет вопрос про opencv на десктопе. Интересно, что там с фасадами для с++ библиотек?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO