def _write_time_setting_to_device(self, setting): name, value = setting['name'], setting['value'] low, high = self._get_range_from(name) # time settings are in 5 ns increments setting_value = map_setting(value, low, high, low / 5e-3, high / 5e-3) msg = SetControlParameter(name, setting_value, nbytes=2) self._device().send_message(msg)
def set_pmt2_voltage(self, voltage): """Set high voltage for PMT 2. :param voltage: integer. Values are clipped to a 300 - 1500 V range. """ voltage_byte = map_setting(voltage, 300, 1500, 0x00, 0xff) self._write_setting('HV_2', voltage_byte)
def set_pmt2_threshold(self, threshold): """Set threshold for PMT 2. Events with a signal strength below the specified threshold will be ignored as noise. :param threshold: integer. Values are clipped to a 0 - 1200 mV range. """ threshold_byte = map_setting(threshold, 0, 1200, 0x00, 0xff) self._write_setting('THR_2', threshold_byte)
def _write_byte_setting_to_device(self, setting): name, value = setting['name'], setting['value'] low, high = self._get_range_from(name) setting_value = map_setting(value, low, high, 0x00, 0xff) msg = SetControlParameter(name, setting_value) self._device().send_message(msg)
def test_map_setting_returns_int_setting(self): setting = util.map_setting(2, 1, 10, 0x0, 0xff) self.assertEqual(setting, 0x1c)
def test_map_setting_calls_clipped_map(self, mock_map): mock_map.return_value = [1.4, 1.5] setting = util.map_setting(sentinel.value, 1, 10, 10, 100) mock_map.assert_called_once_with(sentinel.value, 1, 10, 10, 100)