Страница 4 из 47
Re: MyGUI
Добавлено: 03 сен 2012, 19:43
nkp
"Скорее всего ngcgui правит загруженный код, и возможно ему нужен какой-то хендл."
Отвечу по ngcgui здесь.
как он работает:
открываем файл с ж-кодом
парсим на нахождение строк с дефолтными данными и комментариями
формируем gui
юзер не\правит данные
формируются данные вида о<name>call [1] [2] [3] .......
записываем это в auto.ngc
Всё ))
а емс уже загружает такой файл с кодом:
и ничего ему не надо
дело не в ngcgui здесь - gscreen не кушает файл с о-кодом
John Thornton как то решил с этим
Re: MyGUI
Добавлено: 03 сен 2012, 19:47
Nick
Может тупо не находит? Тогда скорее всего надо смотреть правильность путей.
Re: MyGUI
Добавлено: 03 сен 2012, 19:48
nkp
решил поупражнятся :
ngcgui на питоне
только наброски
(но уже чёй-то шевелится

)
Код: Выделить всё
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import pygtk
import gtk
from gladevcp.gladebuilder import GladeBuilder
import gladevcp
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
class Test:
def make (self, data=None):
self.d = {
1:self.widgets.entry1.get_text(),2:self.widgets.entry2.get_text(),
3:self.widgets.entry3.get_text(),4:self.widgets.entry4.get_text(),
5:self.widgets.entry5.get_text(),6:self.widgets.entry6.get_text(),
7:self.widgets.entry7.get_text(),8:self.widgets.entry8.get_text(),
9:self.widgets.entry9.get_text(),10:self.widgets.entry10.get_text(),
11:self.widgets.entry11.get_text(),12:self.widgets.entry12.get_text(),
13:self.widgets.entry13.get_text(),14:self.widgets.entry14.get_text()
}
for i in self.d.keys() :
try:
v = int(self.d.get(i))
except ValueError:
print "Вводите только цифры"
def finish (self, data=None):
f = open("/home/nkp/ngcgui.ngc", "w")
ser=' '
n=['o','<', self.name, '>','call', '\n','M2']
h=1
m=5
while h <= self.q:
n.insert(m, '[')
m+=1
n.insert(m, self.d.get(h))
m+=1
n.insert(m, ']')
h+=1
m+=1
print n
j=ser.join(n)
f.write(j)
f.close()
gtk.main_quit()
def __init__(self):
self.name='name'
self.builder = gtk.Builder()
self.builder.add_from_file("1.glade")
self.builder.connect_signals(self)
self.builder.get_object("window1").show()
self.widgets = Widgets(self.builder)
self.ent = [
self.widgets.entry1,self.widgets.entry2,
self.widgets.entry3,self.widgets.entry4,
self.widgets.entry5,self.widgets.entry6,
self.widgets.entry7,self.widgets.entry8,
self.widgets.entry9,self.widgets.entry10,
self.widgets.entry11,self.widgets.entry12,
self.widgets.entry13,self.widgets.entry14
]
self.ent1 = [
self.widgets.entry15,self.widgets.entry16,
self.widgets.entry17,self.widgets.entry18,
self.widgets.entry19,self.widgets.entry20,
self.widgets.entry21,self.widgets.entry22,
self.widgets.entry23,self.widgets.entry24,
self.widgets.entry25,self.widgets.entry26,
self.widgets.entry27,self.widgets.entry28
]
f = open("/home/nkp/emc2/nc_files/sfer.ngc", "r")
lines = f.readlines()
x=0
q=0
while x < len(lines):
if re.search("#\d+ *[(*]", lines[x]):
vel=re.findall('[(][=][-]?.?0?\d*[.]?\d*', lines[x])
#парсим комментарии
dat=re.findall('[(].+', lines[x])
dat1=re.findall('\s+.+', dat[0])
print dat1 ,'DATA'
self.ent1[q].set_text(dat1[0])
vel1=re.findall('[-]?\d+[.]?\d*', vel[0])
print vel1
if len(vel) != 0:
self.ent[q].set_text(vel1[0])
else:
self.ent[q].set_text('')
q+=1
x+=1
#скрываем незанятые поля
t=0
while t+q < 14 :
for r in self.ent :
w=self.ent[q+t]
w.hide()
t+=1
print q
tt=0
while tt+q < 14 :
for k in self.ent1 :
wd=self.ent1[q+tt]
wd.hide()
tt+=1
self.q=q
f.close()
if __name__ == "__main__":
main = Test()
gtk.main()
Re: MyGUI
Добавлено: 03 сен 2012, 19:50
nkp
Nick писал(а):Может тупо не находит? Тогда скорее всего надо смотреть правильность путей.
та я ему вроде уже прямо на язык ложу

Re: MyGUI
Добавлено: 03 сен 2012, 20:10
nkp
Как на данный момент это работает:
берем (пока это в коде прописано ) любой файл ngcgui :
ну то есть запускаем наш скрипт - правим данные в мастере - нажимаем send потом финиш
в файле ngcgui.ngc (путь прописан в скрипте) появляется код:
Код: Выделить всё
o < name > call [ 30 ] [ 20 ] [ 10 ] [ 1 ] [ 0 ] [ 8 ] [ 400 ]
M2
пробелы не мешают нормальной загрузке в emc:
Re: MyGUI
Добавлено: 03 сен 2012, 20:17
Nick
Погоди, ты свой ngcgui написал что-ли?
Re: MyGUI
Добавлено: 03 сен 2012, 20:29
nkp
Nick писал(а):Погоди, ты свой ngcgui написал что-ли?
это помогает разобраться в питоне ...
Re: MyGUI
Добавлено: 07 сен 2012, 20:54
nkp
был вопрос по ngcgui и питон
вот подработал :
(картинки пока какие попались)
пока встрою в axis:
но будет в gscreen (mygui) и концепция будет немного другая
Re: MyGUI
Добавлено: 19 сен 2012, 22:51
nkp
создаю пин в скрипте,к нему в хал файле пытаюсь прицепить halui.mode.is-manual
пин создается - а вот коннектится не хочет
если пишу в POSTGUI_HALFILE = mode.hal - загружается ,но не отрабатывает
а если HALFILE = mode.hal - то ошибка - нет такого пина "mygui.in"
может чего неправильно пишу??
Код: Выделить всё
self.builder = gtk.Builder()
self.builder.add_from_file(xmlname)
self.window = self.builder.get_object("window1")
self.halcomp = hal.component("mygui")
self.halcomp.newpin("in", hal.HAL_BIT, hal.HAL_IN)
panel = gladevcp.makepins.GladePanel( self.halcomp, xmlname, self.builder, None)
self.builder.connect_signals(self)
self.halcomp.ready()
вот весь скрипт:
(для просмотра содержимого нажмите на ссылку)Код: Выделить всё
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pygtk
pygtk.require("2.0")
import gtk
import time
import gladevcp.makepins
from gladevcp.gladebuilder import GladeBuilder
import hal
import linuxcnc
import hal_glib
import sys
import gladevcp
import 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")
CONFIGPATH = os.environ['CONFIG_DIR']
inifile = linuxcnc.ini(sys.argv[2])
print sys.argv[1]
print sys.argv[2]
print os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), " "))
class Setpoint:
def __init__(self):
self.d=("P","X","Y","Z")
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 open_m(self,widget):
f=open('/home/nkp/emc2/nc_files/axis.ngc', "r")
lines = f.readlines()
sys.stdout.write(str(lines))
def home_all(self,widget):
self.c.home(0)
self.c.home(1)
self.c.home(2)
def WriteToAxis(self,widget):
sys.stdout.write()
def on_window1_destroy(self, widget, data=None):
print "quit++"
gtk.main_quit()
def page_select(self,widget):
maxpage = self.widgets.notebook.get_n_pages()
page = self.widgets.notebook.get_current_page()
nextpage = page + 1
if nextpage == maxpage:
nextpage = 0
self.widgets.notebook.set_current_page(nextpage)
def on_halmeter(self,*args):
print "hmeter"
p = os.popen("halmeter &")
def fullscreen(self,*args):
self.window.unfullscreen()
def enable_dro(self,*args):
self.widgets.gremlin.set_property('enable_dro',(1))
self.widgets.gremlin.set_mouse_start(0,0)
self.rotate(20,0)
def change_viev(self,*args):
def whirligig():
self.setpoint.d = self.setpoint.d[-1:]+self.setpoint.d[:-1]
whirligig()
self.widgets.gremlin.set_property('view',self.setpoint.d[0])
def pan(self,x,y):
self.widgets.gremlin.pan(x,y)
def rotate(self,x,y):
self.widgets.gremlin.rotate_view(x,y)
def on_halshow(self,*args):
print "halshow"
p = os.popen("/home/nkp/emc2-dev-80db2a2/tcl/bin/halshow.tcl &" )
def __init__(self):
global xmlname
localglade = os.path.join(CONFIGPATH,"mygui.glade")
if os.path.exists(localglade):
print " MyGUI INFO: Загружаем файл glade %s "% localglade
xmlname = localglade
else:
print " MyGUI INFO: Загружаем файл glade %s " % xmlname
self.builder = gtk.Builder()
self.builder.add_from_file(xmlname)
self.window = self.builder.get_object("window1")
self.halcomp = hal.component("mygui")
self.halcomp.newpin("in", hal.HAL_BIT, hal.HAL_IN)
panel = gladevcp.makepins.GladePanel( self.halcomp, xmlname, self.builder, None)
self.builder.connect_signals(self)
self.halcomp.ready()
self.setpoint = Setpoint()
self.widgets = Widgets(self.builder)
self.widgets.mode_j.hide()
self.widgets.mode_j1.hide()
self.widgets.mode_j2.hide()
self.widgets.mode_mdi.hide()
self.widgets.mode_m.hide()
self.window.fullscreen()
self.widgets.gremlin.set_property('enable_dro',(0))
self.widgets.button53.modify_bg(gtk.STATE_NORMAL , gtk.gdk.Color('#FF0095'))
self.c = linuxcnc.command()
self.widgets.button1.connect("clicked", self.home_all)
self.widgets.button8.connect("clicked", self.page_select)
self.window.show()
if __name__ == "__main__":
app = Mygui()
gtk.main()

Re: MyGUI
Добавлено: 19 сен 2012, 22:54
Nick
А как ты его в POSTGUI присоединяешь?
И скинь на всякий случай полный halcmd show
Re: MyGUI
Добавлено: 19 сен 2012, 23:00
nkp
Nick писал(а):А как ты его в POSTGUI присоединяешь?
я уже по всякому пробовал
и так:
и в hal писал:
ав POSTGUI :
Re: MyGUI
Добавлено: 19 сен 2012, 23:03
nkp
Код: Выделить всё
Loaded HAL Components:
ID Type Name PID State
14 User halcmd8745 8745 ready
12 User mygui 8709 ready
11 RT hal_parport ready
10 RT stepgen ready
9 RT motmod ready
8 RT trivkins ready
7 User halui 8690 ready
5 User iocontrol 8688 ready
Component Pins:
Owner Type Dir Value Name
9 bit OUT TRUE axis.0.active
9 bit OUT FALSE axis.0.amp-enable-out ==> Xen
9 bit IN FALSE axis.0.amp-fault-in
9 float OUT 0 axis.0.backlash-corr
9 float OUT 0 axis.0.backlash-filt
9 float OUT 0 axis.0.backlash-vel
9 float OUT 0 axis.0.coarse-pos-cmd
9 bit OUT FALSE axis.0.error
9 float OUT 0 axis.0.f-error
9 float OUT 0.26 axis.0.f-error-lim
9 bit OUT FALSE axis.0.f-errored
9 bit OUT FALSE axis.0.faulted
9 float OUT 0 axis.0.free-pos-cmd
9 bit OUT FALSE axis.0.free-tp-enable
9 float OUT 0 axis.0.free-vel-lim
9 bit IN FALSE axis.0.home-sw-in
9 bit OUT FALSE axis.0.homed
9 bit OUT FALSE axis.0.homing
9 bit OUT TRUE axis.0.in-position
9 bit I/O FALSE axis.0.index-enable
9 s32 IN 0 axis.0.jog-counts
9 bit IN FALSE axis.0.jog-enable
9 float IN 0 axis.0.jog-scale
9 bit IN FALSE axis.0.jog-vel-mode
9 float OUT 0 axis.0.joint-pos-cmd
9 float OUT 0 axis.0.joint-pos-fb
9 float OUT 0 axis.0.joint-vel-cmd
9 bit OUT FALSE axis.0.kb-jog-active
9 float OUT 0 axis.0.motor-offset
9 float OUT 0 axis.0.motor-pos-cmd ==> Xpos-cmd
9 float IN 0 axis.0.motor-pos-fb <== Xpos-fb
9 bit OUT FALSE axis.0.neg-hard-limit
9 bit IN FALSE axis.0.neg-lim-sw-in
9 bit OUT FALSE axis.0.pos-hard-limit
9 bit IN FALSE axis.0.pos-lim-sw-in
9 bit OUT FALSE axis.0.wheel-jog-active
9 bit OUT TRUE axis.1.active
9 bit OUT FALSE axis.1.amp-enable-out ==> Yen
9 bit IN FALSE axis.1.amp-fault-in
9 float OUT 0 axis.1.backlash-corr
9 float OUT 0 axis.1.backlash-filt
9 float OUT 0 axis.1.backlash-vel
9 float OUT 0 axis.1.coarse-pos-cmd
9 bit OUT FALSE axis.1.error
9 float OUT 0 axis.1.f-error
9 float OUT 0.26 axis.1.f-error-lim
9 bit OUT FALSE axis.1.f-errored
9 bit OUT FALSE axis.1.faulted
9 float OUT 0 axis.1.free-pos-cmd
9 bit OUT FALSE axis.1.free-tp-enable
9 float OUT 0 axis.1.free-vel-lim
9 bit IN FALSE axis.1.home-sw-in
9 bit OUT FALSE axis.1.homed
9 bit OUT FALSE axis.1.homing
9 bit OUT TRUE axis.1.in-position
9 bit I/O FALSE axis.1.index-enable
9 s32 IN 0 axis.1.jog-counts
9 bit IN FALSE axis.1.jog-enable
9 float IN 0 axis.1.jog-scale
9 bit IN FALSE axis.1.jog-vel-mode
9 float OUT -0 axis.1.joint-pos-cmd
9 float OUT -0 axis.1.joint-pos-fb
9 float OUT 0 axis.1.joint-vel-cmd
9 bit OUT FALSE axis.1.kb-jog-active
9 float OUT 0 axis.1.motor-offset
9 float OUT 0 axis.1.motor-pos-cmd ==> Ypos-cmd
9 float IN -0 axis.1.motor-pos-fb <== Ypos-fb
9 bit OUT FALSE axis.1.neg-hard-limit
9 bit IN FALSE axis.1.neg-lim-sw-in
9 bit OUT FALSE axis.1.pos-hard-limit
9 bit IN FALSE axis.1.pos-lim-sw-in
9 bit OUT FALSE axis.1.wheel-jog-active
9 bit OUT TRUE axis.2.active
9 bit OUT FALSE axis.2.amp-enable-out ==> Zen
9 bit IN FALSE axis.2.amp-fault-in
9 float OUT 0 axis.2.backlash-corr
9 float OUT 0 axis.2.backlash-filt
9 float OUT 0 axis.2.backlash-vel
9 float OUT 0 axis.2.coarse-pos-cmd
9 bit OUT FALSE axis.2.error
9 float OUT 0 axis.2.f-error
9 float OUT 0.26 axis.2.f-error-lim
9 bit OUT FALSE axis.2.f-errored
9 bit OUT FALSE axis.2.faulted
9 float OUT 0 axis.2.free-pos-cmd
9 bit OUT FALSE axis.2.free-tp-enable
9 float OUT 0 axis.2.free-vel-lim
9 bit IN FALSE axis.2.home-sw-in
9 bit OUT FALSE axis.2.homed
9 bit OUT FALSE axis.2.homing
9 bit OUT TRUE axis.2.in-position
9 bit I/O FALSE axis.2.index-enable
9 s32 IN 0 axis.2.jog-counts
9 bit IN FALSE axis.2.jog-enable
9 float IN 0 axis.2.jog-scale
9 bit IN FALSE axis.2.jog-vel-mode
9 float OUT -0 axis.2.joint-pos-cmd
9 float OUT -0 axis.2.joint-pos-fb
9 float OUT 0 axis.2.joint-vel-cmd
9 bit OUT FALSE axis.2.kb-jog-active
9 float OUT 0 axis.2.motor-offset
9 float OUT 0 axis.2.motor-pos-cmd ==> Zpos-cmd
9 float IN -0 axis.2.motor-pos-fb <== Zpos-fb
9 bit OUT FALSE axis.2.neg-hard-limit
9 bit IN FALSE axis.2.neg-lim-sw-in
9 bit OUT FALSE axis.2.pos-hard-limit
9 bit IN FALSE axis.2.pos-lim-sw-in
9 bit OUT FALSE axis.2.wheel-jog-active
7 bit IN FALSE halui.abort
7 float OUT 0 halui.axis.0.pos-commanded
7 float OUT 0 halui.axis.0.pos-feedback
7 float OUT 0 halui.axis.0.pos-relative
7 float OUT -0 halui.axis.1.pos-commanded
7 float OUT -0 halui.axis.1.pos-feedback
7 float OUT -0 halui.axis.1.pos-relative
7 float OUT -0 halui.axis.2.pos-commanded
7 float OUT -0 halui.axis.2.pos-feedback
7 float OUT -0 halui.axis.2.pos-relative
7 float OUT 0 halui.axis.3.pos-commanded
7 float OUT 0 halui.axis.3.pos-feedback
7 float OUT 0 halui.axis.3.pos-relative
7 float OUT 0 halui.axis.4.pos-commanded
7 float OUT 0 halui.axis.4.pos-feedback
7 float OUT 0 halui.axis.4.pos-relative
7 float OUT 0 halui.axis.5.pos-commanded
7 float OUT 0 halui.axis.5.pos-feedback
7 float OUT 0 halui.axis.5.pos-relative
7 float OUT 0 halui.axis.6.pos-commanded
7 float OUT 0 halui.axis.6.pos-feedback
7 float OUT 0 halui.axis.6.pos-relative
7 float OUT 0 halui.axis.7.pos-commanded
7 float OUT 0 halui.axis.7.pos-feedback
7 float OUT 0 halui.axis.7.pos-relative
7 float OUT 0 halui.axis.8.pos-commanded
7 float OUT 0 halui.axis.8.pos-feedback
7 float OUT 0 halui.axis.8.pos-relative
7 bit IN FALSE halui.estop.activate
7 bit OUT TRUE halui.estop.is-activated
7 bit IN FALSE halui.estop.reset
7 bit IN TRUE halui.feed-override.count-enable
7 s32 IN 0 halui.feed-override.counts
7 bit IN FALSE halui.feed-override.decrease
7 bit IN FALSE halui.feed-override.direct-value
7 bit IN FALSE halui.feed-override.increase
7 float IN 0.1 halui.feed-override.scale
7 float OUT 1 halui.feed-override.value
7 bit OUT FALSE halui.flood.is-on
7 bit IN FALSE halui.flood.off
7 bit IN FALSE halui.flood.on
7 float IN 0.2 halui.jog-deadband
7 float IN 0 halui.jog-speed
7 float IN 0 halui.jog.0.analog
7 float IN 0 halui.jog.0.increment
7 bit IN FALSE halui.jog.0.increment-minus
7 bit IN FALSE halui.jog.0.increment-plus
7 bit IN FALSE halui.jog.0.minus
7 bit IN FALSE halui.jog.0.plus
7 float IN 0 halui.jog.1.analog
7 float IN 0 halui.jog.1.increment
7 bit IN FALSE halui.jog.1.increment-minus
7 bit IN FALSE halui.jog.1.increment-plus
7 bit IN FALSE halui.jog.1.minus
7 bit IN FALSE halui.jog.1.plus
7 float IN 0 halui.jog.2.analog
7 float IN 0 halui.jog.2.increment
7 bit IN FALSE halui.jog.2.increment-minus
7 bit IN FALSE halui.jog.2.increment-plus
7 bit IN FALSE halui.jog.2.minus
7 bit IN FALSE halui.jog.2.plus
7 float IN 0 halui.jog.selected.increment
7 bit IN FALSE halui.jog.selected.increment-minus
7 bit IN FALSE halui.jog.selected.increment-plus
7 bit IN FALSE halui.jog.selected.minus
7 bit IN FALSE halui.jog.selected.plus
7 bit OUT FALSE halui.joint.0.has-fault
7 bit IN FALSE halui.joint.0.home
7 bit OUT FALSE halui.joint.0.is-homed
7 bit OUT FALSE halui.joint.0.is-selected
7 bit OUT FALSE halui.joint.0.on-hard-max-limit
7 bit OUT FALSE halui.joint.0.on-hard-min-limit
7 bit OUT FALSE halui.joint.0.on-soft-max-limit
7 bit OUT FALSE halui.joint.0.on-soft-min-limit
7 bit IN FALSE halui.joint.0.select
7 bit IN FALSE halui.joint.0.unhome
7 bit OUT FALSE halui.joint.1.has-fault
7 bit IN FALSE halui.joint.1.home
7 bit OUT FALSE halui.joint.1.is-homed
7 bit OUT FALSE halui.joint.1.is-selected
7 bit OUT FALSE halui.joint.1.on-hard-max-limit
7 bit OUT FALSE halui.joint.1.on-hard-min-limit
7 bit OUT FALSE halui.joint.1.on-soft-max-limit
7 bit OUT FALSE halui.joint.1.on-soft-min-limit
7 bit IN FALSE halui.joint.1.select
7 bit IN FALSE halui.joint.1.unhome
7 bit OUT FALSE halui.joint.2.has-fault
7 bit IN FALSE halui.joint.2.home
7 bit OUT FALSE halui.joint.2.is-homed
7 bit OUT FALSE halui.joint.2.is-selected
7 bit OUT FALSE halui.joint.2.on-hard-max-limit
7 bit OUT FALSE halui.joint.2.on-hard-min-limit
7 bit OUT FALSE halui.joint.2.on-soft-max-limit
7 bit OUT FALSE halui.joint.2.on-soft-min-limit
7 bit IN FALSE halui.joint.2.select
7 bit IN FALSE halui.joint.2.unhome
7 u32 OUT 0x00000000 halui.joint.selected
7 bit OUT FALSE halui.joint.selected.has-fault
7 bit IN FALSE halui.joint.selected.home
7 bit OUT FALSE halui.joint.selected.is_homed
7 bit OUT FALSE halui.joint.selected.on-hard-max-limit
7 bit OUT FALSE halui.joint.selected.on-hard-min-limit
7 bit OUT FALSE halui.joint.selected.on-soft-limit
7 bit OUT FALSE halui.joint.selected.on-soft-min-limit
7 bit IN FALSE halui.joint.selected.unhome
7 bit OUT FALSE halui.lube.is-on
7 bit IN FALSE halui.lube.off
7 bit IN FALSE halui.lube.on
7 bit OUT FALSE halui.machine.is-on
7 bit IN FALSE halui.machine.off
7 bit IN FALSE halui.machine.on
7 bit IN TRUE halui.max-velocity.count-enable
7 s32 IN 0 halui.max-velocity.counts
7 bit IN FALSE halui.max-velocity.decrease
7 bit IN FALSE halui.max-velocity.direct-value
7 bit IN FALSE halui.max-velocity.increase
7 float IN 0 halui.max-velocity.scale
7 float OUT 8 halui.max-velocity.value
7 bit OUT FALSE halui.mist.is-on
7 bit IN FALSE halui.mist.off
7 bit IN FALSE halui.mist.on
7 bit IN FALSE halui.mode.auto
7 bit OUT FALSE halui.mode.is-auto
7 bit OUT TRUE halui.mode.is-joint
7 bit OUT TRUE halui.mode.is-manual ==> manual
7 bit OUT FALSE halui.mode.is-mdi
7 bit OUT FALSE halui.mode.is-teleop
7 bit IN FALSE halui.mode.joint
7 bit IN FALSE halui.mode.manual
7 bit IN FALSE halui.mode.mdi
7 bit IN FALSE halui.mode.teleop
7 bit OUT TRUE halui.program.block-delete.is-on
7 bit IN FALSE halui.program.block-delete.off
7 bit IN FALSE halui.program.block-delete.on
7 bit OUT TRUE halui.program.is-idle
7 bit OUT FALSE halui.program.is-paused
7 bit OUT FALSE halui.program.is-running
7 bit OUT TRUE halui.program.optional-stop.is-on
7 bit IN FALSE halui.program.optional-stop.off
7 bit IN FALSE halui.program.optional-stop.on
7 bit IN FALSE halui.program.pause
7 bit IN FALSE halui.program.resume
7 bit IN FALSE halui.program.run
7 bit IN FALSE halui.program.step
7 bit IN FALSE halui.program.stop
7 bit IN TRUE halui.spindle-override.count-enable
7 s32 IN 0 halui.spindle-override.counts
7 bit IN FALSE halui.spindle-override.decrease
7 bit IN FALSE halui.spindle-override.direct-value
7 bit IN FALSE halui.spindle-override.increase
7 float IN 0.1 halui.spindle-override.scale
7 float OUT 1 halui.spindle-override.value
7 bit OUT TRUE halui.spindle.brake-is-on
7 bit IN FALSE halui.spindle.brake-off
7 bit IN FALSE halui.spindle.brake-on
7 bit IN FALSE halui.spindle.decrease
7 bit IN FALSE halui.spindle.forward
7 bit IN FALSE halui.spindle.increase
7 bit OUT FALSE halui.spindle.is-on
7 bit IN FALSE halui.spindle.reverse
7 bit OUT FALSE halui.spindle.runs-backward
7 bit OUT FALSE halui.spindle.runs-forward
7 bit IN FALSE halui.spindle.start
7 bit IN FALSE halui.spindle.stop
7 float OUT 0 halui.tool.length_offset.a
7 float OUT 0 halui.tool.length_offset.b
7 float OUT 0 halui.tool.length_offset.c
7 float OUT 0 halui.tool.length_offset.u
7 float OUT 0 halui.tool.length_offset.v
7 float OUT 0 halui.tool.length_offset.w
7 float OUT 0 halui.tool.length_offset.x
7 float OUT 0 halui.tool.length_offset.y
7 float OUT 0 halui.tool.length_offset.z
7 u32 OUT 0x00000000 halui.tool.number
5 bit OUT FALSE iocontrol.0.coolant-flood
5 bit OUT FALSE iocontrol.0.coolant-mist
5 bit IN FALSE iocontrol.0.emc-enable-in <== estop-loop
5 bit OUT FALSE iocontrol.0.lube
5 bit IN FALSE iocontrol.0.lube_level
5 bit OUT FALSE iocontrol.0.tool-change ==> tool-change-loop
5 bit IN FALSE iocontrol.0.tool-changed <== tool-change-loop
5 s32 OUT 0 iocontrol.0.tool-number
5 s32 OUT 0 iocontrol.0.tool-prep-number
5 s32 OUT 0 iocontrol.0.tool-prep-pocket
5 bit OUT FALSE iocontrol.0.tool-prepare ==> tool-prep-loop
5 bit IN FALSE iocontrol.0.tool-prepared <== tool-prep-loop
5 bit OUT FALSE iocontrol.0.user-enable-out ==> estop-loop
5 bit OUT FALSE iocontrol.0.user-request-enable
9 float IN 1 motion.adaptive-feed
9 float IN 0 motion.analog-in-00
9 float IN 0 motion.analog-in-01
9 float IN 0 motion.analog-in-02
9 float IN 0 motion.analog-in-03
9 float OUT 0 motion.analog-out-00
9 float OUT 0 motion.analog-out-01
9 float OUT 0 motion.analog-out-02
9 float OUT 0 motion.analog-out-03
9 bit OUT FALSE motion.coord-error
9 bit OUT FALSE motion.coord-mode
9 float OUT 0 motion.current-vel
9 bit IN FALSE motion.digital-in-00
9 bit IN FALSE motion.digital-in-01
9 bit IN FALSE motion.digital-in-02
9 bit IN FALSE motion.digital-in-03
9 bit OUT FALSE motion.digital-out-00
9 bit OUT FALSE motion.digital-out-01
9 bit OUT FALSE motion.digital-out-02
9 bit OUT FALSE motion.digital-out-03
9 float OUT 0 motion.distance-to-go
9 bit IN TRUE motion.enable
9 bit IN FALSE motion.feed-hold
9 bit OUT TRUE motion.in-position
9 bit IN FALSE motion.motion-enabled
9 bit OUT FALSE motion.on-soft-limit
9 bit IN FALSE motion.probe-input
9 s32 OUT 0 motion.program-line
9 float OUT 0 motion.requested-vel
9 bit IN TRUE motion.spindle-at-speed
9 bit OUT TRUE motion.spindle-brake
9 bit OUT FALSE motion.spindle-forward
9 bit I/O FALSE motion.spindle-index-enable
9 bit IN FALSE motion.spindle-is-oriented
9 bit OUT FALSE motion.spindle-locked
9 bit OUT FALSE motion.spindle-on ==> spindle-on
9 bit OUT FALSE motion.spindle-orient
9 float OUT 0 motion.spindle-orient-angle
9 s32 IN 0 motion.spindle-orient-fault
9 s32 OUT 0 motion.spindle-orient-mode
9 bit OUT FALSE motion.spindle-reverse
9 float IN 0 motion.spindle-revs
9 float OUT 0 motion.spindle-speed-cmd-rps
9 float IN 0 motion.spindle-speed-in
9 float OUT 0 motion.spindle-speed-out
9 float OUT 0 motion.spindle-speed-out-rps
9 bit OUT FALSE motion.teleop-mode
9 float OUT 0 motion.tooloffset.a
9 float OUT 0 motion.tooloffset.b
9 float OUT 0 motion.tooloffset.c
9 float OUT 0 motion.tooloffset.u
9 float OUT 0 motion.tooloffset.v
9 float OUT 0 motion.tooloffset.w
9 float OUT 0 motion.tooloffset.x
9 float OUT 0 motion.tooloffset.y
9 float OUT 0 motion.tooloffset.z
12 bit IN FALSE mygui.in
11 bit IN FALSE parport.0.pin-01-out
11 bit IN FALSE parport.0.pin-02-out <== Xdir
11 bit IN FALSE parport.0.pin-03-out <== Xstep
11 bit IN FALSE parport.0.pin-04-out <== Ydir
11 bit IN FALSE parport.0.pin-05-out <== Ystep
11 bit IN FALSE parport.0.pin-06-out <== Zdir
11 bit IN FALSE parport.0.pin-07-out <== Zstep
11 bit IN FALSE parport.0.pin-08-out
11 bit IN FALSE parport.0.pin-09-out <== spindle-on
11 bit OUT TRUE parport.0.pin-10-in
11 bit OUT FALSE parport.0.pin-10-in-not
11 bit OUT TRUE parport.0.pin-11-in
11 bit OUT FALSE parport.0.pin-11-in-not
11 bit OUT TRUE parport.0.pin-12-in
11 bit OUT FALSE parport.0.pin-12-in-not
11 bit OUT TRUE parport.0.pin-13-in
11 bit OUT FALSE parport.0.pin-13-in-not
11 bit IN FALSE parport.0.pin-14-out
11 bit OUT TRUE parport.0.pin-15-in
11 bit OUT FALSE parport.0.pin-15-in-not
11 bit IN FALSE parport.0.pin-16-out
11 bit IN FALSE parport.0.pin-17-out
10 s32 OUT 0 stepgen.0.counts
10 bit OUT FALSE stepgen.0.dir ==> Xdir
10 bit IN FALSE stepgen.0.enable <== Xen
10 float IN 0 stepgen.0.position-cmd <== Xpos-cmd
10 float OUT 0 stepgen.0.position-fb ==> Xpos-fb
10 bit OUT FALSE stepgen.0.step ==> Xstep
10 s32 OUT 0 stepgen.1.counts
10 bit OUT FALSE stepgen.1.dir ==> Ydir
10 bit IN FALSE stepgen.1.enable <== Yen
10 float IN 0 stepgen.1.position-cmd <== Ypos-cmd
10 float OUT -0 stepgen.1.position-fb ==> Ypos-fb
10 bit OUT FALSE stepgen.1.step ==> Ystep
10 s32 OUT 0 stepgen.2.counts
10 bit OUT FALSE stepgen.2.dir ==> Zdir
10 bit IN FALSE stepgen.2.enable <== Zen
10 float IN 0 stepgen.2.position-cmd <== Zpos-cmd
10 float OUT -0 stepgen.2.position-fb ==> Zpos-fb
10 bit OUT FALSE stepgen.2.step ==> Zstep
Pin Aliases:
Alias Original Name
Signals:
Type Value Name (linked to)
bit FALSE Xdir
==> parport.0.pin-02-out
<== stepgen.0.dir
bit FALSE Xen
<== axis.0.amp-enable-out
==> stepgen.0.enable
float 0 Xpos-cmd
<== axis.0.motor-pos-cmd
==> stepgen.0.position-cmd
float 0 Xpos-fb
==> axis.0.motor-pos-fb
<== stepgen.0.position-fb
bit FALSE Xstep
==> parport.0.pin-03-out
<== stepgen.0.step
bit FALSE Ydir
==> parport.0.pin-04-out
<== stepgen.1.dir
bit FALSE Yen
<== axis.1.amp-enable-out
==> stepgen.1.enable
float 0 Ypos-cmd
<== axis.1.motor-pos-cmd
==> stepgen.1.position-cmd
float -0 Ypos-fb
==> axis.1.motor-pos-fb
<== stepgen.1.position-fb
bit FALSE Ystep
==> parport.0.pin-05-out
<== stepgen.1.step
bit FALSE Zdir
==> parport.0.pin-06-out
<== stepgen.2.dir
bit FALSE Zen
<== axis.2.amp-enable-out
==> stepgen.2.enable
float 0 Zpos-cmd
<== axis.2.motor-pos-cmd
==> stepgen.2.position-cmd
float -0 Zpos-fb
==> axis.2.motor-pos-fb
<== stepgen.2.position-fb
bit FALSE Zstep
==> parport.0.pin-07-out
<== stepgen.2.step
bit FALSE estop-loop
==> iocontrol.0.emc-enable-in
<== iocontrol.0.user-enable-out
bit TRUE manual
<== halui.mode.is-manual
bit FALSE spindle-on
<== motion.spindle-on
==> parport.0.pin-09-out
bit FALSE tool-change-loop
<== iocontrol.0.tool-change
==> iocontrol.0.tool-changed
bit FALSE tool-prep-loop
<== iocontrol.0.tool-prepare
==> iocontrol.0.tool-prepared
Parameters:
Owner Type Dir Value Name
9 s32 RO 0 axis.0.home-state
9 s32 RO 0 axis.1.home-state
9 s32 RO 0 axis.2.home-state
9 s32 RO 574 motion-command-handler.time
9 s32 RW 10500 motion-command-handler.tmax
9 s32 RO 9660 motion-controller.time
9 s32 RW 35938 motion-controller.tmax
9 bit RO FALSE motion.debug-bit-0
9 bit RO FALSE motion.debug-bit-1
9 float RO 1 motion.debug-float-0
9 float RO 0 motion.debug-float-1
9 float RO 0 motion.debug-float-2
9 float RO 1 motion.debug-float-3
9 s32 RO 0 motion.debug-s32-0
9 s32 RO 0 motion.debug-s32-1
9 u32 RO 0x002A8E14 motion.servo.last-period
9 float RO 998828.9 motion.servo.last-period-ns
9 u32 RW 0x00000000 motion.servo.overruns
11 u32 RW 0x00000000 parport.0.debug1
11 u32 RW 0x00000000 parport.0.debug2
11 bit RW FALSE parport.0.pin-01-out-invert
11 bit RW FALSE parport.0.pin-01-out-reset
11 bit RW FALSE parport.0.pin-02-out-invert
11 bit RW FALSE parport.0.pin-02-out-reset
11 bit RW FALSE parport.0.pin-03-out-invert
11 bit RW FALSE parport.0.pin-03-out-reset
11 bit RW FALSE parport.0.pin-04-out-invert
11 bit RW FALSE parport.0.pin-04-out-reset
11 bit RW FALSE parport.0.pin-05-out-invert
11 bit RW FALSE parport.0.pin-05-out-reset
11 bit RW FALSE parport.0.pin-06-out-invert
11 bit RW FALSE parport.0.pin-06-out-reset
11 bit RW FALSE parport.0.pin-07-out-invert
11 bit RW FALSE parport.0.pin-07-out-reset
11 bit RW FALSE parport.0.pin-08-out-invert
11 bit RW FALSE parport.0.pin-08-out-reset
11 bit RW FALSE parport.0.pin-09-out-invert
11 bit RW FALSE parport.0.pin-09-out-reset
11 bit RW FALSE parport.0.pin-14-out-invert
11 bit RW FALSE parport.0.pin-14-out-reset
11 bit RW FALSE parport.0.pin-16-out-invert
11 bit RW FALSE parport.0.pin-16-out-reset
11 bit RW FALSE parport.0.pin-17-out-invert
11 bit RW FALSE parport.0.pin-17-out-reset
11 s32 RO 4522 parport.0.read.time
11 s32 RW 23058 parport.0.read.tmax
11 u32 RW 0x00000000 parport.0.reset-time
11 s32 RO 0 parport.0.reset.time
11 s32 RW 0 parport.0.reset.tmax
11 s32 RO 8288 parport.0.write.time
11 s32 RW 31332 parport.0.write.tmax
11 s32 RO 0 parport.read-all.time
11 s32 RW 0 parport.read-all.tmax
11 s32 RO 0 parport.write-all.time
11 s32 RW 0 parport.write-all.tmax
10 u32 RW 0x0000C33B stepgen.0.dirhold
10 u32 RW 0x0000C33B stepgen.0.dirsetup
10 float RO 0 stepgen.0.frequency
10 float RW 60 stepgen.0.maxaccel
10 float RW 0 stepgen.0.maxvel
10 float RW 800 stepgen.0.position-scale
10 s32 RO 0 stepgen.0.rawcounts
10 u32 RW 0x0000C33B stepgen.0.steplen
10 u32 RW 0x0000C33B stepgen.0.stepspace
10 u32 RW 0x0000C33B stepgen.1.dirhold
10 u32 RW 0x0000C33B stepgen.1.dirsetup
10 float RO 0 stepgen.1.frequency
10 float RW 60 stepgen.1.maxaccel
10 float RW 0 stepgen.1.maxvel
10 float RW -800 stepgen.1.position-scale
10 s32 RO 0 stepgen.1.rawcounts
10 u32 RW 0x0000C33B stepgen.1.steplen
10 u32 RW 0x0000C33B stepgen.1.stepspace
10 u32 RW 0x0000C33B stepgen.2.dirhold
10 u32 RW 0x0000C33B stepgen.2.dirsetup
10 float RO 0 stepgen.2.frequency
10 float RW 60 stepgen.2.maxaccel
10 float RW 0 stepgen.2.maxvel
10 float RW -800 stepgen.2.position-scale
10 s32 RO 0 stepgen.2.rawcounts
10 u32 RW 0x0000C33B stepgen.2.steplen
10 u32 RW 0x0000C33B stepgen.2.stepspace
10 s32 RO 434 stepgen.capture-position.time
10 s32 RW 10318 stepgen.capture-position.tmax
10 s32 RO 630 stepgen.make-pulses.time
10 s32 RW 14840 stepgen.make-pulses.tmax
10 s32 RO 1092 stepgen.update-freq.time
10 s32 RW 2744 stepgen.update-freq.tmax
9 float RO 0 tc.0.acc
9 float RO 0 tc.0.pos
9 float RO 0 tc.0.vel
9 float RO 0 tc.1.acc
9 float RO 0 tc.1.pos
9 float RO 0 tc.1.vel
9 float RO 0 tc.2.acc
9 float RO 0 tc.2.pos
9 float RO 0 tc.2.vel
9 float RO 0 tc.3.acc
9 float RO 0 tc.3.pos
9 float RO 0 tc.3.vel
9 u32 RO 0x00000000 traj.active_tc
9 float RO 0 traj.pos_out
9 float RO 0 traj.vel_out
Parameter Aliases:
Alias Original Name
Exported Functions:
Owner CodeAddr Arg FP Users Name
00009 fc2298a5 00000000 YES 1 motion-command-handler
00009 fc22bf96 00000000 YES 1 motion-controller
00011 fc4eb000 fc1b8428 NO 1 parport.0.read
00011 fc4eb231 fc1b8428 NO 0 parport.0.reset
00011 fc4eb312 fc1b8428 NO 1 parport.0.write
00011 fc4eb0c4 fc1b8428 NO 0 parport.read-all
00011 fc4eb4a0 fc1b8428 NO 0 parport.write-all
00010 fc4df20f fc1b8160 YES 1 stepgen.capture-position
00010 fc4df000 fc1b8160 NO 1 stepgen.make-pulses
00010 fc4df315 fc1b8160 YES 1 stepgen.update-freq
Realtime Threads:
Period FP Name ( Time, Max-Time )
999580 YES servo-thread ( 11760, 43610 )
1 stepgen.capture-position
2 motion-command-handler
3 motion-controller
4 stepgen.update-freq
49979 NO base-thread ( 13146, 40082 )
1 parport.0.read
2 stepgen.make-pulses
3 parport.0.write
Re: MyGUI
Добавлено: 19 сен 2012, 23:10
Nick
Код: Выделить всё
7 bit OUT TRUE halui.mode.is-manual ==> manual
12 bit IN FALSE mygui.in
Т.е. halui подключился, а вот mygui.in - нет...
А если в консоле потом дописать:
halcmd net manual mygui.in
И ты halui.mode.is-manual в каком hal подключаешь?
Re: MyGUI
Добавлено: 19 сен 2012, 23:19
nkp
Nick писал(а):Т.е. halui подключился, а вот mygui.in - нет...
Да
Nick писал(а):И ты halui.mode.is-manual в каком hal подключаешь?
standard_pinout.hal
Nick писал(а):А если в консоле потом дописать:halcmd net manual mygui.in
так сработало:
а что бы это значило?????????
Re: MyGUI
Добавлено: 19 сен 2012, 23:25
Lexxa
есть вроде какая-то штука, чтоб дождаться загрузки gui а уж потом связи делать
Re: MyGUI
Добавлено: 19 сен 2012, 23:30
nkp
такое впечатление ,что POSTGUI файл вообще не отрабатывает
сейчас дописал в него абру-кадабру - все грузится без ошибок
а вот почему он не отрабатывает??
Re: MyGUI
Добавлено: 19 сен 2012, 23:36
Nick
Может он у тебя не правильно прописан или пути не прописанны... в консоли ничего не пишет?
A если написать POSTGUI = фылвоаждыва.hal будет ругаться ?
Re: MyGUI
Добавлено: 19 сен 2012, 23:43
nkp
nkp писал(а):такое впечатление ,что POSTGUI файл вообще не отрабатывает
Код: Выделить всё
# Single file that is executed after the GUI has started. Only supported by
# AXIS at this time (only AXIS creates a HAL component of its own)
POSTGUI_HALFILE = test_postgui.hal

Re: MyGUI
Добавлено: 19 сен 2012, 23:44
nkp
Я так понял - только Axis поддерживает POSTGUI_HALFILE ?
Re: MyGUI
Добавлено: 19 сен 2012, 23:48
nkp
Да - точно!!
в gscreen автор отдельно прописал:
Код: Выделить всё
postgui_halfile,inifile = Gscreen.postgui(app)
print "INFO : Gscreen- postgui filename:",postgui_halfile
if postgui_halfile:
res = os.spawnvp(os.P_WAIT, "halcmd", ["halcmd", "-i",inifile,"-f", postgui_halfile])
завтра разберусь подробней......