то в емс начинает подсвечиваться как бы номер строки из этой подпрограммы...
как то раньше это не мешало ,но вот пришлось на это обратить внимание))
разрабы вроде давно поднимали этот вопрос,но что то в 2.7.15 все прыгает по прежнему
такая ситуация и в Axis , и в hal_sourceview.py (хотя на Gmoccapy не проверял)
"ноги растут" из current_line из linuxcnc.stat(),
потому как текущая строка(ее номер) в GUI передается именно отсюда (так еще два параметра идентичных есть)
----------------
багрепорт написал
пока решится сделал костыль - чтоб хотя бы не "откидывало" назад по коду
для hal_sourceview.py
Код: Выделить всё
def set_line_number(self,linenum):
self.offset = linenum
self.check_offset()
self.highlight_line(self.gstat, self.offset)
if linenum == 0: #nkp
self.line_mem = 0
def highlight_line(self, w, l):
if l > self.line_mem : #nkp
self.line_mem = l
else:
return
....
....
Код: Выделить всё
--- /home/nkp//axis
+++ /home/nkp/linuxcnc/configs/jog/axis
@@ -664,7 +664,8 @@
self.notifications_clear = False
self.notifications_clear_info = False
self.notifications_clear_error = False
-
+ self.current_line_mem = 0
+
def start(self):
if self.running.get(): return
if not os.path.exists(linuxcnc.nmlfile):
@@ -734,14 +735,16 @@
root_window.tk.eval(pane_top + ".tabs raise manual")
if (self.current_task_mode == linuxcnc.MODE_MDI):
root_window.tk.eval(pane_top + ".tabs raise mdi")
- if (self.current_task_mode == linuxcnc.MODE_AUTO):
+ if (self.current_task_mode != linuxcnc.MODE_AUTO):
# not sure if anything needs to be done for this
pass
+ self.current_line_mem = 0
self.after = self.win.after(update_ms, self.update)
-
- self.win.set_current_line(self.stat.id or self.stat.motion_line)
-
+ if (self.stat.id or self.stat.motion_line) > self.current_line_mem :
+ self.win.set_current_line(self.stat.id or self.stat.motion_line)
+ self.current_line_mem = (self.stat.id or self.stat.motion_line)
+
speed = self.stat.current_vel
limits = soft_limits()