Thank you, but I have already changed the plasmac component and got the result I wanted. I added a few lines:
self.extJogXplusPin = self.h.newpin('ext_jog_x_plus', hal.HAL_BIT, hal.HAL_IN)
self.extJogXminusPin = self.h.newpin('ext_jog_x_minus', hal.HAL_BIT, hal.HAL_IN)
self.extJogYplusPin = self.h.newpin('ext_jog_y_plus', hal.HAL_BIT, hal.HAL_IN)
self.extJogYminusPin = self.h.newpin('ext_jog_y_minus', hal.HAL_BIT, hal.HAL_IN)
self.extJogZplusPin = self.h.newpin('ext_jog_z_plus', hal.HAL_BIT, hal.HAL_IN)
self.extJogZminusPin = self.h.newpin('ext_jog_z_minus', hal.HAL_BIT, hal.HAL_IN)
self.extJogXplusPin.value_changed.connect(lambda v: self.gui_button_jog(1 if v else 0, 'x', 1))
self.extJogXminusPin.value_changed.connect(lambda v: self.gui_button_jog(1 if v else 0, 'x', -1))
self.extJogYplusPin.value_changed.connect(lambda v: self.gui_button_jog(1 if v else 0, 'y', 1))
self.extJogYminusPin.value_changed.connect(lambda v: self.gui_button_jog(1 if v else 0, 'y', -1))
self.extJogZplusPin.value_changed.connect(lambda v: self.gui_button_jog(1 if v else 0, 'z', 1))
self.extJogZminusPin.value_changed.connect(lambda v: self.gui_button_jog(1 if v else 0, 'z', -1))
It works great.