示例#1
0
 def __init__(self):
     self.window = tk.Tk()        
     self.window.title("ReachMaster")
     self.window.configure(bg="white")
     self.window.protocol("WM_DELETE_WINDOW", self.on_quit)        
     self.config = config.default_config()        
     config.save_tmp(self.config)
     self.data_dir = tk.StringVar()        
     self.data_dir.set(self.config['ReachMaster']['data_dir']) 
     self.config_file = tk.StringVar()
     self.config_file.set(self.config['ReachMaster']['config_file'])
     self.port_list = expint.get_ports()        
     self.exp_control_port = tk.StringVar()
     self.rob_control_port = tk.StringVar()
     if self.config['ReachMaster']['exp_control_port'] in self.port_list:
         self.exp_control_port.set(self.config['ReachMaster']['exp_control_port']) 
     else:
         self.exp_control_port.set(self.port_list[0])
     if self.config['ReachMaster']['rob_control_port'] in self.port_list:
         self.rob_control_port.set(self.config['ReachMaster']['rob_control_port']) 
     else:
         self.rob_control_port.set(self.port_list[0])        
     self.protocol_list = protocols.list_protocols()
     self.protocol = tk.StringVar()
     self.protocol.set(self.protocol_list[0])
     self.running = False  
     self.exp_connected = False
     self.rob_connected = False 
     self.protocol_running = False        
     self.child = None         
     self._configure_window()                   
示例#2
0
 def config_file_browse_callback(self):
     """Allows user to load a previously saved configuration file."""
     self.config_file.set(tkFileDialog.askopenfilename())
     self.config = config.load_config(open(self.config_file.get()))
     self.config['ReachMaster']['config_file'] = self.config_file.get()
     self.config['ReachMaster']['data_dir'] = self.data_dir.get()
     config.save_tmp(self.config)
示例#3
0
 def rob_connect_callback(self):
     """Connects to the robot microcontroller located at the user 
     selected port."""
     if not self.rob_connected:
         try:
             self.config = config.load_config(open('./temp/tmp_config.txt'))
             self.config['ReachMaster']['rob_control_port'] = self.rob_control_port.get()
             self.rob_controller = robint.start_interface(self.config)
             self.rob_connected = True
             config.save_tmp(self.config)
         except Exception as err:
             tkMessageBox.showinfo("Warning", err)
示例#4
0
 def run_protocol_callback(self):  
     """Initiates the user-selected experimental protocol."""
     if self.exp_connected and self.rob_connected:
         self.config = config.load_config(open('./temp/tmp_config.txt'))
         self.config['Protocol']['type'] = self.protocol.get()
         config.save_tmp(self.config)
         expint.stop_interface(self.exp_controller)
         self.exp_connected = False
         robint.stop_interface(self.rob_controller)
         self.rob_connected = False
         time.sleep(2)
         self.child = protocols.Protocols(self.window)
         self.protocol_running = True
     elif not self.exp_connected:
         tkMessageBox.showinfo("Warning", "Experiment controller not connected.")
     else:
         tkMessageBox.showinfo("Warning", "Robot controller not connected.")                
示例#5
0
 def test_loaded_saved_configs_equal(self):
     with self.subTest(test_fun = 'save_config'):
         fn = config.save_config(self.test_config)
         loaded_config = config.load_config(fn)
         os.remove(fn)
         self.assertEqual(loaded_config, self.test_config)
     with self.subTest(test_fun = 'save_tmp'):
         fn = config.save_tmp(self.test_config)            
         loaded_config = config.load_config(fn)
         os.remove(fn)
         self.assertEqual(loaded_config, self.test_config)
示例#6
0
 def data_dir_browse_callback(self):
     """Allows user to set the data output directory."""
     self.data_dir.set(tkFileDialog.askdirectory())
     self.config['ReachMaster']['data_dir'] = self.data_dir.get()
     config.save_tmp(self.config)