Страница 1 из 1
					
				bash скрипт и его привязка к пину.
				Добавлено: 08 июл 2020, 23:24
				 j4zzur1
				Добрый день. Возникла задача привязать определенную bash команду к пину hal, ну например, кнопке на gladevcp панели. Единственный способ, который мне известен (и который я смог нагуглить) - использование М-команд. Однако, требуемая команда должна выполняться до хоуминга осей, а параметр NO_FORCE_HOMING = 1 не позволителен. Прошу помощи и заранее благодарю за ответы.
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 02:00
				 alex_sar
				вы бы конкретней задачу написали, а то вы как дипломат - максимально туманно выражаетесь )
способы есть, непонятно что именно надо сделать вам.
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 08:09
				 Serg
				halcmd
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 09:42
				 j4zzur1
				alex_sar писал(а):вы бы конкретней задачу написали
да тут всё просто) нужно привязать пин кнопки pyvcp.button к запуску bash скрипта sh. в скрипте ничего особенного, лишь звуковые эффекты и текст.
UAVpilot писал(а):halcmd
Это мне знакомо, но ведь halcmd нужен наоборот, для управления hal из терминала..
 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 09:56
				 nkp
				а если  в postgui.hal
Код: Выделить всё
net btn:bash pyvcp.button  halui.mdi-command-00
а в ini
а в M155
 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 10:22
				 j4zzur1
				nkp писал(а):а в M155
Это ж как раз способ через М-команду.. В первом посте я объяснил, почему не могу так сделать.
 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 10:38
				 nkp
				j4zzur1 писал(а):Это ж как раз способ через М-команду.. В первом посте я объяснил, почему не могу так сделать.
так это ж нужно первые посты читать 

 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 10:48
				 nkp
				в axisrc 
http://www.cnc-club.ru/forum/viewtopic. ... 51#p562251
 прописать пин  ,который приконнектить к пину кнопки
по его активации использовать что то из такого примерно
subprocess.Popen(тут_наш_скрипт)
как такое?
 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 10:57
				 merkwurdigliebe
				Код: Выделить всё
#!/usr/bin/python
import hal, time, os
h = hal.component("command")
h.newpin("run", hal.HAL_BIT, hal.HAL_IN)
h.ready()
try:
    while 1:
        time.sleep(0.1)
        if h['run'] and not run_prev:
            os.system("zenity --info --text='running a shell command...'")
        run_prev = h['run']
except KeyboardInterrupt:
    raise SystemExit
halcmd loadusr ./command.py
halcmd setp command.run 1
 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 11:17
				 nkp
				вот более подробно:
sh.sh
в axisrc:
Код: Выделить всё
import subprocess
if hal_present == 1 :
    ucomp = hal.component("axisui.user")
    ucomp.newpin('btn',   hal.HAL_BIT, hal.HAL_IN)
    ucomp.ready()  
def user_live_update():
    if ucomp.btn:
        name_file  = './sh.sh'
        p = subprocess.Popen(["sh", "-c", name_file] )
        p.wait()  
в postgui.hal:
 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 13:29
				 j4zzur1
				nkp писал(а):вот более подробно:
Благодарю душевно, всё отлично работает! 
А если мне нужно еще один sh файл к уже другой кнопке привязать, есть такая возможность?
 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 13:42
				 nkp
				j4zzur1 писал(а):А если мне нужно еще один sh файл к уже другой кнопке привязать, есть такая возможность?
Код: Выделить всё
net btn:bash1  axisui.user.btn1 pyvcp.btn1
net btn:bash2  axisui.user.btn2 pyvcp.btn2
 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 14:41
				 j4zzur1
				nkp писал(а):net btn:bash1  axisui.user.btn1 pyvcp.btn1
net btn:bash2  axisui.user.btn2 pyvcp.btn2
Огромное спасибо! всё работает великолепно!
 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 16:30
				 Serg
				j4zzur1 писал(а):Это мне знакомо, но ведь halcmd нужен наоборот, для управления hal из терминала..
Нет у него подобных ограничений.
 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 09 июл 2020, 18:50
				 xenon-alien
				Вот начал чутку следить за тематикой Линукс и не понимаю, когда буду хотя бы на половину вашего уровня... 

 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 05 фев 2022, 17:36
				 SergCNC
				По образу и подобию прикрутил скрипт L_call.sh
Код: Выделить всё
#!/bin/bash
axis-remote /home/cnc/linuxcnc/nc_files/LEVAYA.ngc 
exit 0
к кнопке 
Код: Выделить всё
net l_call	a.us.l_prog	gladevcp.hal_lev_call
в пользовательском axisrc
Код: Выделить всё
#!/usr/bin/python
import subprocess
if hal_present == 1 :
    ucomp = hal.component("a.us")
    ucomp.newpin('l_prog', hal.HAL_BIT, hal.HAL_IN)
    ucomp.ready()  
def user_live_update():
    if ucomp.l_prog:
        name_file  = './L_call.sh'
        p = subprocess.Popen(["sh", "-c", name_file] )
        p.wait()
при нажатии кнопки в диспетчере задач появляеся процесс
axis-remote /home/cnc/linuxcnc/nc_files/LEVAYA.ngc    PID 3942  PPID 3941  Состояние S  RSS 9Миб  ЦПУ 0%
и пока его принудительно не завершить, будет все висеть...
а после завершения все загружается, как и при прямом запуске скрипта... 
 
что не так делаю?
 
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 05 фев 2022, 17:55
				 Kost_irk
				
axis-remote /home/cnc/linuxcnc/nc_files/LEVAYA.ngc &
			 
			
					
				Re: bash скрипт и его привязка к пину.
				Добавлено: 05 фев 2022, 21:27
				 SergCNC
				тоже самое...