this works for me..i will send keystrokes from an arduino hid keyboard using three panel encoders to send increment or decement...
Code:
# search for "self.sliders.update({" in mill or lathe ui.py
# ------------------------------------------------
# Sliders
# ------------------------------------------------
self.sliders.update({
"spindle": ui_support.OverrideSlider(
adjustment=self.builder.get_object("spindle_override_adjustment"),
scale=self.builder.get_object("spindle_override_scale"),
label=self.builder.get_object("spindle_override_label"),
button_100=self.button_list['spindle_override_100'],
prefix="S",
value_source_cb = lambda: self.hal['console-rpm-override'] * 100.0,
lcnc_apply_function=lambda value: self.command.spindleoverride(value / 100.0)
)
})
self.sliders['spindle'].set_slider_value(100)
self.init_sliders()
#add this line
self.override = [100,100,100] #new list for override variables, set them to 100%
#search for "# Escape key for stop"
#add after the block below
# Escape key for stop
if kv == gtk.keysyms.Escape:
self.error_handler.log("ESC key - queueing stop button event")
self.enqueue_button_press_release(self.button_list['stop'])
self.tool_descript_entry.shutdown_view()
tooltipmgr.TTMgr().on_esc_key()
return True
# add incement and decrement via keys
if kv == gtk.keysyms.a:
self.override[0] = self.override[0] + 5
if self.override[0] > 200:
self.override[0] = 200
self.sliders['spindle'].set_slider_value(self.override[0])
return True
if kv == gtk.keysyms.b:
self.override[0] = self.override[0] - 5
if self.override[0] < 0:
self.override[0] = 0
self.sliders['spindle'].set_slider_value(self.override[0])
return True
if kv == gtk.keysyms.c:
self.override[1] = self.override[1] + 5
if self.override[1] > 200:
self.override[1] = 200
self.sliders['feedrate'].set_slider_value(self.override[1])
return True
if kv == gtk.keysyms.d:
self.override[1] = self.override[1] - 5
if self.override[1] < 0:
self.override[1] = 0
self.sliders['feedrate'].set_slider_value(self.override[1])
return True
if kv == gtk.keysyms.e:
self.override[2] = self.override[2] + 5
if self.override[2] > 100:
self.override[2] = 100
self.sliders['maxvel'].set_slider_value(self.override[2])
return True
if kv == gtk.keysyms.f:
self.override[2] = self.override[2] - 5
if self.override[2] < 0:
self.override[2] = 0
self.sliders['maxvel'].set_slider_value(self.override[2])
return True
#this works well as long as thenkeyboard is used, if the sliders are used then the variables are not updated,
#the still slider works but the next time the keybaord is used a large step may result as the variable is
#still set to the last value used by the keyboard
Hope this helps someone...
Ian