Exemplo n.º 1
0
class Uart():
    def __init__(self, path, baud=115200, read_timeout=1):
        self.impl = Serial(port=path, baudrate=baud, exclusive=True)
        self.read_timeout = read_timeout
        self.impl.reset_input_buffer()
        self.impl.reset_output_buffer()

    def __enter__(self, *args):
        self.impl.__enter__()
        return self

    def __exit__(self, *args):
        self.impl.__exit__()

    ''' Read data into buffer, return buffer '''

    def read(self):
        # Wait for data to be available
        self.impl.timeout = self.read_timeout
        self.impl.read(0)
        # Read as much data as is available in the buffer
        self.impl.timeout = 0
        return self.impl.read(self.impl.inWaiting())

    ''' Write data from buffer '''

    def write(self, data):
        self.impl.write(data)
Exemplo n.º 2
0
class Duck:
    def __init__(self, *serial_device_parameters):
        self.serial_device = Serial(*serial_device_parameters)
        init_serial(self.serial_device)

    def __enter__(self):
        self.serial_device.__enter__()
        return self

    def __exit__(self, *exp):
        self.serial_device.__exit__(*exp)

    def run(self, op="NOP", verbose=False, read=True):
        run_operation(self.serial_device, op, verbose, read)

    def buffer_ramp(self, dac_channel, adc_channel, begin_voltage, end_voltage,
                    number_of_steps, delay_in_microsecs):
        return _buffer_ramp(self.serial_device, dac_channel, adc_channel,
                            begin_voltage, end_voltage, number_of_steps,
                            delay_in_microsecs)