Как реализовать связь пинов HAL с переменными подпрограммы?
Добавлено: 15 сен 2014, 21:43
Вот и появилось время для освоения этой простой (для небожителей) темы:
1. Как передать значение переменной из подпрограммы в HAL?
Например, в подпрограмме у нас есть переменная <Step>. Можно ли её значение присвоить параметру в HAL? Допустим подать на вход mux2.0.in1 ? И как?
2. Как присвоить переменной в подпрограмме значение параметра из HAL ?
Например, мы получаем на выходе mux2.0.out некоторое значение, которое нужно присвоить переменной подпрограммы <Speed>. И как?
Пару месяцев назад задал эти вопросы в теме - http://cnc-club.ru/forum/viewtopic.php? ... 62#p124728
и получил ответы:
UAVpilot
Nick
Или через inline python, на подобие:
(только для последних релизов)
О или вообще через прямой доступ к пинам в Gкоде (тоже вроде только в новых релизах):
http://www.linuxcnc.org/docs/devel/html ... al_items_a
А для обратной связи пусть подпрограмма включает и выключает "светодиод" на визуальной панели LCNC.
Приглашаю желающих к разбору.
1. Как передать значение переменной из подпрограммы в HAL?
Например, в подпрограмме у нас есть переменная <Step>. Можно ли её значение присвоить параметру в HAL? Допустим подать на вход mux2.0.in1 ? И как?
2. Как присвоить переменной в подпрограмме значение параметра из HAL ?
Например, мы получаем на выходе mux2.0.out некоторое значение, которое нужно присвоить переменной подпрограммы <Speed>. И как?
Пару месяцев назад задал эти вопросы в теме - http://cnc-club.ru/forum/viewtopic.php? ... 62#p124728
и получил ответы:
UAVpilot
Код: Выделить всё
$ tclsh
% package require Linuxcnc
1.0
% hal getp ini.0.max_limit
1000
% hal setp ini.0.max_limit 500
setting parameter 'ini.0.max_limit' to '500'
Pin 'ini.0.max_limit' set to 500
% hal getp ini.0.max_limit
500
%Или через inline python, на подобие:
Код: Выделить всё
;py,interpreter.this.params['draw_param_g']=gО или вообще через прямой доступ к пинам в Gкоде (тоже вроде только в новых релизах):
http://www.linuxcnc.org/docs/devel/html ... al_items_a
Попробую неспеша написать подпрограмму в ngcgui , чтобы она опрашивала кнопку на панели LCNC и, в зависимости от её состояния (нажата-отжата) выполняла действие с различными параметрами (переменными).To read arbitrary HAL pins, signals and parameters from G-code, use the following named parameter syntax:
#<_hal[hal_name]>
where hal_name may be a pin, parameter or signal name.
А для обратной связи пусть подпрограмма включает и выключает "светодиод" на визуальной панели LCNC.
Приглашаю желающих к разбору.