bash скрипт и его привязка к пину.
- 
				j4zzur1
 - Новичок
 - Сообщения: 29
 - Зарегистрирован: 26 фев 2018, 23:04
 - Репутация: 0
 - Настоящее имя: Николай
 - Контактная информация:
 
bash скрипт и его привязка к пину.
Добрый день. Возникла задача привязать определенную bash команду к пину hal, ну например, кнопке на gladevcp панели. Единственный способ, который мне известен (и который я смог нагуглить) - использование М-команд. Однако, требуемая команда должна выполняться до хоуминга осей, а параметр NO_FORCE_HOMING = 1 не позволителен. Прошу помощи и заранее благодарю за ответы.
			
			
									
									
						- 
				alex_sar
 - Мастер
 - Сообщения: 1863
 - Зарегистрирован: 28 авг 2018, 17:13
 - Репутация: 315
 - Настоящее имя: Алексей
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
вы бы конкретней задачу написали, а то вы как дипломат - максимально туманно выражаетесь )
способы есть, непонятно что именно надо сделать вам.
			
			
									
									
						способы есть, непонятно что именно надо сделать вам.
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
halcmd
			
			
									
									Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- 
				j4zzur1
 - Новичок
 - Сообщения: 29
 - Зарегистрирован: 26 фев 2018, 23:04
 - Репутация: 0
 - Настоящее имя: Николай
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
да тут всё просто) нужно привязать пин кнопки pyvcp.button к запуску bash скрипта sh. в скрипте ничего особенного, лишь звуковые эффекты и текст.alex_sar писал(а):вы бы конкретней задачу написали
Это мне знакомо, но ведь halcmd нужен наоборот, для управления hal из терминала..UAVpilot писал(а):halcmd
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
а если  в postgui.hal
а в ini
а в M155
			
			
									
									
						Код: Выделить всё
net btn:bash pyvcp.button  halui.mdi-command-00Код: Выделить всё
[HALUI]
MDI_COMMAND = M155Код: Выделить всё
#!/bin/bash
...
exit 0- 
				j4zzur1
 - Новичок
 - Сообщения: 29
 - Зарегистрирован: 26 фев 2018, 23:04
 - Репутация: 0
 - Настоящее имя: Николай
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
Это ж как раз способ через М-команду.. В первом посте я объяснил, почему не могу так сделать.nkp писал(а):а в M155
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
так это ж нужно первые посты читатьj4zzur1 писал(а):Это ж как раз способ через М-команду.. В первом посте я объяснил, почему не могу так сделать.
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
в axisrc http://www.cnc-club.ru/forum/viewtopic. ... 51#p562251
прописать пин ,который приконнектить к пину кнопки
по его активации использовать что то из такого примерно
subprocess.Popen(тут_наш_скрипт)
как такое?
			
			
									
									
						прописать пин ,который приконнектить к пину кнопки
по его активации использовать что то из такого примерно
subprocess.Popen(тут_наш_скрипт)
как такое?
- merkwurdigliebe
 - Мастер
 - Сообщения: 609
 - Зарегистрирован: 17 дек 2013, 22:14
 - Репутация: 580
 - Откуда: București
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
Код: Выделить всё
#!/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 setp command.run 1
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
вот более подробно:
sh.sh
в axisrc:
в postgui.hal:
			
			
									
									
						sh.sh
Код: Выделить всё
#!/bin/bash
echo "Hello world"Код: Выделить всё
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()  Код: Выделить всё
net btn:bash  axisui.user.btn pyvcp.button- 
				j4zzur1
 - Новичок
 - Сообщения: 29
 - Зарегистрирован: 26 фев 2018, 23:04
 - Репутация: 0
 - Настоящее имя: Николай
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
Благодарю душевно, всё отлично работает!nkp писал(а):вот более подробно:
А если мне нужно еще один sh файл к уже другой кнопке привязать, есть такая возможность?
- 
				nkp
 - Мастер
 - Сообщения: 8340
 - Зарегистрирован: 28 ноя 2011, 00:25
 - Репутация: 1589
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
j4zzur1 писал(а):А если мне нужно еще один sh файл к уже другой кнопке привязать, есть такая возможность?
Код: Выделить всё
net btn:bash1  axisui.user.btn1 pyvcp.btn1
net btn:bash2  axisui.user.btn2 pyvcp.btn2- 
				j4zzur1
 - Новичок
 - Сообщения: 29
 - Зарегистрирован: 26 фев 2018, 23:04
 - Репутация: 0
 - Настоящее имя: Николай
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
Огромное спасибо! всё работает великолепно!nkp писал(а):net btn:bash1 axisui.user.btn1 pyvcp.btn1
net btn:bash2 axisui.user.btn2 pyvcp.btn2
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
Нет у него подобных ограничений.j4zzur1 писал(а):Это мне знакомо, но ведь halcmd нужен наоборот, для управления hal из терминала..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
						- xenon-alien
 - Почётный участник

 - Сообщения: 4520
 - Зарегистрирован: 01 янв 2013, 13:13
 - Репутация: 925
 - Настоящее имя: Daniel
 - Откуда: Закарпатская обл. Украина
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
Вот начал чутку следить за тематикой Линукс и не понимаю, когда буду хотя бы на половину вашего уровня... 
- SergCNC
 - Новичок
 - Сообщения: 11
 - Зарегистрирован: 05 янв 2022, 20:45
 - Репутация: 0
 - Настоящее имя: Сергей Борисович
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
По образу и подобию прикрутил скрипт L_call.sh
к кнопке 
в пользовательском axisrc
при нажатии кнопки в диспетчере задач появляеся процесс
axis-remote /home/cnc/linuxcnc/nc_files/LEVAYA.ngc PID 3942 PPID 3941 Состояние S RSS 9Миб ЦПУ 0%
и пока его принудительно не завершить, будет все висеть...
а после завершения все загружается, как и при прямом запуске скрипта...
 
что не так делаю?
			
			
									
									Код: Выделить всё
#!/bin/bash
axis-remote /home/cnc/linuxcnc/nc_files/LEVAYA.ngc 
exit 0Код: Выделить всё
net l_call	a.us.l_prog	gladevcp.hal_lev_callКод: Выделить всё
#!/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%
и пока его принудительно не завершить, будет все висеть...
а после завершения все загружается, как и при прямом запуске скрипта...
что не так делаю?
Побольше Вам таких, как Вы, на вашем жизненном пути!
						- 
				Kost_irk
 - Мастер
 - Сообщения: 1000
 - Зарегистрирован: 19 июл 2018, 07:46
 - Репутация: 194
 - Откуда: Иркутск
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
axis-remote /home/cnc/linuxcnc/nc_files/LEVAYA.ngc &
- SergCNC
 - Новичок
 - Сообщения: 11
 - Зарегистрирован: 05 янв 2022, 20:45
 - Репутация: 0
 - Настоящее имя: Сергей Борисович
 - Контактная информация:
 
Re: bash скрипт и его привязка к пину.
тоже самое...
			
			
									
									Побольше Вам таких, как Вы, на вашем жизненном пути!