def connect( resource_name: str, timeout: typing.Optional[int] ) -> typing.Tuple[visa.ResourceManager, visa.Resource]: visa.log_to_screen() rm = visa.ResourceManager() resources = rm.list_resources() if resource_name not in resources: raise Exception( f"Resource {resource_name} not available in {resources}") instr = rm.open_resource(resource_name) instr.timeout = 5000 print(f"Connected to {instr}, timeout {instr.timeout}") return rm, instr
def _log_to_screen_helper(self, level): class Faker: def __init__(self): self.args = None def log_to_stream(self, *args): self.args = args faker = Faker() try: old = pyvisa.log_to_stream pyvisa.log_to_stream = faker.log_to_stream if level != logging.DEBUG: pyvisa.log_to_screen(level) else: pyvisa.log_to_screen() finally: pyvisa.log_to_stream = old self.assertTupleEqual(faker.args, (None, level))
import pyvisa as visa import pyvisascope import multitimer import time import yaml import logging visa.log_to_screen('INFO') logger = logging.getLogger('pyvisa') log2file = logging.FileHandler('experiment.log') logger.addHandler(log2file) def main(): # enter here the ID of your device. On windows, VISA you can easily find it in the VISA interface. Device = pyvisascope.TDS2000('USB::0x0699::0x0367::C057400::INSTR') Device.myScope.timeout = None # set a timer that records every minute for in total 4 times timer = multitimer.MultiTimer(interval=60, function=measure, kwargs={'myDevice': Device}, count=3, runonstart=True) timer.start() def measure(myDevice): logger.info('Executing at {}'.format(time.ctime())) timestr = time.strftime('%Y%m%d-%H%M%S') waveform = myDevice.get_waveform(['CH1']) measurement = myDevice.get_measurement_series(