GladeVCP и PyVCP для начинающих

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Алексс »

ооооо, в госте какие класные кнопки!
надо чтонить выдрать. спасибо!
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
psha
Опытный
Сообщения: 147
Зарегистрирован: 28 фев 2011, 11:11
Репутация: 1
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение psha »

Алексс писал(а):предлагаю к внесению к репозиторий linux cnc
Делается патч и отсылается на emc-devel (список рассылки)
root, доделай конвертацию! :)
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение solo »

Здравствуйте
Помогите человеку создать или попользоваться чейто панелью
Установленный ЕМС 2.4.3 на компьютере, который не подключен к интернету, то есть смотреть и пробовать одновременное не получается.
Попробовал скачать и перенести флешкой разные панели которые здесь были выложены в теме ничего не получается. Некоторые вообще не запускаются , на некоторых выдает какие-то ошибки.
Пошел по простому пути взял панель Ник из начала темы сделал как там написано но она не работает , то есть ели в разделе дисплей добавляю PYVCP=panel.xml а в файле с именем panel.xml размещенном в папке с конфигурацией написано так


<button>
<halpin>"rapid-to-home"</halpin>
<text>"Rapid to Home"</text>
<font>('Fixed',16)</font>
</button>
То ЕМС не запускает .
я понимаю что при таком действии должна создаться пустая панель PYVCP если я не прав то поправьте меня.
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Алексс »

вот так попробуй

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

<pyvcp>
  <hbox>
    <button> 
      <halpin>"rapid-to-home"</halpin> 
      <text>"Rapid to Home"</text> 
      <font>('Fixed',16)</font>
    </button>
  </hbox>
</pyvcp>
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение solo »

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

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

Главное, что добавилось - тег <pyvcp>, и еще <hbox>, но для одной кнопки он вроде не обязателен.
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение solo »

Раз тема для начинающих то и вопросы будут советующие. :monkey:
Есть ини файл созданный степ конфиг и в нем раздел
[HAL]
HALUI = halui
HALFILE = JMS.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
Есть панель PyVCP на ней кнопка быстрого переезда домой
В файле = custom_postgui.hal мы пишим так ( текст взят с начала темы)
( net remote-rapid-to-home halui.mdi-command-00 <= pyvcp.rapid-to-home) Хотелось бы понять как данная строка получается?
Net создать связь
remote-rapid-to-home что это означает мне не понято ? . Где можно про это почить чтобы хоть немного вникнуть ? :pssdoff:
Дальше идут имя пина кнопки и команды
<= pyvcp.rapid-to-home а что это есть только предположение что все это находится на панели PyVCP
.вопрос 2
HALFILE = custom.hal что должен содержать данный файл если он создан?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

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

net remote-rapid-to-home halui.mdi-command-00 <= pyvcp.rapid-to-home
формат команды net:
net <имя сигнала> <имя пина> [<имя пина> ...]
Что делает команда:
1. если нет сигнала <имя сигнала>, то такой сигнал создается.
2. к сигналу <имя сигнала> присоединяются пины <имя пина>, <имя пина>...
3. все знаки <= => <=> игнорируются, и нужны только для удобства чтения.

например строку выше можно написать разными способами:
(все они делают одно и тоже )

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

net remote-rapid-to-home halui.mdi-command-00 <= pyvcp.rapid-to-home

net remote-rapid-to-home <= pyvcp.rapid-to-home
net remote-rapid-to-home => halui.mdi-command-00 

net remote-rapid-to-home <= pyvcp.rapid-to-home => halui.mdi-command-00 

net remote-rapid-to-home pyvcp.rapid-to-home halui.mdi-command-00 
мне больше всего нравится второй способ, он наиболее наглядный, ну и третий тоже ничего :).

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

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

solo писал(а):HALFILE = custom.hal что должен содержать данный файл если он создан?
Этот файл должен содержать пользовательские строки hal, если ты изменишь конфигурацию при помощи stepconf, то все изменения вренессные вручную исчезнут, а вот файлы custom* не изменяться (правда я это не проверял, но по-идее должно быть так :) ).
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение solo »

Спасибо за ответ на счет " custom_postgui.hal" и " custom.hal" все понятно можно создать резервную копию.
но мне не все понятно до конца на счет имени сигнала- я почеу и спрашивал где можно прочитаить? и честно говоря меня поставило в тупик такой формат команды
net remote-rapid-to-home <= pyvcp.rapid-to-homenet__ выполнение команды бе МДИ команды?
remote-rapid-to-home => halui.mdi-command-00 выполнениие команды без нажатия на кнопку?

А какое тогда должно быть имя команды ( какая должна быть команда ) если pyvcp кнопка должна выполнить MDI команду (G91 Z-0.1 F5 )
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение solo »

А почему если я пишу команду в формате
"net halui.mdi-command-00 <= pyvcp.rapid-to-home" то ЕМС не запускает вообще???

"net remote-rapid-to-home halui.mdi-command-00 <= pyvcp.rapid-to-home", а в таком формате работает нормально
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

solo писал(а):net remote-rapid-to-home <= pyvcp.rapid-to-homenet__ выполнение команды бе МДИ команды?
remote-rapid-to-home => halui.mdi-command-00 выполнениие команды без нажатия на кнопку?
А какое тогда должно быть имя команды ( какая должна быть команда ) если pyvcp кнопка должна выполнить MDI команду (G91 Z-0.1 F5 )
почитать про net можно здесь
"net remote-rapid-to-home <= pyvcp.rapid-to-homenet" - это не команда на выполнение , а команда на присоеденение
Hal состоит из компонентов
у компонентов есть пины : входы ,выходы
в хал мы эти пины (входы ,выходы) соеденяем - как в электрической схеме скручиваем проводки

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

net имя_соеденения  имя_пина_выход  имя_пина_вход
но если напишем наоборот - ошибки не будет

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

net имя_соеденения  имя_пина_вход  имя_пина_выход
тут главное чтоб один пин был out а другой in
Последний раз редактировалось nkp 19 ноя 2012, 19:46, всего редактировалось 1 раз.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

Но так как один выход ("out") мы можем связать с несколькими входами(in") -
то соеденение может выглядеть так:

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

net имя_соеденения  имя_пина_вход
net имя_соеденения  имя_пина_вход1
net имя_соеденения  имя_пина_вход2
Последний раз редактировалось nkp 19 ноя 2012, 19:57, всего редактировалось 1 раз.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

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

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

И самое главное, сигнал сам ничего не делает, он просто передает сигнал от присоединенного пина вывода ко всем присоединенным пинам ввода.
Т.е. что на входе сигнала, то и на выходе.

Главное правило у сигнала - один вход и сколько угодно выходов. Сделано это потому, что если будет несколько входов, то что делать, когда первый вход =1, а второй =0?
Если надо объединить два входа, то нужно использовать дополнительные компоненты, например or2 или and2, тогда реакция на 10 01 11 00 будет однозначна определена.
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение solo »

Спасибо за подсказки и наставления пока получилось создать свою панель PyVCP с кнопками и ледами вроде получается и но вот почитал тему
Как в EMC2 отобразить ход выполнения программы #15
и себе захотелось создать на панели такой виджет который будет отображать оставшееся время до окончания выполнения программы и ход выполнения программы, если не затруднит просьба подскажите как можно это реализовать в ракурсе даннной темы :beer_blow:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

положи файл time-estimator.py в папку конфигурации
в хал файле пропиши:

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

loadusr -Wn time-estimator python time-estimator.py
посмотри в halshow - должны появиться пины из этого списка:

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

h.newpin("out-hour", hal.HAL_U32, hal.HAL_OUT)
 h.newpin("out-min", hal.HAL_U32, hal.HAL_OUT)
 h.newpin("out-sec", hal.HAL_U32, hal.HAL_OUT)
 h.newpin("out-est-hour", hal.HAL_U32, hal.HAL_OUT)
 h.newpin("out-est-min", hal.HAL_U32, hal.HAL_OUT)
 h.newpin("out-est-sec", hal.HAL_U32, hal.HAL_OUT)
 h.newpin("enable", hal.HAL_BIT, hal.HAL_IN)
 h.newpin("len", hal.HAL_U32, hal.HAL_IN)
 h.newpin("str", hal.HAL_U32, hal.HAL_IN)
 h.newpin("reset", hal.HAL_BIT, hal.HAL_IO)
потом рисуешь панель с label
и в том же хал файле коммутируешь пины с панели с пинами из списка
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

кстати у меня с файлом из архива ругалось на отсутствие аргумента в _init_
дописал- и запустилось :

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

class TimeEstimator() :
	def __init__(self) :
Выделение(007).jpg (2285 просмотров) <a class='original' href='./download/file.php?id=9657&mode=view' target=_blank>Загрузить оригинал (97.83 КБ)</a>
исравленный файл:
time-estimator.py.rar
(1.1 КБ) 386 скачиваний
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение solo »

Положил файл в папку с конфигурациее дописал в хел выдало ошибку насколько я понимаю то вот информация обошибке :thinking: что нужно поправить в файле?

Debug file information:
Traceback (most recent call last):
File "time-estimator.py", line 80, in <module>
est = TimeEstimator()
TypeError: __init__() takes no arguments (1 given)
custom_postgui.hal:8: python exited without becoming ready
3289
PID TTY STAT TIME COMMAND
3343
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

solo писал(а):Положил файл в папку
возьми файл одним постом выше...
он исправленый
Ответить

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