connect to scale
12 Nov 2015 20:22 #65185
by markder13
connect to scale was created by markder13
for a new project with vision I'm working with openCV an linuxcnc. I'm able to reconise the markers and control based upon the location of the markers with the pyton linuxcnc command
However I would like to control the setting of opencv by gladevcp. How do I read the values of my scales in python file. See attached screen shot of gladevcd. the pin that are in use. I do not understand the what needs to be change in the exampel file
Any guidance would be helpful to get the readings for use in python.
Mark
c.mode(linuxcnc.MODE_MDI)
c.wait_complete() # wait until mode switch executed
c.mdi('G0 X%d Y%d Z.5' % (x_g/10, y_g/10))
However I would like to control the setting of opencv by gladevcp. How do I read the values of my scales in python file. See attached screen shot of gladevcd. the pin that are in use. I do not understand the what needs to be change in the exampel file
def on_button_press(self,widget,data=None):
'''
a callback method
parameters are:
the generating object instance, likte a GtkButton instance
user data passed if any - this is currently unused but
the convention should be retained just in case
'''
print "on_button_press called"
self.nhits += 1
self.builder.get_object('hits').set_label("Hits: %d" % (self.nhits))
Any guidance would be helpful to get the readings for use in python.
Mark
Please Log in or Create an account to join the conversation.
13 Nov 2015 01:34 #65193
by cmorley
Replied by cmorley on topic connect to scale
Did you assign a signal callback in glade to call on_button_press()?
also a scale widget needs an adjustment widget assigned to it (with appropriate settings).
Does your scale have an adjustment?
Chris M
also a scale widget needs an adjustment widget assigned to it (with appropriate settings).
Does your scale have an adjustment?
Chris M
Please Log in or Create an account to join the conversation.
13 Nov 2015 05:55 #65196
by markder13
Replied by markder13 on topic connect to scale
Hi Chris,
The scale has adjustment attached. The change max value can be seen in the HAL configuration watch section. The code for this adjustment:
I think the problem is with the signal callback. I tried to modify the hitcounter.py example to get reading. But this was not successful. the added scale has the following name:
An modified hitcounter.py reflecting this callback function would be highly appreciated.
The scale has adjustment attached. The change max value can be seen in the HAL configuration watch section. The code for this adjustment:
<object class="GtkAdjustment" id="adjustment3">
<property name="upper">179</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
I think the problem is with the signal callback. I tried to modify the hitcounter.py example to get reading. But this was not successful. the added scale has the following name:
<object class="HAL_HScale" id="HighH_b">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">adjustment3</property>
<property name="round_digits">1</property>
An modified hitcounter.py reflecting this callback function would be highly appreciated.
Please Log in or Create an account to join the conversation.
13 Nov 2015 16:13 - 13 Nov 2015 16:15 #65206
by newbynobi
Replied by newbynobi on topic connect to scale
Hallo Mark, (correct Name?)
with glade make a callback the adjustment of your slider to its changed value signal
and in your code get the value like this:
Maybe you have to convert the value to be used within opencv.
Does this answer your question?
May I email you if I have questions to opencv, as i am just in a middle of a project for shooting target evaluation.
Norbert
with glade make a callback the adjustment of your slider to its changed value signal
and in your code get the value like this:
def on_adj_High_b_value_changed(self, widget, data = None):
value = widget.get_value()
Maybe you have to convert the value to be used within opencv.
Does this answer your question?
May I email you if I have questions to opencv, as i am just in a middle of a project for shooting target evaluation.
Norbert
Last edit: 13 Nov 2015 16:15 by newbynobi.
Please Log in or Create an account to join the conversation.
13 Nov 2015 19:39 #65209
by markder13
Replied by markder13 on topic connect to scale
Dear Norbert,
Thanks for your feedback. I think I can not connect the callback in glade. Which property do I need to select. (see screen dump).
I tried several options but I did not get it working. (I use the HAL_Hscale and not the HALIO_Hscale)
I have add the UI and PY file
On openCV if you have a question please let me know, if can help
Thanks.
Mark
Thanks for your feedback. I think I can not connect the callback in glade. Which property do I need to select. (see screen dump).
I tried several options but I did not get it working. (I use the HAL_Hscale and not the HALIO_Hscale)
I have add the UI and PY file
On openCV if you have a question please let me know, if can help
Thanks.
Mark
Please Log in or Create an account to join the conversation.
14 Nov 2015 08:01 #65229
by cmorley
Replied by cmorley on topic connect to scale
value_changed is the one to use
Please Log in or Create an account to join the conversation.
15 Nov 2015 08:55 #65271
by markder13
Replied by markder13 on topic connect to scale
It Works.
the correct code for pyton is:
Note that the _adj is not there.
My lesson learned: (and hopefully also for other newbies') the text in glade under Signals -> GtkRange -> value change in Handler box is: on_<name of widget>_value_changed is to be repeated in the python file.
See screen shoot.
Mark
the correct code for pyton is:
def on_HighHb_value_changed(self, widget, data = None):
value = widget.get_value()
Note that the _adj is not there.
My lesson learned: (and hopefully also for other newbies') the text in glade under Signals -> GtkRange -> value change in Handler box is: on_<name of widget>_value_changed is to be repeated in the python file.
See screen shoot.
Mark
Please Log in or Create an account to join the conversation.
15 Nov 2015 11:26 - 15 Nov 2015 11:28 #65276
by newbynobi
Replied by newbynobi on topic connect to scale
Hallo Mark,
glad you got it working, but your comment, the adjust is not there is not correct.
A Scale is not able to work without an adjustment!
In your ui file, you have the scale HighH_b controlling the adjustment3.
My recommendation is to rename that one to adj_HighH_b and connect your handler to the signal of the adjustment!
You may ask why, as the connection you made does work. This is only my personal experience from the work with gmoccapy. I had some strange behaviors connecting to the scale instead to the adjustments. After changing the signals handler connection from the scale to the adjustment, everythink worked as expected.
Another recommendation is to rename all widgets to "speeking" names, as in your code adjustment1, adjustment2, etc. will result in difficulties in reading and understanding it. But remember window1 must remain window1!
I attached a simple example to show what I mean.
Check the code and you will see, that all widgets and functions do have clear names, to be recognized better in code.
Norbert
glad you got it working, but your comment, the adjust is not there is not correct.
A Scale is not able to work without an adjustment!
In your ui file, you have the scale HighH_b controlling the adjustment3.
My recommendation is to rename that one to adj_HighH_b and connect your handler to the signal of the adjustment!
You may ask why, as the connection you made does work. This is only my personal experience from the work with gmoccapy. I had some strange behaviors connecting to the scale instead to the adjustments. After changing the signals handler connection from the scale to the adjustment, everythink worked as expected.
Another recommendation is to rename all widgets to "speeking" names, as in your code adjustment1, adjustment2, etc. will result in difficulties in reading and understanding it. But remember window1 must remain window1!
I attached a simple example to show what I mean.
Check the code and you will see, that all widgets and functions do have clear names, to be recognized better in code.
Norbert
Last edit: 15 Nov 2015 11:28 by newbynobi.
The following user(s) said Thank You: markder13
Please Log in or Create an account to join the conversation.
16 Nov 2015 07:52 #65313
by markder13
Replied by markder13 on topic connect to scale
Norbert,
thx. It worksfine.
Now all makes prefect sense.
Mark
thx. It worksfine.
Now all makes prefect sense.
Mark
Please Log in or Create an account to join the conversation.
Moderators: HansU
Time to create page: 0.370 seconds