from abc import ABC, abstractmethod from typing import Callable class Lock_In_Amp(ABC): @abstractmethod def test_connection(self) -> None: """ Verify that the device is still properly connected. If not, raises ConnectionError """ pass # RUN COMMANDS ON THE DEVICE @abstractmethod def run(self, code, verbose=False): pass @abstractmethod def reset(self, verbose=False): pass @abstractmethod def read_value(self) -> tuple[float, float]: """ Read a single value Returns ------- [timestamp, voltage] """ pass @abstractmethod def __str__(self): pass