# HP 8116A 50 MHz Pulse/Function Generator

class pymeasure.instruments.hp.HP8116A(adapter, name='Hewlett-Packard 8116A', **kwargs)

  Bases: `Instrument`

  Represents the Hewlett-Packard 8116A 50 MHz Pulse/Function Generator and provides a high-level interface for interacting with the instrument. The resolution for all floating point instrument parameters is 3 digits.

  class Digit(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

    Bases: `Enum`

    Enum of the digits used with the autovernier (see `HP8116A.start_autovernier()`).

  class Direction(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

    Bases: `Enum`

    Enum of the directions used with the autovernier (see `HP8116A.start_autovernier()`).

  GPIB_trigger()

    Initiate trigger via low-level GPIB-command (aka GET - group execute trigger).

  property amplitude

    Control the amplitude of the output in V (strict float from 10e-3 to 16). The allowed amplitude range is also limited by the current offset.

  ask(command, num_bytes=None)

    Write a command to the instrument, read the response, and return the response as ASCII text.

    Parameters:

      - command – The command to send to the instrument.

      - num_bytes – The number of bytes to read from the instrument. If not specified, the number of bytes is automatically determined by the command.

  property autovernier_enabled

    Control whether the autovernier is enabled (bool).

  property burst_number

    Control the number of periods generated in a burst (strict int from 1 to 1999). It is only valid for units with Option 001 in one of the burst modes.

  check_errors()

    Check for errors in the 8116A.

    Returns:

      list of error entries or empty list if no error occurred.

  property complement_enabled

    Control whether the complement of the signal is generated (bool).

  property complete

    Get whether the measurement is complete (bool).

  property control_mode

    Control the control mode of the instrument. Possible values are ‘off’, ‘FM’, ‘AM’, ‘PWM’, ‘VCO’.

  property duty_cycle

    Control the duty cycle of the output in percent (float). The allowed range generally is 10 % to 90 %, but it also depends on the current frequency. It is valid for all shapes except ‘pulse’, where `pulse_width` is used instead.

  property frequency

    Control the frequency of the output in Hz (strict float from 1e-3 to 52.5e6).

  property haversine_enabled

    Control whether a haversine/havertriangle signal is generated when in ‘triggered’, ‘internal_burst’ or ‘external_burst’ operating mode.

  property high_level

    Control the high level of the output in V (strict float from -7.9 to 8). The allowed high level range must be at least 10 mV greater than the low level.

  property limit_enabled

    Control whether parameter limiting is enabled (bool).

  property low_level

    Control the low level of the output in V (strict float from -8 to 7.9). The allowed low level range must be at least 10 mV less than the high level.

  property offset

    Control the offset of the output in V (strit float from -7.95 to 7.95). The allowed offset range is also limited by the amplitude.

  property operating_mode

    Control the operating mode of the instrument. Possible values (without Option 001) are: ‘normal’, ‘triggered’, ‘gate’, ‘external_width’. With Option 001, ‘internal_sweep’, ‘external_sweep’, ‘external_width’, ‘external_pulse’ are also available.

  property options

    Get the device options installed. The only possible option is 001.

  property output_enabled

    Control whether the output is enabled (bool).

  property pulse_width

    Control the pulse width in s (strict float from 8e-9 to 999e-3). The pulse width may not be larger than the period.

  property repetition_rate

    Control the repetition rate in s (i.e. the time between bursts) in ‘internal_burst’ mode (strict float from 20e-9 to 999e-3).

  reset()

    Initatiate a reset (like a power-on reset) of the 8116A.

  property shape

    Control the shape of the output waveform. Possible values are: ‘dc’, ‘sine’, ‘triangle’, ‘square’, ‘pulse’.

  shutdown()

    Gracefully close the connection to the 8116A.

  start_autovernier(control, digit, direction, start_value=None)

    Start the autovernier on the specified control.

    Parameters:

      - control – The control to change, pass as `HP8116A.some_control`. Allowed controls are frequency, amplitude, offset, duty_cycle, and pulse_width

      - digit – The digit to change, type: `HP8116A.Digit`.

      - direction – The direction in which to change the control, type: `HP8116A.Direction`.

      - start_value – An optional value to start the autovernier at. If not specified, the current value of the control is used.

  property status

    Get the status byte of the 8116A as a `Status` IntFlag-type enum.

  property sweep_marker_frequency

    Control the frequency marker in both sweep modes in Hz (strict float from 1e-3 to 52.5e6). At this frequency, the marker output switches from low to high.

  property sweep_start

    Control the start frequency in both sweep modes in Hz (strict float from 1e-3 to 52.5e6).

  property sweep_stop

    Control the stop frequency in both sweep modes in Hz (strict float from 1e-3 to 52.5e6).

  property sweep_time

    Control the sweep time per decade in both sweep modes in s (float). The sweep time is selectable in a 1-2-5 sequence between 10 ms and 500 s.

  property trigger_slope

    Control the slope the trigger triggers on. Possible values are: ‘off’, ‘positive’, ‘negative’.

  write(command)

    Write a command to the instrument and wait until the 8116A has interpreted it.