Упс. Баг. Спасибо. Исправил исходники.nkp писал(а):self.halcomp = hal.component("probe_scr")verser писал(а):Исходники.
[WIKI] Работа с центроискателем в LinuxCNC
- verser
- Мастер
- Сообщения: 1883
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: [WIKI] Работа с центроискателем
добавление в axis.tcl (/usr/share/axis/tcl/axis.tcl)
нажатие "q" переключает вкладки на предпросмотр ...
пробовал питоном (pyatspi) эмулировать нажатие - упирается
Код: Выделить всё
bind . <q> {
${pane_top}.right raise preview
}
пробовал питоном (pyatspi) эмулировать нажатие - упирается
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: [WIKI] Работа с центроискателем
А через .axisrc это никак не сделать?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Можно, вот тут можно подглядеть идею: Re: Плазморез со смарт-вентиляцией #35
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: [WIKI] Работа с центроискателем
да - вроде так работает (пином переключает вкладки)UAVpilot писал(а):Можно, вот тут можно подглядеть идею
сам пин еще куда то нужно прицепить ...
в ~.axisrc:
Код: Выделить всё
def user_enable_preview_tab(*args):
root_window.tk.eval(pane_top + ".right raise preview")
def user_live_update():
if comp["preview-enable"] == 1:
root_window.event_generate("<<enable-preview-tab>>")
root_window.bind("<<enable-preview-tab>>", user_enable_preview_tab)
if hal_present == 1 :
ucomp = hal.component("axisui.user")
ucomp.newpin("preview-enable",hal.HAL_BIT,hal.HAL_IN)
Последний раз редактировалось nkp 15 май 2015, 08:55, всего редактировалось 1 раз.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Ну что за нафик! Ну для кого я такой красивый пример опубликовал?..nkp писал(а):в axis:
(создаем новый пин)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- verser
- Мастер
- Сообщения: 1883
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Я скачал. +1UAVpilot писал(а):Ну что за нафик! Ну для кого я такой красивый пример опубликовал?..nkp писал(а):в axis:
(создаем новый пин)
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: [WIKI] Работа с центроискателем
UAVpilot писал(а):Ну что за нафик! Ну для кого я такой красивый пример опубликовал?.
как лучше выключать его(пин) - в начале функции - активируем - в конце деакт. ?
так работает - но в случае ,если выйдем из функции по ошибке(return) - пин останется активным...
- verser
- Мастер
- Сообщения: 1883
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
отключать пин еще и внутри error_poll()nkp писал(а):но в случае ,если выйдем из функции по ошибке(return) - пин останется активным...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: [WIKI] Работа с центроискателем
все случаи не учтешь - я уже несколько раз сталкивался с подобной задачей,когда пин нужно включатьverser писал(а):отключать пин еще и внутри error_poll()
и "тут же" деактивировать...
опять же - время "тут же" должно хватать для уверенного срабатывания...
===============
был бы отдельный вид пинов ,сигнальный :
как кнопка без фиксации
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: [WIKI] Работа с центроискателем
oneshot?nkp писал(а):все случаи не учтешь - я уже несколько раз сталкивался с подобной задачей,когда пин нужно включать
и "тут же" деактивировать...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: [WIKI] Работа с центроискателем
вопрос иного плана - непосредственно по работе программы:
пока вожусь с эмулятором(вместо датчика кнопка PYVCP)
заметил - несколько раз уже было :
в итоговом окне показывает результат поиска , а не результат уточнения...
на реальном щупе это трудно уловить ,так как разница между показаниями поиска и уточнения не велика ...
а на эмуляторе можно нажать кнопку когда угодно ...
==========
может конечно это я накуролесил тут , так как переделываю под себя
пока вожусь с эмулятором(вместо датчика кнопка PYVCP)
заметил - несколько раз уже было :
в итоговом окне показывает результат поиска , а не результат уточнения...
на реальном щупе это трудно уловить ,так как разница между показаниями поиска и уточнения не велика ...
а на эмуляторе можно нажать кнопку когда угодно ...
==========
может конечно это я накуролесил тут , так как переделываю под себя
- verser
- Мастер
- Сообщения: 1883
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
В Gtk есть еще такая штука “leave-notify-event”Nick писал(а):все случаи не учтешь
The ::leave-notify-event will be emitted when the pointer leaves the widget 's window.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: [WIKI] Работа с центроискателем
А чего ты для вот этого всего не сделал функицю?
что-то типо вот такого:
и потом все это было бы
Код: Выделить всё
self.command.mdi( "G91" )
self.command.wait_complete()
self.command.mdi( "G0 X-%f Y-%f" % (self.spbtn1_xy_clearance.get_value(),self.spbtn1_edge_lenght.get_value()) )
self.command.wait_complete()
self.command.wait_complete()
self.command.mdi( "G90" )
self.command.wait_complete()
if self.error_poll() == -1:
return
Код: Выделить всё
def gcode(s):
for l in s.split("\n"):
self.command.mdi( l )
self.command.wait_complete()
if self.error_poll() == -1:
return -1
return 0
Код: Выделить всё
s="""G91
G0 X-%f Y-%f
G90"""" % (self.spbtn1_xy_clearance.get_value(),self.spbtn1_edge_lenght.get_value()) )
gcode(s)
- verser
- Мастер
- Сообщения: 1883
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Я так только щас научилсяNick писал(а):А чего ты для вот этого всего не сделал ... что-то типо вот такого:
Вообще в планах уже стояло подчистить код.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: [WIKI] Работа с центроискателем
можно в функцию добавить еще и
чтобы можно было использовать и O<xxx> CALL
Код: Выделить всё
self.stat.poll()
while self.stat.exec_state == 7 or self.stat.exec_state == 3 :
if self.error_poll() == -1:
return
self.command.wait_complete()
self.stat.poll()
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: [WIKI] Работа с центроискателем
И можно еще для токарки такой же экранчик сделать, хотя хрен знает нужен он там или нет...
Кстати, при пробе вниз, где остановится щуп? В точке касания по Z или наверх уйдет?
Кстати, при пробе вниз, где остановится щуп? В точке касания по Z или наверх уйдет?
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: [WIKI] Работа с центроискателем
а как ним пользоваться??Nick писал(а):oneshot?nkp писал(а):все случаи не учтешь - я уже несколько раз сталкивался с подобной задачей,когда пин нужно включать
и "тут же" деактивировать...
в смысле - как ним изменить состояние пина BIT_OUT ??
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: [WIKI] Работа с центроискателем
хмм... тебе нужен пин в скрипте, который бы можно было бы выставить в 1 одноразово, с уверенностью, что его прочитает другой rt компонент?
тогда сделай любой пин, и просто в while компонента сразу после sleep(1000) (или сколько там обычно стоит?) обнуляй его.
Тогда пин гарантированно провисит этот sleep(1000), и любой rt компонент его схавает. Другое дело, что его может не увидеть другой userspace компонент...
тогда сделай любой пин, и просто в while компонента сразу после sleep(1000) (или сколько там обычно стоит?) обнуляй его.
Тогда пин гарантированно провисит этот sleep(1000), и любой rt компонент его схавает. Другое дело, что его может не увидеть другой userspace компонент...
- verser
- Мастер
- Сообщения: 1883
- Зарегистрирован: 21 июл 2013, 22:28
- Репутация: 1278
- Настоящее имя: Сергей
- Откуда: Тбилиси
- Контактная информация:
Re: [WIKI] Работа с центроискателем
Вернется по Z вверх в исходную позицию.Nick писал(а):при пробе вниз, где остановится щуп? В точке касания по Z или наверх уйдет?