diff --git a/pyrelacs/repros/input.py b/pyrelacs/repros/input.py index 51577d2..8728f41 100644 --- a/pyrelacs/repros/input.py +++ b/pyrelacs/repros/input.py @@ -1,54 +1,28 @@ -from typing import Optional - import uldaq -from IPython import embed -import typer -from typing_extensions import Annotated import matplotlib.pyplot as plt from pyrelacs.util.logging import config_logging +from .repos import Repos log = config_logging() -class ReadData: +class ReadData(Repos): def __init__(self) -> None: - devices = uldaq.get_daq_device_inventory(uldaq.InterfaceType.USB) - log.debug(f"Found daq devices {len(devices)}, connecting to the first one") - self.daq_device = uldaq.DaqDevice(devices[0]) - self.daq_device.connect() - log.debug("Connected") + super().__init__() - def read_analog_in(self, channel: Annotated[Optional[int], typer.Argument()] = 0): + def analog_in(self) -> None: # Get the Ananlog In device and Analog Info - ai_device = self.daq_device.get_ai_device() - ai_info = ai_device.get_info() - log.debug( - f"Analog info,\n Channels available {ai_info.get_num_chans()}, \n Max Samplerate: {ai_info.get_max_scan_rate()}" - ) - buffer_len = 1_000_000 - buf = uldaq.create_float_buffer(1, buffer_len) - - er = ai_device.a_in_scan( - 1, - 1, - uldaq.AiInputMode.SINGLE_ENDED, - uldaq.Range.BIP10VOLTS, - buffer_len, - 500_000, - uldaq.ScanOption.DEFAULTIO, - uldaq.AInScanFlag.DEFAULT, - data=buf, + data = self.read_analog_daq( + [0, 0], + 10, + 3000.0, ) - ai_device.scan_wait(uldaq.WaitType.WAIT_UNTIL_DONE, timeout=-1) - log.debug("Scanning") - - self.daq_device.disconnect() - self.daq_device.release() - plt.plot(buf) + plt.plot(data) plt.show() + self.disconnect_dac() if __name__ == "__main__": daq_input = ReadData() - typer.run(daq_input.read_analog_in) + daq_input.analog_in()