gscreen

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Lexxa писал(а):в halui есть абсолютно всё, для нормального управления. Достаточно разрулить софт-кнопки ладдером.плюсом сюда давай обсудим хардовые тумблеры и хардовые кнопки.
ИМХО это не очень хорошо. Лучше, чтобы команда на исполнительный пин выходила именно из GUI а не из ладдера.
Лучше будет потому, что не возникнет ситуация, когда на экране нарисовано одно, а при нажатии на кнопку выполняется другое.

Сейчас попробую накидать скриптик...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: gscreen

Сообщение Lexxa »

Ник, так сделано во всех взрослых ЧПУ, вообще во всех.
Концевики, ренишау, сообщения, м-команды - всё это ререз ладдер.

Ник, поясни, как может возникнуть ситуация, когда на экране одно, а при нажатии на кнопку другое?
На мой взгляд, как раз ладдер и избавит от этого.
Я же писал выше логику.
В общий ини файл прописывается текст для каждой кнопки в каждом режиме
в hal добавляется ладдер поток в пользовательское пространство
подгружается общий ладдер-файл с разруливанием станочноо пульта.
Ладдер-файл, как и gscreen будет единый на все станки до 5 координат. Задействовать кнопку в режиме или нет определить в ини файле элементарно.
В том же ладдере можно защититься от незагруженного gscreen.

Т.е. если мы напишем скрипт, который тупо меняет текст и скрывает/отображает нужные элементы, то написание взрослого интерфейса на этом практически закончится, останется лишь разобраться с вращением 3D и загрукой и редактированием программы.
Ладдер же будет иметь постоянно количество выходов, к которым каждый сможет прицепить нужное ему дейсвие - будь то пускатель включить или кнопку пуск нажать.
Повторюсь. во взрослых ЧПУ станках в общем случае есть 6 режимов:
1) edit
2) AUTO
3) MDI
4) безразмерные перемещения
5) инкрементальные перемещения
6) от махоичка

Сделав 16 софтовых кнопок мы получим аж 96 функций
Режимы должны переключаться от галетника и никак иначе. Во-первых это наглядно, во вторых это надежно, в-третьих это просто с точки зрения linuxcnc, в частности halui. Желательно, чтоб и активная ось переключалась от галетника. Остальное дло вкуса. Никаих кнопок пауза и стоп в УЧПУ быть не должно, это не плеер. Пуск и стоп подачи. Нажал пуск - началась отработка, нажал стоп подачи - остановилась, нажал пуск - продолжили отработку. Захотел программу остановить - нажал стоп подачи, затем Abort.
Кнопка пуск в зависимости от режима должна или программу запускать, или MDI команду отрабатывать. Ну можно еще привязать к ней выход в ноль.
Выход в ноль должен работать только в последовательности, которую задает оператор, это диктуется безопасностью.
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: gscreen

Сообщение Lexxa »

Вот очередная перепаковка gscreen
Заточенная под реализацию через ладдер и halui
Вложения
myscreen.glade.tar.gz
(3.86 КБ) 839 скачиваний
:bender:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

из 3 вкладок почему то видно только 2
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: gscreen

Сообщение Lexxa »

да она вообще одна только нужна, я думаю на вторую вывести светодиоды от концевиков и исполнительных элементов ладдера для отладки
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Вот написал скрипт.
Он умеет нажимать на n-ную по счету кнопку в активной вкладке notepad.
Запускать его так:
gladevcp -u hardware-buttons.py hardware-buttons.ui
кнопку жамкаем путем изменения пина vbutton или hbutton с нужным номером.
halcmd setp hardware-buttons.vbutton.0 0

Если управлять из Ladder, то если вдруг заглючит GUI, результат будет не предсказуемым. А так у нас нажимается именно та кнопка, которая сейчас отображается прямо над нужной железной кнопкой.

Зачем делать двойную систему обработки кнопки, когда все можно сделать в одном месте?
Вложения
hwbuttons.tar.gz
(1.98 КБ) 1020 скачиваний
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

Nick писал(а):Вот написал скрипт.
Ник,а можно прокомментировать скрипт
а то я идею твою до конца не понял и по коду тоже не разберусь :wik:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Добавил:
https://github.com/cnc-club/hw-buttons/tree/

В двух словах, сначала вызывается get_handlers(halcomp,builder,useropts)
в которой создаем наш объект нашего класса
hwbuttons = HWButtons(halcomp,builder,useropts)
потом создаем пины для кнопок и делаем им обработчик
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

спасибо Ник за комментарии - буду разбираться
но вот даже пример твой запускаю не пойму-что он должен демонстрировать????
зы (скрипт скачан 8 раз - и только у меня вопросы я в танке :problem:
Выделение(019).png (2034 просмотра) <a class='original' href='./download/file.php?id=7775&mode=view' target=_blank>Загрузить оригинал (113.15 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Работать должно типо такого:
1. можно просто нажимать на кнопки, они будут выполнять свое описанное действие.
2. можно посылать сигнал на пины hw-buttons.vbutton.[0-n] и hw-buttons.hbutton.[0-n] и скрипт будет генерировать сигналы нажатия на эти кнопки.

Напишите набор кнопок, который мы хотим видеть во вкладках, хотя бы для одной вкладки, и я доведу пример до ума.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

для одной вкладки принцип не прояснит
тут лучше покажи одна кнопка в одном из 3 режимов включает свою команду
произвольно:
мы в ручн реж - пусть будет home
мы в авто - run
в MDI - исполнить
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

А как сделать в MDI - исполнить?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

я не смотрел - написал от фонаря
ну давай два режима - главное принцип
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Вот сделал две кнопки home и run
https://github.com/cnc-club/hw-buttons/tree/
запускать:
gladevcp -u hw-buttons.py hw-buttons.ui


Жамкать на кнопку внешним пином, например так:
halcmd setp hw-buttons.hbutton.0 1
потом не забыть в 0 скинуть
halcmd setp hw-buttons.hbutton.0 0
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

ну потихоньку начинаю въезжать :thinking:
у нас сильный ливень , гроза (на что бы еще сослаться :hehehe: ) - вот и не думается
------------------------
наверно теперь надо добавить 6(?) пинов для тумблера перекл режимов-вкладок
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Ага, сейчас замутим...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

а как у нас номер кн может не попасть в длинну списка? :

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

if 0<=num<len(button_list) :
мы ж там однозначно сами все формируем
и без проверки работает:

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

def click_button(self, pin, notebook, num) :
		if pin.value == True :
			box = notebook.get_nth_page(notebook.get_current_page())
			button_list = box.get_children()
			button = button_list[num]
			button.emit("clicked")
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Ну если кто-нибудь вызовет нажать на кнопку с большим параметром... в общем на всякий случай сделано :).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Сделал переключение режимов, добавил hal файл, только почему-то hal не загружается при помощи параметра -H, т.е.
gladevcp -u hw-buttons.py hw-buttons.ui -H hw-buttons.hal ничего особенного не говорит, но пины не подключаются
приходится отдельно писать halrun -f hw-buttons.hal

https://github.com/cnc-club/hw-buttons/tree/
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

Nick писал(а):gladevcp -u hw-buttons.py hw-buttons.ui -H hw-buttons.hal
а не так надо ? :

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

gladevcp -u hw-buttons.py  -H hw-buttons.hal hw-buttons.ui
сейчас будем пробовать....
Ответить

Вернуться в «LinuxCNC»