def test_scaler_functionality(self): sca = scaler.EpicsScaler(scalers[0], name='scaler', read_attrs=['channels']) # hack the fake PV to know the enums if not REAL_SCALER: sca.count_mode._read_pv.enum_strs = ['OneShot', 'AutoCount'] sca.wait_for_connection() sca.preset_time.put(5.2) logger.info('Counting in One-Shot mode for %f s...', sca.preset_time.get()) sca.count.put(1) logger.info('Sleeping...') time.sleep(3) logger.info('Done sleeping. Stopping counter...') sca.stop() logger.info('Set mode to AutoCount') sca.count_mode.put(ScalerMode.AUTO_COUNT) sca.count.put(1) logger.info('Begin auto-counting (aka "background counting")...') time.sleep(2) logger.info('Set mode to OneShot') sca.count_mode.put(ScalerMode.ONE_SHOT) time.sleep(1) logger.info('Stopping (aborting) auto-counting.') sca.stop() logger.info('read() all channels in one-shot mode...') vals = sca.read() logger.info(vals) self.assertIn('scaler_channels_chan1', vals) sca.report sca.read() self.assertEquals(copy(sca).prefix, sca.prefix) self.assertEquals(copy(sca).read_attrs, sca.read_attrs) self.assertEquals( copy(sca).configuration_attrs, sca.configuration_attrs) repr(sca) str(sca) sca.stage() old, new = sca.configure({}) sca.unstage() assert_OD_equal_ignore_ts(old, new) sca.stage() old_preset_time = sca.preset_time.get() old, new = sca.configure({'preset_time': 7}) sca.unstage() assert old.pop('scaler_preset_time')['value'] == old_preset_time assert new.pop('scaler_preset_time')['value'] == 7 assert_OD_equal_ignore_ts(old, new)
def test_signal_separate(): sca = scaler.EpicsScaler(scalers[0], name='scaler', read_attrs=['channels.chan1']) sca.wait_for_connection() data = sca.read() assert 'scaler_channels_chan1' in data assert 'scaler_channels_chan2' not in data
def test_signal_separate(self): sca = scaler.EpicsScaler(scalers[0], name='scaler', read_attrs=['channels.chan1']) sca.wait_for_connection() data = sca.read() self.assertIn('scaler_channels_chan1', data) self.assertNotIn('scaler_channels_chan2', data)
import config from ophyd import scaler from ophyd.utils import enum ScalerMode = enum(ONE_SHOT=0, AUTO_COUNT=1) loggers = ( 'ophyd.signal', 'ophyd.scaler', ) config.setup_loggers(loggers) logger = config.logger sca = scaler.EpicsScaler(config.scalers[0]) sca.preset_time.put(5.2, wait=True) logger.info('Counting in One-Shot mode for %f s...', sca.preset_time.get()) sca.trigger() logger.info('Sleeping...') time.sleep(3) logger.info('Done sleeping. Stopping counter...') sca.count.put(0) logger.info('Set mode to AutoCount') sca.count_mode.put(ScalerMode.AUTO_COUNT, wait=True) sca.trigger() logger.info('Begin auto-counting (aka "background counting")...') time.sleep(2)
def test_scaler_functionality(): sca = scaler.EpicsScaler(scalers[0], name='scaler', read_attrs=['channels']) # hack the fake PV to know the enums sca.wait_for_connection() if not REAL_SCALER: sca.count_mode._read_pv.enum_strs = ['OneShot', 'AutoCount'] sca.count_mode.put('OneShot') # pin the fake PVs by setting them attr_map = {getattr(sca, n).name: n for n in sca.configuration_attrs} cnf = { attr_map[k]: v['value'] for k, v in sca.read_configuration().items() } sca.configure(cnf) sca.preset_time.put(5.2) logger.info('Counting in One-Shot mode for %f s...', sca.preset_time.get()) sca.count.put(1) logger.info('Sleeping...') time.sleep(3) logger.info('Done sleeping. Stopping counter...') sca.stop() logger.info('Set mode to AutoCount') sca.count_mode.put(ScalerMode.AUTO_COUNT) sca.count.put(1) logger.info('Begin auto-counting (aka "background counting")...') time.sleep(2) logger.info('Set mode to OneShot') sca.count_mode.put(ScalerMode.ONE_SHOT) time.sleep(1) logger.info('Stopping (aborting) auto-counting.') sca.stop() logger.info('read() all channels in one-shot mode...') vals = sca.read() logger.info(vals) assert 'scaler_channels_chan1' in vals sca.report sca.read() assert copy(sca).prefix == sca.prefix assert copy(sca).read_attrs == sca.read_attrs assert copy(sca).configuration_attrs == sca.configuration_attrs repr(sca) str(sca) sca.stage() old, new = sca.configure({}) sca.unstage() assert_OD_equal_ignore_ts(old, new) sca.stage() old_preset_time = sca.preset_time.get() old, new = sca.configure({'preset_time': 7}) sca.unstage() assert old.pop('scaler_preset_time')['value'] == old_preset_time assert new.pop('scaler_preset_time')['value'] == 7 assert_OD_equal_ignore_ts(old, new)
def test_temp_scaler(): # TODO fix scaler.EpicsScaler(scalers[0], name='test')
def test_temp_scaler(self): # TODO fix scaler.EpicsScaler(scalers[0])