:FUNCtion:FOPerator

Command Syntax

:FUNCtionN:FOPerator  {NONE | ADD | ALIGn | AMPLify | AVALue | AVERage | BESSel | BRICkwall | BUTTerworth
   | CMODe | CONVolve | CTLE | DCONvolve | DDEConvolve | DDEMbed | DEConvolve | DELay | DEMBed
   | DEPort | DFEQualizer | DIFF | DIVide | FFEQualizer | FFT | GATing | RCLock | GAUSsian | HPFilter 
   | INTegrate | INTerpolate | INVert | MAX | MIN | MTRend | BMTRend | MULTiply | SINC 
   |SMOoth | SNDR | SQUare| SROot | SUBTract | VERSus | BUSer | USER}

Where N identifies one of sixty four {1:64} math functions that you can create. For example, :FUNCtion3.

Query Syntax

:FUNCtionN:FOPerator?

Description

Creates a function that is identified by a number from 1 through 64. The command argument selects the specific type of operator. This topic includes a short description of each operator type with a link to the operator's main topic. Quick links in the above Command Syntax section link to content within this topic.

Function identification numbers are used to identify the function in function setup and configuration commands. You do not need to assign consecutive numbers when creating a new function. For example, you can create function 5, function 8, and then function 2 as shown in the following lines:

:FUNCtion5:FOPerator ADD
:FUNCtion8:FOPerator INVert
:FUNCtion2:FOPerator AMPLify
Color Legend for Tables in This Topic
Color Definition
  Indicates a required command that is used to create a working function.
  Indicates an optional command used to alter a function's operation

NONE Argument

The function is undefined.

 

ADD Argument

Specifies an addition operator that adds source 1 to source 2, point by point, and places the result in the selected function waveform. When vertical scaling is set to Auto, the instrument automatically sets vertical scale and offset to display the entire function on the display. Any changes to vertical scale or offset to the source waveform are tracked. In Manual mode, you set the function's vertical scale and offset; tracking is disabled.

 

ALIGn Argument

Specifies an align operator that lines up two single-valued waveforms or eye diagrams.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:ALIGn:TIME  
:FUNCtion:PARameters:ALIGn:TIME:AUTO  
:FUNCtion:PARameters:ALIGn:TIME:RECalculate  
:FUNCtion:PARameters:DELay:TIME  

 

AMPLify Argument

Creates an amplify operator that is a copy of the operand. The magnify function is a software magnify. No hardware settings are altered as a result of using this function. It is useful for scaling channels, another function, or memories. Use the :FUNCtion:CONStant command to specify the amount of amplification applied with this function.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:AMPLify:GAIN  

 

AVALue Argument

Specifies a absolute value operator where, for each input value, the Absolute math operator obtains the absolute values, point by point, of the source and places the result in the function waveform.

 

AVERage Argument

Specifies an average operator that computes the average value of each time bucket for the defined operand's waveform.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:AVERage:ECOunt  

 

BESSel Argument

Specifies a fourth-order bessel operator that is a linear low-pass filter.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:BESSel:BANDwidth  

The Bessel operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

 

BRICkwall Argument

Specifies a brickwall operator that is a low-pass filter.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:BRICkwall:BANDwidth  

The Brickwall operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

 

BUTTerworth Argument

Specifies a butterworth operator that is a low-pass filter.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:BUTTerworth:BANDwidth  
:FUNCtion:PARameters:BUTTerworth:ORDer  

The Butterworth operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

 

CMODe Argument

The Common Mode math operator adds two sources, point by point, divides the sum by two, and places the result in the function waveform.

 

CONVolve Argument

Specifies an Apply S2P operator that defines a basic one-block model for a two-port device. Use this operator when you want to compensate for the loss of a channel element such as a cable or fixture.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:CONVolve:FNAMe  
:FUNCtion:PARameters:CONVolve:FMODel  
:FUNCtion:PARameters:CONVolve:FRELoad  
:FUNCtion:PARameters:CONVolve:PEXTract  
:FUNCtion:PARameters:CONVolve:PORDer  

This operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

The convolution process used by this operator requires that the measurement circuit and the simulation circuit be linear and time-invariant (small-signal analysis requirements).

Jitter measurements can be made on the Apply S2P operator's output waveform.

 

CTLE Argument

Specifies a continuous time linear equalizer (CTLE) operator that is a first-order transfer function defined by DC gain, zero frequency, and two poles.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:CTLequalizer:DEFinition  
:FUNCtion:PARameters:CTLequalizer:FZP  
:FUNCtion:PARameters:CTLequalizer:GAIN  
:FUNCtion:PARameters:CTLequalizer:GDC  
:FUNCtion:PARameters:CTLequalizer:POLE  
:FUNCtion:PARameters:CTLequalizer:PRESets  
:FUNCtion:PARameters:CTLequalizer:PRESets:SELections?  
:FUNCtion:PARameters:CTLequalizer:ZERO  

 

DCONvolve Argument

Specifies an Apply S4P operator to defines a basic one-block model for a four-port device. Use this operator when you want to compensate for the loss of a channel element such as a cable or fixture.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:DCONvolve:FNAMe  
:FUNCtion:PARameters:DCONvolve:DRESult  
:FUNCtion:PARameters:DCONvolve:FMODel  
:FUNCtion:PARameters:DCONvolve:FRELoad  
:FUNCtion:PARameters:DCONvolve:PORDer  

This operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

The convolution process used by this operator requires that the measurement circuit and the simulation circuit be linear and time-invariant (small-signal analysis requirements).

Jitter measurements can be made on the Apply S4P operator's output waveform.

 

DDEConvolve Argument

Specifies a Remove S4P operator that removes the effects of a four-port element from your measurements. This operator is easier to set up than the DeEmbedding operator (DDEMbed), however the measurement accuracy is reduced. Before you can use this operator, you must create an S-parameter file of the device to be removed.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:DDEConvolve:FNAMe  
:FUNCtion:PARameters:DDEConvolve:BANDwidth  
:FUNCtion:PARameters:DDEConvolve:BANDwidth:AUTO  
:FUNCtion:PARameters:DDEConvolve:BLIMit  
:FUNCtion:PARameters:DDEConvolve:DRESult  
:FUNCtion:PARameters:DDEConvolve:FMODel  
:FUNCtion:PARameters:DDEConvolve:FRELoad  
:FUNCtion:PARameters:DDEConvolve:PORDer  

This operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

The convolution process used by this operator requires that the measurement circuit and the simulation circuit be linear and time-invariant (small-signal analysis requirements).

Jitter measurements can be made on the Remove S4P operator's output waveform.

 

DDEMbed Argument

Specifies a 4-port DeEmbedding operator that provides the most precision for removing or inserting test-setup elements. This operator creates a network that describes the full system of transmitter, receiver, and channel blocks. Using remote commands, you can open an existing network file that you have previously created and saved for your test setup and you can configure bandwidth settings. However, you cannot create and define networks using remote commands. Instead, create your network files using Infiniium's menus.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:DDEMbed:DRESult  
:FUNCtion:PARameters:DDEMbed:FNAMe  
:FUNCtion:PARameters:DDEMbed:BANDwidth  
:FUNCtion:PARameters:DDEMbed:BLIMit  

This operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

The convolution process used by DEMBed requires that the measurement circuit and the simulation circuit be linear and time-invariant (small-signal analysis requirements).

Jitter measurements can be made on the DEMBed's output waveform.

 

DEConvolve Argument

Specifies a Remove S2P operator that removes the effects of a two-port element from your measurements. is operator is easier to set up than the DeEmbedding operator (DEMBed), however the measurement accuracy is reduced. Before you can use this operator, you must create an S-parameter file of the device to be removed.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:DEConvolve:FNAMe  
:FUNCtion:PARameters:DEConvolve:BANDwidth  
:FUNCtion:PARameters:DEConvolve:BANDwidth:AUTO  
:FUNCtion:PARameters:DEConvolve:BLIMit  
:FUNCtion:PARameters:DEConvolve:FMODel  
:FUNCtion:PARameters:DEConvolve:FRELoad  
:FUNCtion:PARameters:DEConvolve:PEXTract  
:FUNCtion:PARameters:DEConvolve:PORDer  

This operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

The convolution process used by this operator requires that the measurement circuit and the simulation circuit be linear and time-invariant (small-signal analysis requirements).

Jitter measurements can be made on the Remove S2P operator's output waveform.

 

DELay Argument

Specifies a delay operator that applies a time delay to single-valued waveforms and eye diagrams.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:DELay:TIME  

 

DEMBed Argument

Specifies a 2-port DeEmbedding operator that provides the most precision for removing or inserting test-setup elements. This operator creates a network that describes the full system of transmitter, receiver, and channel blocks. Using remote commands, you can open an existing network file that you have previously created and saved for your test setup and you can configure bandwidth settings. However, you cannot create and define networks using remote commands. Instead, create your network files using Infiniium's menus.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:DEMBed:FNAMe  
:FUNCtion:PARameters:DEMBed:BANDwidth  
:FUNCtion:PARameters:DEMBed:BLIMit  

DEMBed requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

The convolution process used by DEMBed requires that the measurement circuit and the simulation circuit be linear and time-invariant (small-signal analysis requirements).

Jitter measurements can be made on the DEMBed's output waveform.

 

DEPort Argument

Specifies a 4-port, 1-source DeEmbedding operator that provides the most precision for removing or inserting test-setup elements. This operator is for situations where the differential or common-mode signal is created prior to de-embedding. This operator creates a network that describes the full system of transmitter, receiver, and channel blocks. Using remote commands, you can open an existing network file that you have previously created and saved for your test setup and you can configure bandwidth settings. However, you cannot create and define networks using remote commands. Instead, create your network files using Infiniium's menus.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:DEPort:DRESult  
:FUNCtion:PARameters:DEPort:FNAMe  
:FUNCtion:PARameters:DEPort:BANDwidth  
:FUNCtion:PARameters:DEPort:BLIMit  

This operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

The convolution process used by DEPort requires that the measurement circuit and the simulation circuit be linear and time-invariant (small-signal analysis requirements).

Jitter measurements can be made on the DEPort's output waveform.

 

DFEQualizer Argument

Specifies a Decision Feedback Equalizer (DFE) operator that is defined by waveform, taps, and target levels.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:DFEQualizer:BANDwidth  
:FUNCtion:PARameters:DFEQualizer:BANDwidth:AUTO  
:FUNCtion:PARameters:DFEQualizer:CLKDelay  
:FUNCtion:PARameters:DFEQualizer:DTHReshold  
:FUNCtion:PARameters:DFEQualizer:PRESets  
:FUNCtion:PARameters:DFEQualizer:PRESets:SELections?  
:FUNCtion:PARameters:DFEQualizer:TAPS  
:FUNCtion:PARameters:DFEQualizer:TAPS:AUTO  
:FUNCtion:PARameters:DFEQualizer:TAPS:COUNt  
:FUNCtion:PARameters:DFEQualizer:TAPS:LLIMit  
:FUNCtion:PARameters:DFEQualizer:TAPS:RECalculate  
:FUNCtion:PARameters:DFEQualizer:TAPS:ULIMit  

 

DIFF Argument

The Differentiate operator calculates the discrete derivative of a waveform.

The most accurate derivative of your waveform is achieved in the real-time acquisition mode with the sin(x)/x interpolation filter enabled.

You can use Differentiate to measure the instantaneous slope of a waveform. For example, the slew rate of an operational amplifier may be measured using the Differentiate operator.

The Differentiate algorithm is applied in two different ways depending on whether or not the Low Pass and Align Phase option (:FUNCtion:PARameters:DIFF:PALign) is enabled.

 

DIVide Argument

The Divide math operator divides one source by another source, point by point, and places the result in the selected function waveform.

You can use Divide to measure the ratio of any two signals, such as the output voltage divided by the input voltage of an amplifier circuit.

 

FFEQualizer Argument

Specifies a Linear Feedforward Equalizer operator (LFE) applies a finite digital impulse response (non-recursive) filter.

The Linear Feedforward Equalizer operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:FFEQualizer:BANDwidth  
:FUNCtion:PARameters:FFEQualizer:BANDwidth:AUTO  
:FUNCtion:PARameters:FFEQualizer:DCGain?  
:FUNCtion:PARameters:FFEQualizer:NPRecursors  
:FUNCtion:PARameters:FFEQualizer:PRESets  
:FUNCtion:PARameters:FFEQualizer:PRESets:SELections?  
:FUNCtion:PARameters:FFEQualizer:TAPS  
:FUNCtion:PARameters:FFEQualizer:TAPS:AUTO  
:FUNCtion:PARameters:FFEQualizer:TAPS:COUNt  
:FUNCtion:PARameters:FFEQualizer:TAPS:NORMalize  
:FUNCtion:PARameters:FFEQualizer:TAPS:RECalculate  
:FUNCtion:PARameters:FFEQualizer:TSPacing  
:FUNCtion:PARameters:FFEQualizer:TSPacing:TIME  
:FUNCtion:PARameters:FFEQualizer:TSPacing:TPUI  

Jitter measurements can be made on the Linear Feedforward Equalizer's output waveform.

 

FFT Argument

Specifies an Fast Fourier Transform (FFT) operator that takes the sample points of the waveform in the time domain and computes the frequency components.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:FFT:DISPlay  
:FUNCtion:PARameters:FFT:PREFerence  
:FUNCtion:PARameters:FFT:PREFerence:TORigin  
:FUNCtion:PARameters:FFT:TFACtor  
:FUNCtion:PARameters:FFT:WINDow  

 

GATing Argument

Specifies a Gating operator that lets you extract part of a waveform within a measurement region as a separate function waveform.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:GATing:REGion  

 

RCLock Argument

Specifies a Recovered Clock operator that lets you display the signal recovered by software clock recovery.

 

GAUSsian Argument

Specifies a Gaussian operator that is a bandpass filter.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:GAUSsian:BANDwidth  
:FUNCtion:PARameters:GAUSsian:RTIMe  

The Gaussian operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

 

HPFilter Argument

Specifies a High Pass filter operator.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:HPFilter:BANDwidth  

 

INTegrate Argument

The Integrate operator calculates the integral of Source 1.

You can use Integrate to calculate the energy of a pulse in volt-seconds or measure the area under a waveform. The Integrate algorithm is:

F(0) = 0

F(i) = F(i) + d(i)

where:

  • i = the current sample number

  • d(i) = the voltage value of the current sample

 

INTerpolate Argument

Specifies an interpolation operator that adds new points between each of the input waveform's points and can be used to reconstruct a band-limited signal.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:INTerpolate:FACTor  
:FUNCtion:PARameters:INTerpolate:METHod  

The Interpolation operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

 

INVert Argument

Specifies a invert operator that inverts the defined operand's waveform by multiplying by −1.

 

MAX Argument

Specifies a maximum operator that computes the maximum value of the operand waveform in each time bucket.

 

MIN Argument

Specifies a minimum operator that computes the minimum value of each time bucket for the defined operand's waveform.

 

MTRend Argument

When there is a measurement on one input waveform that uses all edges (as required by the measurement or due to the Measure All selection), you can plot a trend waveform of the measured values. You can perform additional measurements or signal processing on the trend waveform just like you can with other captured waveforms.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:MTRend:MEASurement:LOCation  

 

BMTRend Argument

When there is a measurement on two input waveforms that uses all edges (as required by the measurement or due to the Measure All selection), you can plot a trend waveform of the measured values. You can perform additional measurements or signal processing on the trend waveform just like you can with other captured waveforms.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:BMTRend:MEASurement:LOCation  

 

MULTiply Argument

Specifies a multiply operator that multiplies source 1 by source 2, point by point, and places the result in the selected function waveform. When vertical scaling is set to Auto, the instrument automatically sets vertical scale and offset to display the entire function on the display. Any changes to vertical scale or offset to the source waveform are tracked. In Manual mode, you set the function's vertical scale and offset; tracking is disabled.

 

SINC Argument

Specifies an Sin(x)/x, sinc(x), operator can be used to filter an input waveform.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:SINC:BANDwidth  

The sinc(x) operator requires a single-valued waveform, as opposed to an eye diagram. Be sure that your trigger setup results in a single-valued waveform at the input to this operator.

Jitter measurements can be made on the Sin(x) / x operator's output waveform.

 

SMOoth Argument

Specifies a smooth operator that takes the number of data points as defined by the :FUNCtion{1:64}:PARameters:SMOoth:POINts command, starting from the left side of the waveform viewing, takes the average voltage value of the points, and plots it. The smoothing operator then moves to the right by one data point, takes the next set of data points, and averages them. This process continues until all of the on-screen data has been smoothed.

The smoothing operator limits the bandwidth of the waveform. You can use the following equation to calculate the bandwidth when the smoothing operator is on.

where:

  • Fs = the sampling rate
  • N = :FUNCtion{1:64}:PARameters:SMOoth:POINts setting value
Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:SMOoth:POINts  

 

SNDR Argument

Lets you display pattern average, Linear Fit Pulse Response, pulse corrected pattern average, or pulse corrected error SNDR function waveforms (and specify their scaling).

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:SNDRatio:DISPlay  

 

SQUare Argument

Specifies a square operator that takes the square of each value of each time bucket for the defined operand's waveform.

 

SROot Argument

Specifies a square-root operator where for each input value, point by point, the square root of the source is determined and placed in the function waveform. For example, a 10 mV input voltage point results in a 100 mV½; output point. The output units are not V or W. Instead, they are V½; or W½;, which are identified on screen as V½; or W½;. The scale of the output waveform does not track the input waveform.

 

SUBTract Argument

Specifies a subtract operator that algebraically subtracts the second operand from the first operand.

 

VERSus Argument

Specifies a versus (X vs. Y) math operator that plots the source 1 amplitude on the vertical Y-axis and the source 2 amplitude on the horizontal X-axis.

 

USER Argument

Specifies a one-input user operator that sends the input waveform to a MATLAB or Python script and sends the output waveform from the script to the display. To load a configuration file into the operator, use the :FUNCtion:PARameters:USER:CFILe command.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:USER:ABBReviation?  
:FUNCtion:PARameters:USER:CFILe  
:FUNCtion:PARameters:USER:CFILe:RELoad  
:FUNCtion:PARameters:USER:CFLoaded?  
:FUNCtion:PARameters:USER:COMMents?  
:FUNCtion:PARameters:USER:CONTrol:DOUBle  
:FUNCtion:PARameters:USER:CONTrol:ENUM  
:FUNCtion:PARameters:USER:CONTrol:FILE  
:FUNCtion:PARameters:USER:CONTrol:INTeger  
:FUNCtion:PARameters:USER:CONTrol:STRing  
:FUNCtion:PARameters:USER:LSTatus?  
:FUNCtion:PARameters:USER:LSTatus:REASon?  
:FUNCtion:PARameters:USER:NAME?  

 

BUSer Argument

Specifies a two-input user operator that sends the input waveforms to a MATLAB or Python script and sends the output waveform from the script to the display. To load a configuration file into the operator, use the :FUNCtion:PARameters:BUSer:CFILe command.

Function Configuration
:FUNCtion Parameters Subsystem Command Required for Setup
:FUNCtion:PARameters:BUSer:ABBReviation?  
:FUNCtion:PARameters:BUSer:CFILe  
:FUNCtion:PARameters:BUSer:CFILe:RELoad  
:FUNCtion:PARameters:BUSer:CFLoaded?  
:FUNCtion:PARameters:BUSer:COMMents?  
:FUNCtion:PARameters:BUSer:CONTrol:DOUBle  
:FUNCtion:PARameters:BUSer:CONTrol:ENUM  
:FUNCtion:PARameters:BUSer:CONTrol:FILE  
:FUNCtion:PARameters:BUSer:CONTrol:INTeger  
:FUNCtion:PARameters:BUSer:CONTrol:STRing  
:FUNCtion:PARameters:BUSer:LSTatus?  
:FUNCtion:PARameters:BUSer:LSTatus:REASon?  
:FUNCtion:PARameters:BUSer:NAME?  

Example Command Sequence

:FUNCtion2:FOPerator CONVolve
:FUNCtion2:PARameters:CONVolve:FNAMe "C:\Users\<user_name>Documents\Keysight\Infiniium\S-Parameter Data\DUT_4.s2p"
:FUNCtion2:COLor TCOLor4
:FUNCtion2:DISPlay ON
*OPC?
  //  Your code to synchronize execution timing.

Child Commands