Beispiel #1
0
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
Beispiel #2
0
    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(