gscreen

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

Re: gscreen

Сообщение nkp »

Nick писал(а):self.data["%s_abs"% letter] = p[count]
self.data - это - self.data = Data()
так это строки с разных скриптов

self.data["%s_abs"% letter] = p[count] - это строка с emc_interface.py (её нет в gscreen.py)
а self.data = Data() - вот это уже с gscreen.py
и как же :
"А emc_interface.py я так понимаю тут не при чем."
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

тогда есть вот такие еще строки в gscreen.py - они как раз DRO вроде обновляют.

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

   def update_position(self,*args):
        # DRO 
        for i in ("x","y","z","a","s"):
            if i == "s":
                self.widgets.s_display.set_value(abs(self.halcomp["spindle-readout.in"]))
                self.widgets.s_display.set_target_value(abs(self.data.spindle_speed))
                self.widgets.s_display2.set_value(abs(self.data.spindle_speed))
            else:
                
                for j in range (0,3):
                    current = self.data.display_order[j]
                    attr = pango.AttrList()
                    if current == _ABS:
                        color = self.data.abs_color
                        data = self.data["%s_abs"%i]
                        #text = "%+ 10.4f"% self.data["%s_abs"%i]
                        label = "ABS"
                    elif current == _REL:
                        color = self.data.rel_color
                        data = self.data["%s_rel"%i]
                        #text = "%+ 10.4f"% self.data["%s_rel"%i]
                        label= "REL"
                    elif current == _DTG:
                        color = self.data.dtg_color
                        data = self.data["%s_dtg"%i]
                        #text = "%+ 10.4f"% self.data["%s_dtg"%i]
                        label = "DTG"
                    if j == 2:
                        if self.data.highlight_major:
                            hlcolor = self.data.highlight_color
                            bg_color = pango.AttrBackground(hlcolor[0],hlcolor[1],hlcolor[2], 0, -1)
                            attr.insert(bg_color)
                        size = pango.AttrSize(30000, 0, -1)
                        attr.insert(size)
                        weight = pango.AttrWeight(600, 0, -1)
                        attr.insert(weight)
                    fg_color = pango.AttrForeground(color[0],color[1],color[2], 0, 11)
                    attr.insert(fg_color)
                    self.widgets["%s_display_%d"%(i,j)].set_attributes(attr)
                    h = " "
                    if current == _ABS and self.data["%s_is_homed"% i]: h = "*"
                    if self.data.diameter_mode and i == 'x': data = data * 2.0
                    if self.data.dro_units == _MM:
                        text = "%s% 10.3f"% (h,data)
                    else:
                        text = "%s% 9.4f"% (h,data)
                    self.widgets["%s_display_%d"%(i,j)].set_text(text)
                    self.widgets["%s_display_%d"%(i,j)].set_alignment(0,.5)
                    self.widgets["%s_display_%d_label"%(i,j)].set_alignment(1,.5)
                    self.widgets["%s_display_%d_label"%(i,j)].set_text(label)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

Nick писал(а):ни как раз DRO вроде обновляют.
да - они перерисовывают label
но данные берут из Data
вот в этом как раз мой первоначальный вопрос :
как в классе Data обновляются данные
ну наверно он их берет из emc_interface.py
а вот где это прописано??????
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Что-то я совсем туплю... читаю через слово и ничего не понимаю :freak:
итак, в gscreen в __init__
self.status = emc_interface.emc_status( self.data, linuxcnc)
вызывает emc_interface.py:
def __init__(self, data, emc):
где
self.data = data
и потом уже self.status.periodic(): обновляет self.data от статуса, который на самом деле просто содержит ссылку на self.data от gscreen и обновляет его значения.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

спасибо Ник!
в этом вопросе разобрался
немного сбивают с толку одинаковые имена
то есть если бы
self.parametr = Data()
self.status = emc_interface.emc_status( self.parametr, linuxcnc)
может быстрей дошло ;)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: gscreen

Сообщение Nick »

Да, как-то оно странно написано. Хотя вроде автор gscreen только начинает писать на питоне, и вроде это его первая работа - надо отнестись с пониманием :)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: gscreen

Сообщение nkp »

Nick писал(а):Да, как-то оно странно написано. Хотя вроде автор gscreen только начинает писать на питоне, и вроде это его первая работа - надо отнестись с пониманием
ну да- надо написать ему - что мол не порядок - мне трудно передирать Ваш код :hehehe:
а вообще я понял он примерно тем же занимается ,чем я (только называет это "хак")
а первоисточник - это стандартный touchy от Chris Radek
touchy.rar
(27.74 КБ) 413 скачиваний
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: gscreen

Сообщение aftaev »

И что тема все сдохла? Не будет Lcnc как Сименс выглядеть?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: gscreen

Сообщение Serg »

aftaev писал(а):И что тема все сдохла? Не будет Lcnc как Сименс выглядеть?
Все перешли в стан gmocappy. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

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