Страница 1 из 1
Как узнать имя исполняемой в axis программы из bash?
Добавлено: 03 июн 2015, 14:33
aekhv
Написал себе простенькую jabber-уведомлялку о завершении обработки. Уведомлялка шлёт мне время потраченное на обработку, но для полного счастья хотелось бы и имя программы (.ngc файла) добавить. Обыскался уже в гугле, наверное не то спрашиваю.

Кто-нибудь знает как из bash узнать имя загруженной в axis программы?

Re: Как узнать имя исполняемой в axis программы из bash?
Добавлено: 03 июн 2015, 15:10
Serg
Штатным образом никак, только патчить axis.
Re: Как узнать имя исполняемой в axis программы из bash?
Добавлено: 03 июн 2015, 15:32
aekhv
Кажется нашёл, можно выдрать искомое из заголовка окна:
Re: Как узнать имя исполняемой в axis программы из bash?
Добавлено: 03 июн 2015, 16:14
Serg
Так можно, но без гарантии.
Re: Как узнать имя исполняемой в axis программы из bash?
Добавлено: 03 июн 2015, 16:42
aekhv
Вот, сделал совсем красиво:
Код: Выделить всё
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:~$
Re: Как узнать имя исполняемой в axis программы из bash?
Добавлено: 03 июн 2015, 17:19
Lexxa
может в
сторону копать стоит?
Re: Как узнать имя исполняемой в axis программы из bash?
Добавлено: 03 июн 2015, 18:03
aekhv
Lexxa писал(а):может в эту сторону копать стоит?
Нет, мне не нужно удалённо управлять станком. Задача весьма скромная - нужно отправить во внутрисетевой чат сообщение о том, что выполнение такого-то файла завершено за такое-то время. Сделал всё на баше, так проще.

Re: Как узнать имя исполняемой в axis программы из bash?
Добавлено: 03 июн 2015, 20:06
umerov
Вроде оно
http://linuxcnc.org/docs/devel/html/com ... rface.html
linuxcnc.stat attributes => file (returns string) - currently executing gcode file.
Re: Как узнать имя исполняемой в axis программы из bash?
Добавлено: 03 июн 2015, 20:09
nkp
umerov писал(а):Вроде оно
но
BentScrew писал(а):как из bash
Re: Как узнать имя исполняемой в axis программы из bash?
Добавлено: 03 июн 2015, 20:38
Serg
umerov писал(а):Вроде оно
Да, оно!
nkp писал(а):но как из bash
Кто-то мешает маленький скриптик на питоне написать?
Re: Как узнать имя исполняемой в axis программы из bash?
Добавлено: 04 июн 2015, 03:44
Lexxa
BentScrew писал(а):мне не нужно удалённо управлять станком
по команде get gcode в ответ должно придти имя загруженной программы
Re: Как узнать имя исполняемой в axis программы из bash?
Добавлено: 04 июн 2015, 10:31
aekhv
Всем спасибо за советы, но уже лень переделывать, остановился на своём варианте. Вот что получилось в итоге.
Код M101 вставляется в начало программы, сразу после Tx M6.
Код: Выделить всё
#!/bin/bash
echo `date +%H:%M:%S` > ~/time.ini
exit 0
Код M102 вставляется в конце, перед M2/M30.
Код: Выделить всё
#!/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
send_xmpp_message.py
Код: Выделить всё
#!/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()
Пример размещения M101 и M102. У меня это автоматически делает постпроцессор.
Код: Выделить всё
%
G21 G17 G90 G64 P0.1
T1 M6
M101
S10000 M3
...
...
G0 X... Y... Z...
...
...
M5
M102
M30
%
Пример сообщения:
Код: Выделить всё
Обработка завершена ( NanoGiperGraviCapa99.ngc / 00:17:33 )
Конечно же, вместо сообщения в jabber можно прикрутить отправку email или sms, но меня пока и так устраивает.