Как узнать имя исполняемой в axis программы из bash?
- aekhv
- Мастер
- Сообщения: 393
- Зарегистрирован: 17 окт 2014, 15:03
- Репутация: 218
- Настоящее имя: Александр
- Откуда: г.Хабаровск
Как узнать имя исполняемой в axis программы из bash?
Написал себе простенькую jabber-уведомлялку о завершении обработки. Уведомлялка шлёт мне время потраченное на обработку, но для полного счастья хотелось бы и имя программы (.ngc файла) добавить. Обыскался уже в гугле, наверное не то спрашиваю.
Кто-нибудь знает как из bash узнать имя загруженной в axis программы? 
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как узнать имя исполняемой в axis программы из bash?
Штатным образом никак, только патчить axis.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- aekhv
- Мастер
- Сообщения: 393
- Зарегистрирован: 17 окт 2014, 15:03
- Репутация: 218
- Настоящее имя: Александр
- Откуда: г.Хабаровск
Re: Как узнать имя исполняемой в axis программы из bash?
Кажется нашёл, можно выдрать искомое из заголовка окна:
Код: Выделить всё
xwininfo -root -tree | grep .ngc- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как узнать имя исполняемой в axis программы из bash?
Так можно, но без гарантии.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- aekhv
- Мастер
- Сообщения: 393
- Зарегистрирован: 17 окт 2014, 15:03
- Репутация: 218
- Настоящее имя: Александр
- Откуда: г.Хабаровск
Re: Как узнать имя исполняемой в axis программы из bash?
Вот, сделал совсем красиво:
Код: Выделить всё
user@debian:~$ xwininfo -root -tree | grep LinuxCNC
0x2e00011 "My "super-duper" PrograMM.ngc - AXIS 2.6.1 on LinuxCNC-HAL-SIM-AXIS": ("axis" "Axis") 710x597+1+22 +693+145
user@debian:~$ xwininfo -root -tree | grep LinuxCNC | sed -r 's/ - AXIS.+//' | cut -d '"' -f 2-
My "super-duper" PrograMM.ngc
user@debian:~$- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
- aekhv
- Мастер
- Сообщения: 393
- Зарегистрирован: 17 окт 2014, 15:03
- Репутация: 218
- Настоящее имя: Александр
- Откуда: г.Хабаровск
Re: Как узнать имя исполняемой в axis программы из bash?
Нет, мне не нужно удалённо управлять станком. Задача весьма скромная - нужно отправить во внутрисетевой чат сообщение о том, что выполнение такого-то файла завершено за такое-то время. Сделал всё на баше, так проще.Lexxa писал(а):может в эту сторону копать стоит?
-
umerov
- Кандидат
- Сообщения: 83
- Зарегистрирован: 18 янв 2012, 21:22
- Репутация: 21
- Откуда: Украина
- Контактная информация:
Re: Как узнать имя исполняемой в axis программы из bash?
Вроде оно
http://linuxcnc.org/docs/devel/html/com ... rface.html
linuxcnc.stat attributes => file (returns string) - currently executing gcode file.
http://linuxcnc.org/docs/devel/html/com ... rface.html
linuxcnc.stat attributes => file (returns string) - currently executing gcode file.
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Как узнать имя исполняемой в axis программы из bash?
ноumerov писал(а):Вроде оно
BentScrew писал(а):как из bash
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как узнать имя исполняемой в axis программы из bash?
Да, оно!umerov писал(а):Вроде оно
Кто-то мешает маленький скриптик на питоне написать?nkp писал(а):но как из bash
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Как узнать имя исполняемой в axis программы из bash?
по команде get gcode в ответ должно придти имя загруженной программыBentScrew писал(а):мне не нужно удалённо управлять станком
- aekhv
- Мастер
- Сообщения: 393
- Зарегистрирован: 17 окт 2014, 15:03
- Репутация: 218
- Настоящее имя: Александр
- Откуда: г.Хабаровск
Re: Как узнать имя исполняемой в axis программы из bash?
Всем спасибо за советы, но уже лень переделывать, остановился на своём варианте. Вот что получилось в итоге.
Код M101 вставляется в начало программы, сразу после Tx M6.
Код M102 вставляется в конце, перед M2/M30.
send_xmpp_message.py
Пример размещения M101 и M102. У меня это автоматически делает постпроцессор.
Пример сообщения:
Конечно же, вместо сообщения в jabber можно прикрутить отправку email или sms, но меня пока и так устраивает.
Код M101 вставляется в начало программы, сразу после Tx M6.
Код: Выделить всё
#!/bin/bash
echo `date +%H:%M:%S` > ~/time.ini
exit 0 Код: Выделить всё
#!/bin/bash
read start_time < ~/time.ini
end_time=`date +%H:%M:%S`
duration=`date -d @$(( $(date -d "$end_time" +%s) - $(date -d "$start_time" +%s) )) -u +%H:%M:%S`
fname=`xwininfo -root -tree | grep " AXIS " | sed -r 's/ - AXIS.+//' | cut -d '"' -f 2-`
# указать свои данные - id получателя, сервер
send_xmpp_message.py id_to@server "Обработка завершена ( $fname / $duration )"
exit 0Код: Выделить всё
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import xmpp,sys
# указать свои данные - id отправителя, сервер, пароль
xmpp_jid = 'id_from@server'
xmpp_pwd = 'pwd'
to = sys.argv[1]
msg = sys.argv[2]
jid = xmpp.protocol.JID(xmpp_jid)
client = xmpp.Client(jid.getDomain(),debug=[])
client.connect()
client.auth(jid.getNode(),str(xmpp_pwd),resource='xmpppy')
client.send(xmpp.protocol.Message(to,msg))
client.disconnect()Код: Выделить всё
%
G21 G17 G90 G64 P0.1
T1 M6
M101
S10000 M3
...
...
G0 X... Y... Z...
...
...
M5
M102
M30
%
Код: Выделить всё
Обработка завершена ( NanoGiperGraviCapa99.ngc / 00:17:33 )