diff --git a/dstat_interface/dstat_comm.py b/dstat_interface/dstat_comm.py index 46e30a2d4d5f081d5b1a8220d78d910c072c4448..56e0baa7125b6dc490798c942a462ddf4de82f73 100644 --- a/dstat_interface/dstat_comm.py +++ b/dstat_interface/dstat_comm.py @@ -844,6 +844,17 @@ class OCPExp(Experiment): seconds, milliseconds, voltage = struct.unpack(' 3 + + + Connect (PMT mode) + True + True + True + + + + False + False + 4 + + gtk-disconnect @@ -1247,7 +1261,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin False False - 4 + 5 @@ -1262,7 +1276,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin False False - 5 + 6 @@ -1274,7 +1288,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin True True - 6 + 7 diff --git a/dstat_interface/main.py b/dstat_interface/main.py index 98823f9681b68eab3cb62ef27e9f6004bdc22908..a6e61185beb77ecd1b181a0331dc65b425a251f4 100755 --- a/dstat_interface/main.py +++ b/dstat_interface/main.py @@ -94,6 +94,7 @@ class Main(object): #fill serial self.serial_connect = self.builder.get_object('serial_connect') + self.serial_pmt_connect = self.builder.get_object('pmt_mode') self.serial_disconnect = self.builder.get_object('serial_disconnect') self.serial_disconnect.set_sensitive(False) self.serial_combobox = self.builder.get_object('serial_combobox') @@ -125,6 +126,7 @@ class Main(object): self.expnumber = 0 self.connected = False + self.pmt_mode = False self.menu_dropbot_connect = self.builder.get_object( 'menu_dropbot_connect') @@ -187,10 +189,11 @@ class Main(object): ) comm.read_settings() - + self.start_ocp() self.connected = True self.serial_connect.set_sensitive(False) + self.serial_pmt_connect.set_sensitive(False) self.serial_disconnect.set_sensitive(True) except AttributeError as err: @@ -217,21 +220,38 @@ class Main(object): _logger.error(err, 'WAR') pass + self.pmt_mode = False self.connected = False self.serial_connect.set_sensitive(True) + self.serial_pmt_connect.set_sensitive(True) self.serial_disconnect.set_sensitive(False) + self.adc_pot.short_toggle.set_sensitive(True) + + def on_pmt_mode_clicked(self, data=None): + """Connect in PMT mode""" + self.pmt_mode = True + self.adc_pot.short_toggle.set_active(True) + self.adc_pot.short_toggle.set_sensitive(False) + self.on_serial_connect_clicked() def start_ocp(self): """Start OCP measurements.""" + if self.version[0] >= 1 and self.version[1] >= 2: # Flush data pipe while comm.serial_instance.data_pipe_p.poll(): comm.serial_instance.data_pipe_p.recv() - _logger.error("Start OCP", "INFO") - comm.serial_instance.proc_pipe_p.send(comm.OCPExp()) - self.ocp_proc = (gobject.idle_add(self.ocp_running_data), - gobject.idle_add(self.ocp_running_proc) + if self.pmt_mode == True: + _logger.error("Start PMT idle mode", "INFO") + comm.serial_instance.proc_pipe_p.send(comm.PMTIdle()) + + else: + _logger.error("Start OCP", "INFO") + comm.serial_instance.proc_pipe_p.send(comm.OCPExp()) + + self.ocp_proc = (gobject.timeout_add(300, self.ocp_running_data), + gobject.timeout_add(250, self.ocp_running_proc) ) self.ocp_is_running = True @@ -241,8 +261,12 @@ class Main(object): def stop_ocp(self): """Stop OCP measurements.""" + if self.version[0] >= 1 and self.version[1] >= 2: - _logger.error("Stop OCP",'INFO') + if self.pmt_mode == True: + _logger.error("Stop PMT idle mode",'INFO') + else: + _logger.error("Stop OCP",'INFO') comm.serial_instance.ctrl_pipe_p.send('a') for i in self.ocp_proc: @@ -276,7 +300,9 @@ class Main(object): "{0:.3f}".format(incoming), " V"]) self.ocp_disp.set_text(data) - + + if comm.serial_instance.data_pipe_p.poll(): + self.ocp_running_data() return True return True