Skip to content

Trigger

Trigger configuration and modes

Trigger configuration and control for Siglent oscilloscopes.

Trigger

Trigger(oscilloscope: Oscilloscope)

Trigger configuration and control for oscilloscope.

Provides methods to configure trigger settings including mode, source, level, slope, type, and other trigger parameters.

Initialize trigger control.

Parameters:

Name Type Description Default
oscilloscope Oscilloscope

Parent Oscilloscope instance

required
Source code in scpi_control/trigger.py
def __init__(self, oscilloscope: "Oscilloscope"):
    """Initialize trigger control.

    Args:
        oscilloscope: Parent Oscilloscope instance
    """
    self._scope = oscilloscope

mode property writable

mode: str

Get trigger mode.

Returns:

Type Description
str

Trigger mode: 'AUTO', 'NORM', 'SINGLE', or 'STOP'

source property writable

source: str

Get trigger source channel.

Returns:

Type Description
str

Trigger source (e.g., 'C1', 'C2', 'C3', 'C4', 'EX', 'EX5', 'LINE')

trigger_type property writable

trigger_type: str

Get trigger type.

Returns:

Type Description
str

Trigger type: 'EDGE', 'SLEW', 'GLIT', 'INTV', 'RUNT', 'PATTERN', etc.

level property writable

level: float

Get trigger level voltage.

Returns:

Type Description
float

Trigger level in volts

slope property writable

slope: str

Get trigger slope.

Returns:

Type Description
str

Trigger slope: 'POS', 'NEG', or 'WINDOW'

coupling property writable

coupling: str

Get trigger coupling.

Returns:

Name Type Description
Coupling str

'DC', 'AC', 'HFREJ', 'LFREJ'

holdoff property writable

holdoff: float

Get trigger holdoff time.

Returns:

Type Description
float

Holdoff time in seconds

set_mode

set_mode(mode: TriggerModeType) -> None

Set trigger mode (alias for mode property setter).

Source code in scpi_control/trigger.py
def set_mode(self, mode: TriggerModeType) -> None:
    """Set trigger mode (alias for mode property setter)."""
    self.mode = mode

auto

auto() -> None

Set trigger to AUTO mode.

Source code in scpi_control/trigger.py
def auto(self) -> None:
    """Set trigger to AUTO mode."""
    self.mode = "AUTO"

normal

normal() -> None

Set trigger to NORMAL mode.

Source code in scpi_control/trigger.py
def normal(self) -> None:
    """Set trigger to NORMAL mode."""
    self.mode = "NORM"

single

single() -> None

Set trigger to SINGLE mode (one-shot).

Source code in scpi_control/trigger.py
def single(self) -> None:
    """Set trigger to SINGLE mode (one-shot)."""
    self.mode = "SINGLE"

stop

stop() -> None

Stop triggering.

Source code in scpi_control/trigger.py
def stop(self) -> None:
    """Stop triggering."""
    self.mode = "STOP"

force

force() -> None

Force a trigger event immediately.

Source code in scpi_control/trigger.py
def force(self) -> None:
    """Force a trigger event immediately."""
    self._scope.write("FRTR")
    logger.info("Trigger forced")

set_source

set_source(channel: Union[int, str]) -> None

Convenience wrapper to set trigger source.

Source code in scpi_control/trigger.py
def set_source(self, channel: Union[int, str]) -> None:
    """Convenience wrapper to set trigger source."""
    self.source = channel

set_edge_trigger

set_edge_trigger(source: str = 'C1', slope: str = 'POS') -> None

Configure edge trigger.

Parameters:

Name Type Description Default
source str

Trigger source channel (default: 'C1')

'C1'
slope str

Trigger slope - 'POS' (rising), 'NEG' (falling) (default: 'POS')

'POS'
Source code in scpi_control/trigger.py
def set_edge_trigger(self, source: str = "C1", slope: str = "POS") -> None:
    """Configure edge trigger.

    Args:
        source: Trigger source channel (default: 'C1')
        slope: Trigger slope - 'POS' (rising), 'NEG' (falling) (default: 'POS')
    """
    source = source.upper()
    slope = slope.upper()

    self._scope.write(f"TRIG_SELECT EDGE,SR,{source}")
    self.slope = slope
    logger.info(f"Edge trigger configured: source={source}, slope={slope}")

set_level

set_level(channel: Union[int, str], voltage: float) -> None

Convenience wrapper to set trigger level for a specific channel.

Source code in scpi_control/trigger.py
def set_level(self, channel: Union[int, str], voltage: float) -> None:
    """Convenience wrapper to set trigger level for a specific channel."""
    self.source = channel
    self.level = voltage

set_slope

set_slope(slope: TriggerSlopeType) -> None

Convenience wrapper to set trigger slope.

Source code in scpi_control/trigger.py
def set_slope(self, slope: TriggerSlopeType) -> None:
    """Convenience wrapper to set trigger slope."""
    self.slope = slope

get_configuration

get_configuration() -> dict

Get all trigger configuration parameters.

Returns:

Type Description
dict

Dictionary with all trigger settings

Source code in scpi_control/trigger.py
def get_configuration(self) -> dict:
    """Get all trigger configuration parameters.

    Returns:
        Dictionary with all trigger settings
    """
    return {
        "mode": self.mode,
        "type": self.trigger_type,
        "source": self.source,
        "level": self.level,
        "slope": self.slope,
        "coupling": self.coupling,
        "holdoff": self.holdoff,
    }

See Also

  • Oscilloscope - Main oscilloscope control class for SCPI communication
  • Channel - Channel configuration and control