moving to repos.py
This commit is contained in:
		
							parent
							
								
									2100a0205f
								
							
						
					
					
						commit
						ebf7fe89bf
					
				@ -2,6 +2,7 @@ import ctypes
 | 
			
		||||
 | 
			
		||||
import uldaq
 | 
			
		||||
from IPython import embed
 | 
			
		||||
from pyrelacs.repros.repos import Repos
 | 
			
		||||
from pyrelacs.util.logging import config_logging
 | 
			
		||||
import numpy as np
 | 
			
		||||
import matplotlib.pyplot as plt
 | 
			
		||||
@ -9,40 +10,23 @@ import matplotlib.pyplot as plt
 | 
			
		||||
log = config_logging()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Output_daq:
 | 
			
		||||
class Output_daq(Repos):
 | 
			
		||||
    def __init__(self) -> None:
 | 
			
		||||
        devices = uldaq.get_daq_device_inventory(uldaq.InterfaceType.USB)
 | 
			
		||||
        self.daq_device = uldaq.DaqDevice(devices[0])
 | 
			
		||||
        self.daq_device.connect()
 | 
			
		||||
        super().__init__()
 | 
			
		||||
        # devices = uldaq.get_daq_device_inventory(uldaq.InterfaceType.USB)
 | 
			
		||||
        # self.daq_device = uldaq.DaqDevice(devices[0])
 | 
			
		||||
        # self.daq_device.connect()
 | 
			
		||||
 | 
			
		||||
    def write_daq(self):
 | 
			
		||||
        log.debug("running repro")
 | 
			
		||||
        time = np.arange(0, 10, 1 / 30_000.0)
 | 
			
		||||
        data = 2 * np.sin(2 * np.pi * 10 * time)
 | 
			
		||||
 | 
			
		||||
        buffer = ctypes.c_double * len(time)
 | 
			
		||||
        data_c = buffer(*data)
 | 
			
		||||
 | 
			
		||||
        log.debug(f"Created C_double data {data_c}")
 | 
			
		||||
        ao_device = self.daq_device.get_ao_device()
 | 
			
		||||
        ao_info = ao_device.get_info()
 | 
			
		||||
 | 
			
		||||
        log.debug(
 | 
			
		||||
            f"Analog info,\n Channels available {ao_info.get_num_chans()}, \n Max Samplerate: {ao_info.get_max_scan_rate()}"
 | 
			
		||||
        data = 2 * np.sin(2 * np.pi * 1 * time)
 | 
			
		||||
        self.send_analog_dac(
 | 
			
		||||
            data, [0, 0], 30_000, ScanOption=uldaq.ScanOption.EXTTRIGGER
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        err = ao_device.a_out_scan(
 | 
			
		||||
            0,
 | 
			
		||||
            0,
 | 
			
		||||
            uldaq.Range.BIP10VOLTS,
 | 
			
		||||
            int(len(data)),
 | 
			
		||||
            30_000.0,
 | 
			
		||||
            uldaq.ScanOption.DEFAULTIO,
 | 
			
		||||
            uldaq.AOutScanFlag.DEFAULT,
 | 
			
		||||
            data_c,
 | 
			
		||||
        )
 | 
			
		||||
        ao_device.scan_wait(uldaq.WaitType.WAIT_UNTIL_DONE, 11)
 | 
			
		||||
 | 
			
		||||
    def trigger(self):
 | 
			
		||||
        self.digital_trigger(1)
 | 
			
		||||
        self.daq_device.disconnect()
 | 
			
		||||
        self.daq_device.release()
 | 
			
		||||
 | 
			
		||||
@ -50,3 +34,4 @@ class Output_daq:
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    daq_input = Output_daq()
 | 
			
		||||
    daq_input.write_daq()
 | 
			
		||||
    # daq_input.trigger()
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user