Страница 12 из 12
Re: gscreen
Добавлено: 14 янв 2013, 19:23
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 я так понимаю тут не при чем."
Re: gscreen
Добавлено: 14 янв 2013, 19:27
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)
Re: gscreen
Добавлено: 14 янв 2013, 19:33
nkp
Nick писал(а):ни как раз DRO вроде обновляют.
да - они перерисовывают label
но данные берут из Data
вот в этом как раз мой первоначальный вопрос :
как в классе Data обновляются данные
ну наверно он их берет из emc_interface.py
а вот где это прописано??????
Re: gscreen
Добавлено: 15 янв 2013, 10:01
Nick
Что-то я совсем туплю... читаю через слово и ничего не понимаю
итак, в 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 и обновляет его значения.
Re: gscreen
Добавлено: 15 янв 2013, 18:32
nkp
спасибо Ник!
в этом вопросе разобрался
немного сбивают с толку одинаковые имена
то есть если бы
self.parametr = Data()
self.status = emc_interface.emc_status( self.parametr, linuxcnc)
может быстрей дошло

Re: gscreen
Добавлено: 16 янв 2013, 10:59
Nick
Да, как-то оно странно написано. Хотя вроде автор gscreen только начинает писать на питоне, и вроде это его первая работа - надо отнестись с пониманием

Re: gscreen
Добавлено: 16 янв 2013, 11:08
nkp
Nick писал(а):Да, как-то оно странно написано. Хотя вроде автор gscreen только начинает писать на питоне, и вроде это его первая работа - надо отнестись с пониманием
ну да- надо написать ему - что мол не порядок - мне трудно передирать Ваш код
а вообще я понял он примерно тем же занимается ,чем я (только называет это "хак")
а первоисточник - это стандартный touchy от Chris Radek
Re: gscreen
Добавлено: 02 дек 2014, 22:05
aftaev
И что тема все сдохла? Не будет Lcnc как Сименс выглядеть?
Re: gscreen
Добавлено: 02 дек 2014, 22:22
Serg
aftaev писал(а):И что тема все сдохла? Не будет Lcnc как Сименс выглядеть?
Все перешли в стан gmocappy.
