Skip to content
Snippets Groups Projects
Commit bd62d48a authored by Michael DM Dryden's avatar Michael DM Dryden
Browse files

Merge branch 'develop' into 'master'

PMT/CPU fixes

* Fixes #14 - adds PMT idle mode
* Reduces OCP polling frequency

See merge request !4
parents 3d588e0d bcdff14c
Branches
Tags
No related merge requests found
......@@ -844,6 +844,17 @@ class OCPExp(Experiment):
seconds, milliseconds, voltage = struct.unpack('<HHl', data)
return (voltage/5.592405e6)
class PMTIdle(Experiment):
"""Open circuit potential measumement in statusbar."""
def __init__(self):
self.databytes = 8
self.commands = ["EA", "EM"]
self.commands[0] += "2 " # input buffer
self.commands[0] += "3 " # 2.5 Hz sample rate
self.commands[0] += "1 " # 2x PGA
def measure_offset(time):
gain_trim_table = [None, 'r100_trim', 'r3k_trim', 'r30k_trim', 'r300k_trim',
'r3M_trim', 'r30M_trim', 'r100M_trim']
......
......@@ -1235,6 +1235,20 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkButton" id="pmt_mode">
<property name="label" translatable="yes">Connect (PMT mode)</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_pmt_mode_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkButton" id="serial_disconnect">
<property name="label">gtk-disconnect</property>
......@@ -1247,7 +1261,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">4</property>
<property name="position">5</property>
</packing>
</child>
<child>
......@@ -1262,7 +1276,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">5</property>
<property name="position">6</property>
</packing>
</child>
<child>
......@@ -1274,7 +1288,7 @@ Thanks to Christian Fobel for help with Dropbot Plugin</property>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">6</property>
<property name="position">7</property>
</packing>
</child>
</object>
......
......@@ -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
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment