# Redpitaya board for analog signal acquisition and generation as well as digital input/output

class pymeasure.instruments.redpitaya.redpitaya_scpi.RedPitayaScpi(adapter=None, ip_address: str = '169.254.134.87', port: int = 5000, name='Redpitaya SCPI', read_termination='\r\n', write_termination='\r\n', **kwargs)

  Bases: `SCPIMixin`, `Instrument`

  This is the class for the Redpitaya reconfigurable board

  The instrument is accessed using a TCP/IP Socket communication, that is an adapter in the form: “TCPIP::x.y.z.k::port::SOCKET” where x.y.z.k is the IP address of the SCPI server (that should be activated on the board) and port is the TCP/IP port number, usually 5000

  To activate the SCPI server, you have to connect first the redpitaya to your computer/network and enter the url address written on the network plug (on the redpitaya). It should be something like “RP-F06432.LOCAL/” then browse the menu, open the Development application and activate the SCPI server. When activating the server, you’ll be notified with the IP/port address to use with this Instrument.

  Parameters:

    - ip_address – IP address to use, if adapter is None.

    - port – Port number to use, if adapter is None.

  analog_in
    Channels:

      `ain1`: `AnalogInputFastChannel`, `ain2`: `AnalogInputFastChannel`

  analog_in_slow
    Channels:

      `ainslow0`: `AnalogInputSlowChannel`, `ainslow1`: `AnalogInputSlowChannel`, `ainslow2`: `AnalogInputSlowChannel`, `ainslow3`: `AnalogInputSlowChannel`

  analog_out_slow
    Channels:

      `aoutslow0`: `AnalogOutputSlowChannel`, `aoutslow1`: `AnalogOutputSlowChannel`, `aoutslow2`: `AnalogOutputSlowChannel`, `aoutslow3`: `AnalogOutputSlowChannel`

  dioN
    Channels:

      `dioN0`: `DigitalChannelN`, `dioN1`: `DigitalChannelN`, `dioN2`: `DigitalChannelN`, `dioN3`: `DigitalChannelN`, `dioN4`: `DigitalChannelN`, `dioN5`: `DigitalChannelN`, `dioN6`: `DigitalChannelN`

  dioP
    Channels:

      `dioP0`: `DigitalChannelP`, `dioP1`: `DigitalChannelP`, `dioP2`: `DigitalChannelP`, `dioP3`: `DigitalChannelP`, `dioP4`: `DigitalChannelP`, `dioP5`: `DigitalChannelP`, `dioP6`: `DigitalChannelP`

  led
    Channels:

      `led0`: `DigitalChannelLed`, `led1`: `DigitalChannelLed`, `led2`: `DigitalChannelLed`, `led3`: `DigitalChannelLed`, `led4`: `DigitalChannelLed`, `led5`: `DigitalChannelLed`, `led6`: `DigitalChannelLed`, `led7`: `DigitalChannelLed`

  property acq_buffer_filled

    Get the status of the buffer(bool), if True the buffer is full

  property acq_format

    Set the format of the retrieved buffer data (str), either ‘BIN’, or ‘ASCII’ (default)

  property acq_trigger_delay_ns

    Control the trigger delay in nanoseconds (int) in the range [-8192, 8192] / CLOCK

  property acq_trigger_delay_samples

    Control the trigger delay in number of samples (int) in the range [-8192, 8192]

  property acq_trigger_level

    Control the level of the trigger in volts The allowed range should be dynamically set depending on the gain settings either +-LV_MAX or +- HV_MAX (dynamic)

  property acq_trigger_position

    Get the position within the buffer where the trigger event happened

  property acq_trigger_source

    Set the trigger source (str), one of RedPitayaScpi.TRIGGER_SOURCES. PE and NE means respectively Positive and Negative edge

  property acq_trigger_status

    Get the trigger status (bool), if True the trigger as been fired (or is disabled)

  property acq_units

    Control the output data units (str), either ‘RAW’, or ‘VOLTS’ (default)

  analog_reset()

    Reset the voltage of all analog channels

  property average_skipped_samples

    Control the use of skipped samples (if decimation > 1) to average the returned acquisition array (bool)

  property board_name

    Get the RedPitaya board name

  property buffer_length

    Measure the size of the buffer, that is the number of points of the acquisition

  property date

    Control the date on board date should be given as a datetime.date object

  property decimation

    Control the decimation (int) as 2**n with n in range [0, 16] The sampling rate is given as 125MS/s / decimation

  digital_reset()

    Reset the state of all digital lines

  property time

    Control the time on board time should be given as a datetime.time object