MyGUI
- PKM
- Почётный участник
- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: MyGUI
РАз зашла речь о Git. У меня недавно возникла ситуация. Скачал мастер, поредактировал и хочу вернуть все назад, чтобы получить новые изменения с сервера. Вроде бы можно вернуть через
git reset --hard
но у меня ни черта не получилось, все равно рапортует что есть лишние изменения и отказывается применять git pull
Приходится создавать новый репозиторий и скачивать все заново, ведь так не должно быть...
git reset --hard
но у меня ни черта не получилось, все равно рапортует что есть лишние изменения и отказывается применять git pull
Приходится создавать новый репозиторий и скачивать все заново, ведь так не должно быть...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: MyGUI
хмм.... т.е. ты хочешь стереть все, что сделал? А revert не помогает?PKM писал(а):Скачал мастер, поредактировал и хочу вернуть все назад, чтобы получить новые изменения с сервера. Вроде бы можно вернуть через
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: MyGUI
в продолжение 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()
если ошибок не будет - добавим функцию...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: MyGUI
Код: Выделить всё
#!/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()
его содержимое :
#!/bin/sh
sudo shutdown -h now
и сделай его исполняемым...(ну может это и лишнее - не знаю))
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: MyGUI
Сделал. Вот, что удалось ухватить в терминале:
Код: Выделить всё
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...
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: MyGUI
ну тогда смотри - что там у тебя не так около 4-й строки...
у нас же первый раз (без двух строк ) функции запускалось без ошибок http://cnc-club.ru/forum/viewtopic.php? ... 718#p94700
у нас же первый раз (без двух строк ) функции запускалось без ошибок http://cnc-club.ru/forum/viewtopic.php? ... 718#p94700
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: MyGUI
Теперь и первый вариант стал ругаться на 4 строку. (заново скопировал с форума и запустил)
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: MyGUI
Да уж. Питон, однако! Вся проблема в пробелах. Теперь не ругается... Осталось "прикрутить" кнопку к функции. Как?
Точнее - визуальная панель запускается, кнопочки работают, двигатели двигаются, но вот в терминале есть ошибка:
Точнее - визуальная панель запускается, кнопочки работают, двигатели двигаются, но вот в терминале есть ошибка:
Код: Выделить всё
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.
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: MyGUI
http://cnc-club.ru/forum/viewtopic.php? ... 1232#p1232Ворон226 писал(а):но вот в терминале есть ошибка:
у тебя latency на данном компе нормальный?
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: MyGUI
Прошел по твоей ссылке на текст и увидел
EMC2 отказывается выполнять программы до тех пор пока не найдены начала осей потому, что EMC2 должен точно знать в каком положении находится станок, чтобы не дать ему выехать за пределы осей.
Если совсем не хочется выставлять начала, то можно в файле конфигурации в раздел [TRAJ] нужно добавить строчку: "NO_FORCE_HOMING = 1" и EMC2 не будет выдавать эту ошибку. Но в этом случае нужно быть особенно внимательным следя за работой станка, т.к. EMC2 не сможет контролировать пределы осей
И решил я проверить. Исправил ini-файл. Запустил конфигурацию... Все работает. Но вот при нажатии на кнопку выключения терминал ругнулся по-другому:
Интересно - эта ситуация проще предыдущей или нет?
(буду пока прописывать кнопочку в Glade)
EMC2 отказывается выполнять программы до тех пор пока не найдены начала осей потому, что EMC2 должен точно знать в каком положении находится станок, чтобы не дать ему выехать за пределы осей.
Если совсем не хочется выставлять начала, то можно в файле конфигурации в раздел [TRAJ] нужно добавить строчку: "NO_FORCE_HOMING = 1" и EMC2 не будет выдавать эту ошибку. Но в этом случае нужно быть особенно внимательным следя за работой станка, т.к. EMC2 не сможет контролировать пределы осей
И решил я проверить. Исправил ini-файл. Запустил конфигурацию... Все работает. Но вот при нажатии на кнопку выключения терминал ругнулся по-другому:
Код: Выделить всё
emc/task/emctask.cc 389: interp_error: Использован неизвестный M-код
Использован неизвестный M-код
(буду пока прописывать кнопочку в Glade)
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: MyGUI
да - иногда это напрягает (хотя интепретатор почти всегда поправляет нас))Ворон226 писал(а):Да уж. Питон, однако! Вся проблема в пробелах
но вот люди помешаные на питоне ставят это в заслугу:
http://www.youtube.com/watch?v=GyP59P8h7uQ
9:40 - 11:23
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: MyGUI
Вот все и встало на свои места. Работают оба варианта!
Один штатный LCNC:
написать M-код выключения машины и компьютера и положить её в папку, адрес которой указываем в ini
Там же в ini указать, что устанавливать home не нужно
Там же в ini прописать mdi-команду
И саму кнопку из визуальной панели прописать в mode.hal
Второй вариант через скрипт mygui (описан выше).
Оба работают. Осталось только решить: какой больше подходит
Большое спасибо!
Один штатный LCNC:
написать M-код выключения машины и компьютера и положить её в папку, адрес которой указываем в ini
Код: Выделить всё
[DISPLAY]
PROGRAM_PREFIX = <адрес папки с M-кодом>
Код: Выделить всё
[TRAJ]
NO_FORCE_HOMING = 1
Код: Выделить всё
[HALUI]
MDI_COMMAND = <имя M-кода с выключением>
Код: Выделить всё
net mdi mygui.hal_buttonN halui.mdi-command-00
Оба работают. Осталось только решить: какой больше подходит
Большое спасибо!
Хочешь быть счастливым? Будь им!