Страница 5 из 47

Re: MyGUI

Добавлено: 20 сен 2012, 00:00
Nick
А точно! Это же фичи axis все :) также как pyvcp и прочее, вообще все, что в DYSPLAY обрабатывается индивидуально, кроме разве что самого
DISPLAY = axis

Re: MyGUI

Добавлено: 20 сен 2012, 00:06
nkp
дописал в скрипт :

Код: Выделить всё

if __name__ == "__main__":
	app = Mygui()
        res = os.spawnvp(os.P_WAIT, "halcmd", ["halcmd", "-f", "/home/nkp/emc2-dev-80db2a2/configs/MyGUI/mode.hal"])
        if res: raise SystemExit, res
	gtk.main()
и все стало работать
(инфа по os.spawnvp)

Re: MyGUI

Добавлено: 20 сен 2012, 00:09
Nick
А разве из питона нельзя команды hal напрямую вызывать?
Хотя оно наверное не нужно :)....

ЗЫ лучше стырить кусочек кода из axis и брать название файла прямо из ini.
И вообще добавить метод Mygui.postgui и в нем все что надо сделать.

Re: MyGUI

Добавлено: 20 сен 2012, 00:17
nkp
Nick писал(а):лучше стырить кусочек кода из axis и брать название файла прямо из ini
конечно так и будет
тут главнее сейчас общую картину работы скрипта выписать в плане взаимодействия с железными кнопками...

Re: MyGUI

Добавлено: 20 сен 2012, 15:33
nkp
Nick,используя твой код из https://github.com/cnc-club/hw-buttons/tree/ сделал смену режимов от внешних кнопок
все работает-переключает и в емс и в gui
сейчас использую hbox для кнопок но там легко поменять и на вкладки
возвращаясь к вопросу как должна проходить обработка нажатия-по номеру кнопки или по названию
так вот я так и не понял- какие объективные недостатки в первом способе(тогда назывался случай ,что мол можно поменять местами кнопки и будет ошибка
но кто их менять то будет? таким макаром можно что хош нарушить
а вот со вторым способом ....
можешь общий примерчик .так сказать направление-а то не пойму с чего начать :wik:

Re: MyGUI

Добавлено: 20 сен 2012, 15:40
Nick
Мое предложение было такое:
1. Обращаемся к кнопке по названию. Т.е. в Glade в названии пишем название пина!
2. В ini делаем раздел соответствия "название пина" => "название которое писать на кнопке"
3. При создании интерфейса пробегаем по всем кнопкам в Builder, смотрим их названия а лучше даже не названия, а Label. Если название есть в массиве пинов, то:
а. создаем пин
б. присоединяем к нему кнопку
в. переименовываем кнопку в соответствии с разделом соответствия.

С положением плохо то, что при неправильно упаковке (например -1 кнопка) кнопки могут растянуться и сместиться.

Re: MyGUI

Добавлено: 20 сен 2012, 18:20
Lexxa
имена кнопок и режимов должны быть уникальными.
Функция кнопки = ИмяКнопки_Режим_Функция. Применив такую систему имен, путаницы избежать легко

p.s. Как же я жалею, что не могу полноценно заняться интерфейсом, вроде разобрался в питоне, но вот беда - командировок три недели уже(((

Re: MyGUI

Добавлено: 20 сен 2012, 18:34
nkp
сколько бы у нас не было кнопок (всего с изменениями) в ладдер зайдет только "один комплект" входов
то есть ,если у нас 7 кнопок по горизонтали - то и пинов в ладдер - 7
а изменять в зависимости от режима в ладдере коммутацией? или как по другому???

Re: MyGUI

Добавлено: 20 сен 2012, 18:40
Nick
Зачем ладдер?
Я почему ратовал за организацию всего в питоне - т.к. кнопки на экране перерисовывает питон, то и обрабатывать событие нажатия на "железную кнопку" должен питон.

Re: MyGUI

Добавлено: 20 сен 2012, 18:46
nkp
хочешь сказать что можно сделать полноценный пульт оператора
без ладдера ?? сомневаюсь........

Re: MyGUI

Добавлено: 20 сен 2012, 18:51
Nick
А почему бы и нет?
По крайней мере, все, что требует изменений на экране и не требует крайне быстрых скоростей обработки можно.

ЗЫ кстати, ладдер будет в rt работать или в userspace?

Re: MyGUI

Добавлено: 20 сен 2012, 19:00
nkp
Nick писал(а):ладдер будет в rt работать или в userspace?
в rt конечно

Re: MyGUI

Добавлено: 20 сен 2012, 19:15
Nick
тогда может иметь смысл...
но тогда нет смысла на кнопках писать пины. Тупо названия и все.

Re: MyGUI

Добавлено: 20 сен 2012, 19:20
Lexxa
nkp писал(а):без ладдера ?? сомневаюсь........
+1
Ник,1есть фанук, есть симменс, есть хх. никто там не делает стойку под станок, все эпроизводители делают и пульты и все остальное только через электроавтоматику- ладдер

Re: MyGUI

Добавлено: 20 сен 2012, 19:22
Lexxa
Nick писал(а):По крайней мере, все, что требует изменений на экране и не требует крайне быстрых скоростей обработки можно.
например халуи.аборт требует, и вообще все что касается движений (в ручном) требует

Re: MyGUI

Добавлено: 20 сен 2012, 19:24
Lexxa
Nick писал(а):нет смысла на кнопках писать пины
нет смысла не писать пинов на кнопках, поскольку ладдер не разрулит

Re: MyGUI

Добавлено: 20 сен 2012, 19:42
Nick
В том то и дело, что ладдеру пофигу, что на кнопке написано, он будет отрабатывать нажатие на железную кнопку с положением N при условии текущего режима M.
Поэтому не вижу смысла писать на железных кнопках пины.

Re: MyGUI

Добавлено: 20 сен 2012, 19:49
Lexxa
как раз наоборот. пин режима + нардкнопки даст четкое и однозначное её функционирование, а система имен нужна для отладки.
Т.е.
например, имеем кнопки hbutton1..8 и vbutton1..8
и пин режима mode 1..6
тогда например в режиме1 кнопка hbutton1 имеет функцию func1
т.е. в ладдере будет

-----|MyGUI_on|--------|mode1|----------|hbutton1|-------------(func1)---------
и проблем никаких

Re: MyGUI

Добавлено: 20 сен 2012, 19:53
Nick
Ну, все правильно, только как я и говорил пин на кнопке не пишется, будет просто hbutton1..8.

Re: MyGUI

Добавлено: 20 сен 2012, 19:57
Lexxa
как тогда передать это дело в ладдер?