objects not loaded or recognized
31 Aug 2014 03:00 #50536
by mariusl
Regards
Marius
www.bluearccnc.com
Replied by mariusl on topic objects not loaded or recognized
Norbert
I am using the exact same sim example that you posted. In my case the var file is written and the value is read from the file on loading of Gmoccapy. I print the value from the python script and it is correct but it does not pass through to the hal.
I will post some screen shots next
I am using the exact same sim example that you posted. In my case the var file is written and the value is read from the file on loading of Gmoccapy. I print the value from the python script and it is correct but it does not pass through to the hal.
I will post some screen shots next
Regards
Marius
www.bluearccnc.com
Please Log in or Create an account to join the conversation.
31 Aug 2014 03:11 #50538
by mariusl
Regards
Marius
www.bluearccnc.com
Replied by mariusl on topic objects not loaded or recognized
Some screen shots and code
This has me really screwed up. I have been fighting for the whole day now to get this to work. Make me feel really stupid.
The terminal output
the var file contents
Your python code with print extra
Halshow after restart
This has me really screwed up. I have been fighting for the whole day now to get this to work. Make me feel really stupid.
The terminal output
adding import dir .
module 'gearselect' imported OK
module 'gearselect' : 'get_handlers' function found
Hal pin stored value was 4
Hal pin has been set to 4
Registering handlers in module gearselect object <gearselect.GearSelect instance at 0x8fbe04c>
Register callback 'on_frame_main_destroy' in <gearselect.GearSelect instance at 0x8fbe04c>
WARNING:Config:Can't load Default loading default layout instead
the var file contents
# generated by gladevcp.persistence.create_default_ini() on Fri Aug 29 19:32:42 2014
[ini]
version = 1
signature = 61ca954c8852767aef44ef8e126e0926ba477a3b
[vars]
SelectedGear = 4
# last update by gladevcp.persistence.save_state() on Sat Aug 30 22:06:45 2014
Your python code with print extra
#!/usr/bin/env python
# -*- coding:UTF-8 -*-
"""
This file will control some options of the custom panel
and should be something like a skeleton to begin with
Please include a smal description of the file, so it is much
easier for other developers to follow yozr style. there ar many
lasy people out there, not taking care of that, please do not become
one of them!
Copyright 2013 Norbert Schechner
nieson@web.de
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
# Please read also the above text! And if you begin to code some new stuff
# please include comments, so others can follow you!
# Name varialbles so others do now there meaning, see the following example:
# v=f-s+(w.get_value)
# value = first_value - second_value + (widget.get_value)
# it cost no performanca, but is much easier to read!
# for coding style I recfommend to follow PEP8
# see : http://legacy.python.org/dev/peps/pep-0008/
####################################################################
# Watch the terminal output, as the error reports will apear there #
####################################################################
# We will need to import some basic stuff
import hal # needed to make our own hal pins
import hal_glib # needed to make our own hal pins and react with handlers
from gladevcp.persistence import IniFile
class GearSelect:
# __init__ will set the defaults and get all relevant information, before showing the panel
def __init__(self, halcomp, builder, useropts):
self.builder = builder
self.halcomp = halcomp
self.defaults = { IniFile.vars : { "SelectedGear" : 0 ,
},
}
self.ini_filename = __name__ + ".var"
self.ini = IniFile(self.ini_filename, self.defaults, self.builder)
self.ini.restore_state(self)
self.halcomp.newpin("selected-gear", hal.HAL_S32, hal.HAL_OUT)
self.halcomp["selected-gear"] = self.SelectedGear
print("Hal pin stored value was %s" % self.SelectedGear)
print("Hal pin has been set to %s" % self.halcomp["selected-gear"])
self.btn_1 = self.builder.get_object("btn-1")
self.btn_1.connect("clicked", self._btn_1_clicked)
self.btn_2 = self.builder.get_object("btn-2")
self.btn_2.connect("clicked", self._btn_2_clicked)
self.btn_3 = self.builder.get_object("btn-3")
self.btn_3.connect("clicked", self._btn_3_clicked)
self.btn_4 = self.builder.get_object("btn-4")
self.btn_4.connect("clicked", self._btn_4_clicked)
self.btn_5 = self.builder.get_object("btn-5")
self.btn_5.connect("clicked", self._btn_5_clicked)
self.btn_6 = self.builder.get_object("btn-6")
self.btn_6.connect("clicked", self._btn_6_clicked)
self.frame = self.builder.get_object("frame_main")
self.frame.connect("destroy", self.on_frame_main_destroy)
def _btn_1_clicked(self, Widget):
print("Button %s has been clicked" % Widget.get_label())
self.halcomp["selected-gear"] = 1
self.SelectedGear = 1
print("Hal pin has been set to %s" % self.halcomp["selected-gear"])
def _btn_2_clicked(self, Widget):
print("Button %s has been clicked" % Widget.get_label())
self.halcomp["selected-gear"] = 2
self.SelectedGear = 2
print("Hal pin has been set to %s" % self.halcomp["selected-gear"])
def _btn_3_clicked(self, Widget):
print("Button %s has been clicked" % Widget.get_label())
self.halcomp["selected-gear"] = 3
self.SelectedGear = 3
print("Hal pin has been set to %s" % self.halcomp["selected-gear"])
def _btn_4_clicked(self, Widget):
print("Button %s has been clicked" % Widget.get_label())
self.halcomp["selected-gear"] = 4
self.SelectedGear = 4
print("Hal pin has been set to %s" % self.halcomp["selected-gear"])
def _btn_5_clicked(self, Widget):
print("Button %s has been clicked" % Widget.get_label())
self.halcomp["selected-gear"] = 5
self.SelectedGear = 5
print("Hal pin has been set to %s" % self.halcomp["selected-gear"])
def _btn_6_clicked(self, Widget):
print("Button %s has been clicked" % Widget.get_label())
self.halcomp["selected-gear"] = 6
self.SelectedGear = 6
print("Hal pin has been set to %s" % self.halcomp["selected-gear"])
def on_frame_main_destroy(self, Widget, data = None):
self.ini.save_state(self)
print("Done")
# This is the main procedure in this case, please take care that the name within the return value
# is exactly the same as the Class Name, (case senstitive)
def get_handlers(halcomp, builder, useropts):
return[GearSelect(halcomp, builder, useropts)]
Halshow after restart
Regards
Marius
www.bluearccnc.com
Please Log in or Create an account to join the conversation.
31 Aug 2014 17:23 #50548
by newbynobi
As default value is "0", it will load that value.
This message is normal if the file gearselect.var is not in the correct place or does not exist. Taht only happen on the first run. If you close the GUI the file should be written.
Delete the geraselect.var file,
start gmoccapy_marius
push button 1300
close gmoccapy
Take a look in gearselect.var, it should now have SelectedGear = 5
If you now restart gmoccapy_marius, the hal pin should have value 5
Check for the rights in the directory, may be the file is owned by "norbert"?
Please report, as you challenge me
Norbert
Replied by newbynobi on topic objects not loaded or recognized
WARNING:Config:Can't load Default loading default layout instead
As default value is "0", it will load that value.
This message is normal if the file gearselect.var is not in the correct place or does not exist. Taht only happen on the first run. If you close the GUI the file should be written.
Delete the geraselect.var file,
start gmoccapy_marius
push button 1300
close gmoccapy
Take a look in gearselect.var, it should now have SelectedGear = 5
If you now restart gmoccapy_marius, the hal pin should have value 5
Check for the rights in the directory, may be the file is owned by "norbert"?
Please report, as you challenge me
Norbert
Please Log in or Create an account to join the conversation.
31 Aug 2014 23:49 - 31 Aug 2014 23:53 #50552
by mariusl
Regards
Marius
www.bluearccnc.com
Replied by mariusl on topic objects not loaded or recognized
Hi Norbert
All that you ask is working. The file is changed and saved and then read again all with correct values. The problem is that although I write the hal pin with self.halcomp[pin] it does not appear in the hal layer outside of the python script at loading time. Once you have pushed a button the handler procedure will write the halpin correctly
So it would seem that the variables are all handled correctly in the python script but the hal connection is just not there for the gearselected hal pin at startup.
It does this with your example and with my code.
All that you ask is working. The file is changed and saved and then read again all with correct values. The problem is that although I write the hal pin with self.halcomp[pin] it does not appear in the hal layer outside of the python script at loading time. Once you have pushed a button the handler procedure will write the halpin correctly
So it would seem that the variables are all handled correctly in the python script but the hal connection is just not there for the gearselected hal pin at startup.
It does this with your example and with my code.
Regards
Marius
www.bluearccnc.com
Last edit: 31 Aug 2014 23:53 by mariusl.
Please Log in or Create an account to join the conversation.
01 Sep 2014 01:46 #50555
by newbynobi
Replied by newbynobi on topic objects not loaded or recognized
I watched the values with halshow and in there the values are correct, so I can not see, where the problem is, could a be a comp matter of your comp ?
Norbert
Norbert
Please Log in or Create an account to join the conversation.
01 Sep 2014 01:59 #50556
by mariusl
Regards
Marius
www.bluearccnc.com
Replied by mariusl on topic objects not loaded or recognized
When I look at the pin with halshow directly after startup it is 0 instead of the reported value. This is what I am crying about. My comp is not even connected at this time. I am just using halshow. If you look at my picture in previous post you will see the halshow showing 0 when the python script reports the pin to be some other number.
This is just for directly after startup. The value is not passed to the pin. After any handler is called to change the pin, it actually does change. The problem is at startup only.
The file is correct but the pin is not set when the constructor was called and then assigned a value.
This is just for directly after startup. The value is not passed to the pin. After any handler is called to change the pin, it actually does change. The problem is at startup only.
The file is correct but the pin is not set when the constructor was called and then assigned a value.
Regards
Marius
www.bluearccnc.com
Please Log in or Create an account to join the conversation.
01 Sep 2014 18:49 #50565
by mariusl
Regards
Marius
www.bluearccnc.com
Replied by mariusl on topic objects not loaded or recognized
Now matter how I tried, I could not get the pin to be initiated at startrup so I did a work around.
I made another hal pin that is connected to the machine on signal. So now when the machine is switched the handler will be called and effect the pin.
connected like this
I made another hal pin that is connected to the machine on signal. So now when the machine is switched the handler will be called and effect the pin.
sg = hal_glib.GPin(self.halcomp.newpin("selected-gear",hal.HAL_S32, hal.HAL_IO))
self.halcomp["selected-gear"] = self.SelectedGear
print("Hal pin stored value was %s" % self.SelectedGear)
print("Hal pin has been set to %s" % self.halcomp["selected-gear"])
kickstart = hal_glib.GPin(self.halcomp.newpin("kick-start", hal.HAL_BIT, hal.HAL_IN))
kickstart.connect("value_changed", self._do_kickstart)
def _do_kickstart(self, kickstart):
self.halcomp["selected-gear"] = self.SelectedGear
print("Set from kickstart - Hal pin stored value was %s" % self.SelectedGear)
print("Set from kickstart - Hal pin has been set to %s" % self.halcomp["selected-gear"])
connected like this
net motion.machine-is-on gear_select.kick-start
Regards
Marius
www.bluearccnc.com
Please Log in or Create an account to join the conversation.
02 Sep 2014 00:28 - 02 Sep 2014 00:56 #50592
by newbynobi
Replied by newbynobi on topic objects not loaded or recognized
Hallo Marius,
I do not have that behavior.
Check this Video please and look at your computer.
Norbert
I do not have that behavior.
Check this Video please and look at your computer.
Norbert
Last edit: 02 Sep 2014 00:56 by newbynobi.
Please Log in or Create an account to join the conversation.
02 Sep 2014 02:32 #50598
by mariusl
Regards
Marius
www.bluearccnc.com
Replied by mariusl on topic objects not loaded or recognized
Hi Norbert
Thanks for your effort on this problem. I have all of that the same as in your video except that my halpin does not load at startup. It remains at 0.
The fix that I posted above work well so I am not wasting more time on trying to get this sorted out. I dont know why it works for you but not on my computer. It is the same code.
I am busy finishing the new component and then I will test live on the machine tomorrow. Once it works we can put it on the wiki for lathes with belts. This is important for using CSS on the lathe.
Thanks for your effort on this problem. I have all of that the same as in your video except that my halpin does not load at startup. It remains at 0.
The fix that I posted above work well so I am not wasting more time on trying to get this sorted out. I dont know why it works for you but not on my computer. It is the same code.
I am busy finishing the new component and then I will test live on the machine tomorrow. Once it works we can put it on the wiki for lathes with belts. This is important for using CSS on the lathe.
Regards
Marius
www.bluearccnc.com
Please Log in or Create an account to join the conversation.
06 Sep 2014 15:33 #50838
by mariusl
Regards
Marius
www.bluearccnc.com
Replied by mariusl on topic objects not loaded or recognized
Hi Norbert
I moved my lathe config to 2.6 and now it does not effect the screen widgets again at startup. Not even with my kick start trick. Please have alook at some of the strange errors that I get when I run linuxcnc.
Things like connection error???
I moved my lathe config to 2.6 and now it does not effect the screen widgets again at startup. Not even with my kick start trick. Please have alook at some of the strange errors that I get when I run linuxcnc.
Things like connection error???
LINUXCNC - 2.6.2
Machine configuration directory is '/home/shop/linuxcnc/configs/lathe'
Machine configuration file is 'lathe.ini'
Starting LinuxCNC...
Connection error: Connection refused
/usr/bin/gmoccapy:147: GtkWarning: gtk_widget_grab_default: assertion `gtk_widget_get_can_default (widget)' failed
self.builder.add_from_file(XMLNAME)
**** GMOCCAPY GETINIINFO ****
Preference file path: /home/shop/linuxcnc/configs/lathe/lathe.pref
/usr/bin/gmoccapy:220: GtkWarning: Invalid icon size 48
self.widgets.window1.show()
**** GMOCCAPY INFO ****
**** gmoccapy screen 2 found ****
toolfile: /home/shop/linuxcnc/configs/lathe/tool.tbl
**** GMOCCAPY INFO ****
**** audio available! ****
Waiting for component 'gladevcp' to become ready......WARNING:Config:Can't load Default loading default layout instead
........adding import dir .
......module 'gearselect' imported OK
module 'gearselect' : 'get_handlers' function found
Hal pin stored value was 3
Hal pin has been set to 3
Registering handlers in module gearselect object <gearselect.GearSelect instance at 0xa73c1ac>
Register callback 'on_frame_main_destroy' in <gearselect.GearSelect instance at 0xa73c1ac>
.....Xlib.protocol.request.QueryExtension
.Xlib.protocol.request.QueryExtension
../usr/bin/gladevcp:185: GtkWarning: GtkSpinButton: setting an adjustment with non-zero page size is deprecated
builder.add_from_file(xmlname)
./usr/bin/gladevcp:185: GtkWarning: gtk_radio_button_set_group: assertion `!g_slist_find (group, radio_button)' failed
builder.add_from_file(xmlname)
pyngcgui:INTFC:linuxcnc running=1
pyngcgui:INTFC:ini_file=</home/shop/linuxcnc/configs/lathe/lathe.ini>
..Xlib.protocol.request.QueryExtension
.activating GTK bug workaround for gtkrc files
Set from kickstart - Hal pin stored value was 3
Set from kickstart - Hal pin has been set to 3
...........Xlib.protocol.request.QueryExtension
..
**** GMOCCAPY INFO ****
**** no valid probe config in INI File ****
**** disabled tool measurement ****
******************************* Gcode.lang found
(gmoccapy:1996): GtkSourceView-CRITICAL **: gtk_source_language_manager_set_search_path: assertion `lm->priv->ids == NULL' failed
**** GMOCCAPY INFO : inifile = /home/shop/linuxcnc/configs/lathe/lathe.ini ****:
**** GMOCCAPY INFO : postgui halfile = postgui_call_list.hal ****:
/usr/lib/python2.6/dist-packages/Onboard/KeyGtk.py:43: PangoWarning: pango_font_description_set_size: assertion `size >= 0' failed
font_description.set_size(self.font_size)
Regards
Marius
www.bluearccnc.com
Please Log in or Create an account to join the conversation.
Moderators: HansU
Time to create page: 0.164 seconds