MyGUI
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: MyGUI
Какая засада? Есть же:
halui.jog.N.increment float in
pin for setting the jog increment for axis N when using increment-plus/minus
halui.jog.N.increment-minus float in
a rising edge will will make axis N jog in the negative direction by the increment amount
halui.jog.N.increment-plus float in
a rising edge will will make axis N jog in the positive direction by the increment amount
halui.jog.N.increment float in
pin for setting the jog increment for axis N when using increment-plus/minus
halui.jog.N.increment-minus float in
a rising edge will will make axis N jog in the negative direction by the increment amount
halui.jog.N.increment-plus float in
a rising edge will will make axis N jog in the positive direction by the increment amount
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: MyGUI
А там это уже по моему есть 
ЗЫ Только мне кажется эти пины должны быть не float а bit:
halui.jog.N.increment-minus float in
halui.jog.N.increment-plus float in
ЗЫ Только мне кажется эти пины должны быть не float а bit:
halui.jog.N.increment-minus float in
halui.jog.N.increment-plus float in
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: MyGUI
nkp, а ты под такую электроавтоматику пишешь скрипт?
если да, дай посмотреть, а то чет у меня куски питона по голове валяются, а в кучу не срастаются никак.
иль у тебя там так же запутано все как в gscreen?
т.е. в бесконечном цикле опрашиваются 6 пинов и в зависимости от них меняются экраны или как?
если да, дай посмотреть, а то чет у меня куски питона по голове валяются, а в кучу не срастаются никак.
иль у тебя там так же запутано все как в gscreen?
т.е. в бесконечном цикле опрашиваются 6 пинов и в зависимости от них меняются экраны или как?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: MyGUI
скрипта как такового нет
все мало мальские наработки выкладываю на форум
принцип думаю пока использовать от Ника (то есть вкладки,и нажатие по номеру кнопки)
так как убедительных аргументов "против" не увидел
но понял - что писать скрипт(а точнее отлаживать) просто невозможно без "железки" и решил подсобрать панель
так что с кодом пока остановка
пока жду кнопочки там всякие, прикидываю работу галетников и пр.
вот "черновики" : но там еще ничего толком нет
все мало мальские наработки выкладываю на форум
принцип думаю пока использовать от Ника (то есть вкладки,и нажатие по номеру кнопки)
так как убедительных аргументов "против" не увидел
но понял - что писать скрипт(а точнее отлаживать) просто невозможно без "железки" и решил подсобрать панель
так что с кодом пока остановка
пока жду кнопочки там всякие, прикидываю работу галетников и пр.
вот "черновики" : но там еще ничего толком нет
Последний раз редактировалось nkp 01 окт 2012, 23:47, всего редактировалось 1 раз.
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: MyGUI
цикла никакого нетLexxa писал(а):т.е. в бесконечном цикле опрашиваются 6 пинов и в зависимости от них меняются экраны или как?
там 2 основополагающих функции:
смена режима(change_mode)
нажатие кнопки( def click_button)
скрипт "ждет" - когда ты вызовешь какую нибудь функцию
а "увидел" что вызвал (переключил галетник или нажал кнопку) - отрабатывает код данной функции
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: MyGUI
nkp, для отладки можно pyvcp юзать.
это типа алиасы?
и зачем нужно
class Widgets:
Вот для меня загадка. Ща вы скажите, что я лох педальный, но все же я спрошу.
nkp, я правильно понял, что пока в скрипте ничего не делается? т.е. там не запускается ни функция change_mode ни функция click_button?
Тут создаются пины кнопкам?
Код: Выделить всё
self.modes = {"mode_a":0, "mode_m":1, "mode_mdi":2, "mode_j":3, "mode_j1":4, "mode_j2":5,} и зачем нужно
class Widgets:
Код: Выделить всё
def __init__(self, xml):
self._xml = xml
def __getattr__(self, attr):
r = self._xml.get_object(attr)
if r is None: raise AttributeError, "No widget %r" % attr
return r
def __getitem__(self, attr):
r = self._xml.get_object(attr)
if r is None: raise IndexError, "No widget %r" % attr
return rnkp, я правильно понял, что пока в скрипте ничего не делается? т.е. там не запускается ни функция change_mode ни функция click_button?
Тут создаются пины кнопкам?
Код: Выделить всё
for i in range(7) :
self.vtriggers.append(hal_glib.GPin(self.halcomp.newpin('vbutton.%s'%i, hal.HAL_BIT, hal.HAL_IN)))
#self.vtriggers[-1].connect("value-changed",self.click_button, self.vbuttons, i)
for i in range(7) :
self.htriggers.append(hal_glib.GPin(self.halcomp.newpin('hbutton.%s'%i, hal.HAL_BIT, hal.HAL_IN)))
self.htriggers[-1].connect("value-changed",self.click_button, self.widgets.notebook1, i)-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: MyGUI
точноLexxa писал(а):Тут создаются пины кнопкам?
если я правильно понял вопрос - то ответить лучше в общем:Lexxa писал(а):я правильно понял, что пока в скрипте ничего не делается? т.е. там не запускается ни функция change_mode ни функция click_button?
функции "сами по себе" не работают (а иначе 88 функций включали бы все когда хотели)
мы их вызываем сами когда нам надо
отсюда ответ - да , скрипт загрузил картинку и ждет каких либо наших действий
ну может я совсем не про то?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: MyGUI
Ну если честно, цикл есть, но пишем его не мыnkp писал(а):цикла никакого нетLexxa писал(а):т.е. в бесконечном цикле опрашиваются 6 пинов и в зависимости от них меняются экраны или как?
...
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: MyGUI
Нене, блокировки не лишние. я прост нарисовал так сказать суть вопроса, еще надо кнопку "сигнал готовности MyScreen"
Продолжаем курс питон))
откуда GTK узнает, что при изменении пина надо запустить именно эту функцю?
Разберемм функцию теперь.
Пускай всеми правдами и неправдами она вызвалась.
Тогда для всех значений режимов из словаря выполняется проверка на истинноость некого компонента halcomp (что это за компонент кстати)
поотом устанавливается новая активная вкладка.
так вот непонятно, что такое self.halcomp
в скрипте его нет, в мануале http://www.linuxcnc.org/docs/2.5/html/c ... rface.html тоже
Продолжаем курс питон))
Код: Выделить всё
def change_mode(self, pin) :
for i in self.modes :
if self.halcomp[i] == True :
self.mode = self.modes[i]
self.widgets.notebook1.set_current_page(self.mode)
returnРазберемм функцию теперь.
Пускай всеми правдами и неправдами она вызвалась.
Тогда для всех значений режимов из словаря выполняется проверка на истинноость некого компонента halcomp (что это за компонент кстати)
поотом устанавливается новая активная вкладка.
так вот непонятно, что такое self.halcomp
в скрипте его нет, в мануале http://www.linuxcnc.org/docs/2.5/html/c ... rface.html тоже
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: MyGUI
а это как раз наши пиныLexxa писал(а):(что это за компонент кстати)
вот и проверяем: какой из них True
у нас же в хал коммутация:
Код: Выделить всё
net auto parport.0.pin-11-in-not mygui.mode_a halui.mode.manual
net manual parport.0.pin-12-in-not mygui.mode_m halui.mode.auto
net mdi parport.0.pin-13-in-not mygui.mode_mdi halui.mode.mdi
net btn parport.0.pin-15-in-not mygui.hbutton.0- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: MyGUI
Это делается функциией connect.Lexxa писал(а):откуда GTK узнает, что при изменении пина надо запустить именно эту функцю?
У каждого пина есть сигналы. Например сигнал "value-changed", таким образом мы можем к этому сигналу присоединить обработчик:
pin.connect(имя сигнала , функция которую вызывать, дополнительный параметр, дополнительный параметр, ...)
пример:
pin.connect("value-changed",self.click_button, self.widgets.notebook1, i)
Это и есть наш hal компонент, который мы пишем, он содержит все пины и параметры, а также можно всякие прочие штуки от него делать.Lexxa писал(а):так вот непонятно, что такое self.halcomp
self.halcomp = hal.component("mygui")
после этого к пинам компонента можно иметь доступ как к dict:
self.halcomp["имя пина"] или self.halcomp.pin_name (второй вариант будет работать только если в названии пина нет недопустимых символов, например "-")
