def button(self, smart_wheel, tab, action): """Do the appropriate action for the current SmartWheel""" print("button: %s for SmartWheel[%s]" % (action, str(smart_wheel))) try: if action == 'reset': sent = smart_wheel.reset() self.message(smart_wheel, '-> [%s]' % sent.strip()) # input_value = self.gui_elements[smart_wheel.name]['input_field'].get() # print("input field value = %s" % input_value) # self.gui_elements[smart_wheel.name]['output_field'].insert('end -1 chars', input_value + '\n') elif action == 'connect': if not smart_wheel.connection.is_connected(): try: smart_wheel.connect() self.message(smart_wheel, 'connected') except: logging.exception('could not connect') self.message( smart_wheel, 'ERROR connecting: %s' % smart_wheel.connection.last_error) else: self.message(smart_wheel, 'Already connected. Disconnect first') # self.gui_elements[smart_wheel.name]['connect_btn'].textvariable = tk.StringVar(self.root, self.TEXT_DISCONNECT) elif action == 'disconnect': if smart_wheel.connection.is_connected(): smart_wheel.disconnect() self.message(smart_wheel, 'disconnected') elif action == 'config': # some config dialog, then save to smart_wheel logger.info("config") # the config_gui will call set_config config_gui(tk.Toplevel(self.root), parent=self, smart_wheel=smart_wheel, connection_config=smart_wheel.connection.conf) elif action == 'wheel-gui': # some config dialog, then save to smart_wheel logger.info("wheel gui") # self.sub_window_open = True if smart_wheel.is_connected(): smart_wheel.wheel_gui = wheel_gui(tk.Toplevel(self.root), parent=self, smart_wheel=smart_wheel) else: self.message( smart_wheel, 'Connect me first before launching this screen') elif action == 'enable': # check the status, then enable or disable if not smart_wheel.enabled: sent = smart_wheel.enable() self.message(smart_wheel, '-> [%s]' % sent.strip()) else: self.message(smart_wheel, 'ignored, already enabled') elif action == 'disable': if smart_wheel.enabled: sent = smart_wheel.disable() self.message(smart_wheel, '-> [%s]' % sent.strip()) else: self.message(smart_wheel, 'ignored, already disabled') elif action == 'enable-disable': sent = None if 'selected' in self.gui_elements[ smart_wheel.name]['enable_checkbutton'].state(): if not smart_wheel.enabled: sent = smart_wheel.enable() else: self.message(smart_wheel, 'ignored: smart wheel already enabled') else: if smart_wheel.enabled: sent = smart_wheel.disable() else: self.message(smart_wheel, 'ignored: smart wheel already disabled') if sent: self.message(smart_wheel, '-> [%s]' % sent.strip()) except NotConnectedException as err: self.message(smart_wheel, 'Oops, there was an error: {}'.format(err)) smart_wheel.update_state() self.update_gui_elements(smart_wheel)
def button(self, smart_wheel, tab, action): """Do the appropriate action for the current SmartWheel""" print("button: %s for SmartWheel[%s]" % (action, str(smart_wheel))) try: if action == 'reset': sent = smart_wheel.reset() self.message(smart_wheel, '-> [%s]' % sent.strip()) # input_value = self.gui_elements[smart_wheel.name]['input_field'].get() # print("input field value = %s" % input_value) # self.gui_elements[smart_wheel.name]['output_field'].insert('end -1 chars', input_value + '\n') elif action == 'connect': if not smart_wheel.connection.is_connected(): try: smart_wheel.connect() self.message(smart_wheel, 'connected') except: logging.exception('could not connect') self.message(smart_wheel, 'ERROR connecting: %s' % smart_wheel.connection.last_error) else: self.message(smart_wheel, 'Already connected. Disconnect first') # self.gui_elements[smart_wheel.name]['connect_btn'].textvariable = tk.StringVar(self.root, self.TEXT_DISCONNECT) elif action == 'disconnect': if smart_wheel.connection.is_connected(): smart_wheel.disconnect() self.message(smart_wheel, 'disconnected') elif action == 'config': # some config dialog, then save to smart_wheel logger.info("config") # the config_gui will call set_config config_gui( tk.Toplevel(self.root), parent=self, smart_wheel=smart_wheel, connection_config=smart_wheel.connection.conf) elif action == 'wheel-gui': # some config dialog, then save to smart_wheel logger.info("wheel gui") # self.sub_window_open = True if smart_wheel.is_connected(): smart_wheel.wheel_gui = wheel_gui( tk.Toplevel(self.root), parent=self, smart_wheel=smart_wheel) else: self.message(smart_wheel, 'Connect me first before launching this screen') elif action == 'enable': # check the status, then enable or disable if not smart_wheel.enabled: sent = smart_wheel.enable() self.message(smart_wheel, '-> [%s]' % sent.strip()) else: self.message(smart_wheel, 'ignored, already enabled') elif action == 'disable': if smart_wheel.enabled: sent = smart_wheel.disable() self.message(smart_wheel, '-> [%s]' % sent.strip()) else: self.message(smart_wheel, 'ignored, already disabled') elif action == 'enable-disable': sent = None if 'selected' in self.gui_elements[smart_wheel.name]['enable_checkbutton'].state(): if not smart_wheel.enabled: sent = smart_wheel.enable() else: self.message(smart_wheel, 'ignored: smart wheel already enabled') else: if smart_wheel.enabled: sent = smart_wheel.disable() else: self.message(smart_wheel, 'ignored: smart wheel already disabled') if sent: self.message(smart_wheel, '-> [%s]' % sent.strip()) except NotConnectedException as err: self.message(smart_wheel, 'Oops, there was an error: {}'.format(err)) smart_wheel.update_state() self.update_gui_elements(smart_wheel)
def button(self, smart_wheel, tab, action): """ Handle button press Do the appropriate action for the current SmartWheel """ logger.info("button: %s for SmartWheel[%s]" % (action, str(smart_wheel))) try: if action == 'reset': sent = smart_wheel.reset() self.message(smart_wheel, '-> [%s]' % sent.strip()) elif action == 'connect': if not smart_wheel.connection.is_connected(): try: smart_wheel.connect() self.message(smart_wheel, 'connected') except: logging.exception('could not connect') self.message(smart_wheel, 'ERROR connecting: %s' % smart_wheel.connection.last_error) else: self.message(smart_wheel, 'Already connected. Disconnect first') elif action == 'disconnect': if smart_wheel.connection.is_connected(): smart_wheel.disconnect() self.message(smart_wheel, 'disconnected') elif action == 'config': # some config dialog, then save to smart_wheel logger.info("config") # the config_gui will call set_config config_gui( tk.Toplevel(self.root), parent=self, smart_wheel=smart_wheel, connection_config=smart_wheel.connection.conf) elif action == 'wheel-gui': # some config dialog, then save to smart_wheel logger.info("wheel gui") # self.sub_window_open = True if smart_wheel.is_connected(): smart_wheel.wheel_gui = wheel_gui( tk.Toplevel(self.root), parent=self, smart_wheel=smart_wheel) else: self.message(smart_wheel, 'Connect me first before launching this screen') elif action == 'enable': # check the status, then enable or disable if not smart_wheel.enabled: sent = smart_wheel.enable() self.message(smart_wheel, '-> [%s]' % sent.strip()) else: self.message(smart_wheel, 'ignored, already enabled') elif action == 'disable': if smart_wheel.enabled: sent = smart_wheel.disable() self.message(smart_wheel, '-> [%s]' % sent.strip()) else: self.message(smart_wheel, 'ignored, already disabled') elif action == 'speed-0': self.set_speed(smart_wheel, 0) self.message(smart_wheel, 'speed-0') self.set_scale(smart_wheel.get_elem(self.GUI_SPEED_SCALE), 0) elif action == 'steer-0': self.set_steer(smart_wheel, 0) self.message(smart_wheel, 'steer-0') self.set_scale(smart_wheel.get_elem(self.GUI_STEER_SCALE), 0) except NotConnectedException as err: self.message(smart_wheel, 'Oops, there was an error: {}'.format(err))