MyGUI

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: MyGUI

Сообщение PKM »

РАз зашла речь о Git. У меня недавно возникла ситуация. Скачал мастер, поредактировал и хочу вернуть все назад, чтобы получить новые изменения с сервера. Вроде бы можно вернуть через

git reset --hard

но у меня ни черта не получилось, все равно рапортует что есть лишние изменения и отказывается применять git pull
Приходится создавать новый репозиторий и скачивать все заново, ведь так не должно быть...
Аватара пользователя
Starik
Опытный
Сообщения: 136
Зарегистрирован: 13 май 2012, 21:22
Репутация: 17
Откуда: Долгопрудный

Re: MyGUI

Сообщение Starik »

есть надстройка над git, сильно жизнь упрощает: stgit звать...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: MyGUI

Сообщение Nick »

PKM писал(а):Скачал мастер, поредактировал и хочу вернуть все назад, чтобы получить новые изменения с сервера. Вроде бы можно вернуть через
хмм.... т.е. ты хочешь стереть все, что сделал? А revert не помогает?
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: MyGUI

Сообщение PKM »

Nick писал(а): revert не помогает?
Не пробовал, буду уже на новой папке упражняться.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: MyGUI

Сообщение nkp »

в продолжение http://cnc-club.ru/forum/viewtopic.php? ... 697#p94697

Код: Выделить всё

#!/usr/bin/python

import pygtk
pygtk.require("2.0")
import gtk
import gladevcp.makepins
from gladevcp.gladebuilder import GladeBuilder
import hal
from subprocess import *
import sys,os
BASE = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), ".."))
datadir = os.path.join(BASE, "share", "linuxcnc")
xmlname = os.path.join(datadir,"mygui.glade")

class Widgets:
        def __init__(self, xml):
                self._xml = xml
        def __getattr__(self, attr):
                r = self._xml.get_object(attr)
                if r is None: raise AttributeError, "No widget %r" % attr
                return r
        def __getitem__(self, attr):
                r = self._xml.get_object(attr)
                if r is None: raise IndexError, "No widget %r" % attr
                return r

class Mygui(object):

   def on_window1_destroy(self, widget, data=None):
      print "quit++"
      gtk.main_quit()
   def __init__(self):
      self.builder = gtk.Builder()
      self.builder.add_from_file(xmlname)
      halcomp = hal.component("mygui")
      self.widgets = Widgets(self.builder)
      self.builder.connect_signals(self)
      self.window = self.builder.get_object("window1")
      self.window.show()
      self.window.fullscreen()
      panel = gladevcp.makepins.GladePanel( halcomp, xmlname, self.builder, None)


if __name__ == "__main__":
   app = Mygui()
   res = os.spawnvp(os.P_WAIT, "halcmd", ["halcmd", "-f", "/home/sun/linuxcnc/configs/MyGUI/mode.hal"])
   if res: raise SystemExit, res
   gtk.main() 
вот так измени его попробуй ...
если ошибок не будет - добавим функцию...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: MyGUI

Сообщение Ворон226 »

Ошибок не выдал...
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: MyGUI

Сообщение nkp »

Код: Выделить всё

#!/usr/bin/python

import pygtk
pygtk.require("2.0")
import gtk
import gladevcp.makepins
from gladevcp.gladebuilder import GladeBuilder
import hal
from subprocess import *
import sys,os
BASE = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), ".."))
datadir = os.path.join(BASE, "share", "linuxcnc")
xmlname = os.path.join(datadir,"mygui.glade")

class Widgets:
        def __init__(self, xml):
                self._xml = xml
        def __getattr__(self, attr):
                r = self._xml.get_object(attr)
                if r is None: raise AttributeError, "No widget %r" % attr
                return r
        def __getitem__(self, attr):
                r = self._xml.get_object(attr)
                if r is None: raise IndexError, "No widget %r" % attr
                return r

class Mygui(object):

   def shutdown (self,widget): 
      h = Popen(['/home/nkp/sh.sh'], shell=True)

   def on_window1_destroy(self, widget, data=None):
      print "quit++"
      gtk.main_quit()
   def __init__(self):
      self.builder = gtk.Builder()
      self.builder.add_from_file(xmlname)
      halcomp = hal.component("mygui")
      self.widgets = Widgets(self.builder)
      self.builder.connect_signals(self)
      self.window = self.builder.get_object("window1")
      self.window.show()
      self.window.fullscreen()
      panel = gladevcp.makepins.GladePanel( halcomp, xmlname, self.builder, None)


if __name__ == "__main__":
   app = Mygui()
   res = os.spawnvp(os.P_WAIT, "halcmd", ["halcmd", "-f", "/home/sun/linuxcnc/configs/MyGUI/mode.hal"])
   if res: raise SystemExit, res
   gtk.main() 
только вместо /home/nkp/sh.sh напиши свой путь к файлу sh.sh
его содержимое :
#!/bin/sh
sudo shutdown -h now
и сделай его исполняемым...(ну может это и лишнее - не знаю))
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: MyGUI

Сообщение Ворон226 »

А вот тут ошибка:
Вложения
error.txt
(3.48 КБ) 1083 скачивания
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: MyGUI

Сообщение nkp »

пишет ошибка сиснтаксиса в 4 строке :thinking:
мы добывили две строчки :
def shutdown (self,widget):
h = Popen(['/home/nkp/sh.sh'], shell=True)
закомментируй их # и попробуй ...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: MyGUI

Сообщение Ворон226 »

Сделал. Вот, что удалось ухватить в терминале:

Код: Выделить всё

chine configuration directory is '/home/sun/linuxcnc-dev/configs/MyGUI'
Machine configuration file is 'MyGUI.ini'
Starting LinuxCNC...
io started
halcmd loadusr io started
task pid=3925
emcTaskInit: using builtin interpreter
/home/sun/linuxcnc-dev/bin/mygui: строка 4: ошибка синтаксиса около неожиданной лексемы `"2.0"'
/home/sun/linuxcnc-dev/bin/mygui: строка 4: `    pygtk.require("2.0")'
Shutting down and cleaning up LinuxCNC...
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: MyGUI

Сообщение nkp »

ну тогда смотри - что там у тебя не так около 4-й строки...
у нас же первый раз (без двух строк ) функции запускалось без ошибок http://cnc-club.ru/forum/viewtopic.php? ... 718#p94700
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: MyGUI

Сообщение Ворон226 »

Теперь и первый вариант стал ругаться на 4 строку. (заново скопировал с форума и запустил)
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: MyGUI

Сообщение nkp »

все проверил - все работает)
повесил на кнопку - жму - комп выключается...
проверяй у себя ( не доверяй копипасту )
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: MyGUI

Сообщение Ворон226 »

Да уж. Питон, однако! Вся проблема в пробелах. Теперь не ругается... Осталось "прикрутить" кнопку к функции. Как?

Точнее - визуальная панель запускается, кнопочки работают, двигатели двигаются, но вот в терминале есть ошибка:

Код: Выделить всё

LINUXCNC - 2.6.0-pre0-4739-g5efa78e
Machine configuration directory is '/home/sun/linuxcnc-dev/configs/MyGUI'
Machine configuration file is 'MyGUI.ini'
Starting LinuxCNC...
io started
halcmd loadusr io started
task pid=2326
emcTaskInit: using builtin interpreter
RTAPI: ERROR: Unexpected realtime delay on task 1
This Message will only display once per session.
Run the Latency Test and resolve before continuing.

Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: MyGUI

Сообщение nkp »

открой свой glade файл , создай кнопку (или к уже готовой) :
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: MyGUI

Сообщение nkp »

Ворон226 писал(а):но вот в терминале есть ошибка:
http://cnc-club.ru/forum/viewtopic.php? ... 1232#p1232
у тебя latency на данном компе нормальный?
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: MyGUI

Сообщение Ворон226 »

Прошел по твоей ссылке на текст и увидел

EMC2 отказывается выполнять программы до тех пор пока не найдены начала осей потому, что EMC2 должен точно знать в каком положении находится станок, чтобы не дать ему выехать за пределы осей.

Если совсем не хочется выставлять начала, то можно в файле конфигурации в раздел [TRAJ] нужно добавить строчку: "NO_FORCE_HOMING = 1" и EMC2 не будет выдавать эту ошибку. Но в этом случае нужно быть особенно внимательным следя за работой станка, т.к. EMC2 не сможет контролировать пределы осей

И решил я проверить. Исправил ini-файл. Запустил конфигурацию... Все работает. Но вот при нажатии на кнопку выключения терминал ругнулся по-другому:

Код: Выделить всё

emc/task/emctask.cc 389: interp_error: Использован неизвестный M-код
Использован неизвестный M-код
Интересно - эта ситуация проще предыдущей или нет?
(буду пока прописывать кнопочку в Glade)
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: MyGUI

Сообщение nkp »

Использован неизвестный M-код
тут скорей всего файл м-кода лежит в иной папке , нежели указано в ини в PROGRAM_PREFIX =
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: MyGUI

Сообщение nkp »

Ворон226 писал(а):Да уж. Питон, однако! Вся проблема в пробелах
да - иногда это напрягает (хотя интепретатор почти всегда поправляет нас))
но вот люди помешаные на питоне ставят это в заслугу: :freak:
http://www.youtube.com/watch?v=GyP59P8h7uQ
9:40 - 11:23
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: MyGUI

Сообщение Ворон226 »

Вот все и встало на свои места. Работают оба варианта!

Один штатный LCNC:

написать M-код выключения машины и компьютера и положить её в папку, адрес которой указываем в ini

Код: Выделить всё

[DISPLAY]
PROGRAM_PREFIX = <адрес папки с M-кодом>
Там же в ini указать, что устанавливать home не нужно

Код: Выделить всё

[TRAJ]
NO_FORCE_HOMING = 1
Там же в ini прописать mdi-команду

Код: Выделить всё

[HALUI]
MDI_COMMAND = <имя M-кода с выключением>
И саму кнопку из визуальной панели прописать в mode.hal

Код: Выделить всё

net   mdi   mygui.hal_buttonN   halui.mdi-command-00
Второй вариант через скрипт mygui (описан выше).

Оба работают. Осталось только решить: какой больше подходит ;)

Большое спасибо!
Хочешь быть счастливым? Будь им!
Ответить

Вернуться в «LinuxCNC»