Acquisition


Functionality overview

Acquisition commands control Red Pitaya’s fast analog inputs (ADCs) for high-speed signal capture. These commands provide precise triggering, decimation control, and buffer management for capturing signals from DC to 50 MHz.

Key acquisition concepts:

  • Circular memory buffer - Hardware buffer where ADC data is continuously written (16384 samples)

  • Data buffer - User-accessible buffer with trigger at sample 8192 (middle position)

  • Trigger delay - Adjusts the amount of pre-trigger vs post-trigger data

  • Decimation - Reduces effective sampling rate for longer time windows

Understanding the difference between the circular memory buffer and data buffer is critical for proper data acquisition.

Important notes

  • Always specify trigger conditions to avoid corrupted data.

  • Standard buffer size: 16384 samples (use Deep Memory Acquisition for longer captures).

  • Trigger position in data buffer is fixed at sample 8192.

  • Acquisition must be restarted (ACQ:START) between captures.

  • For detailed programming guidance, see SCPI acquisition section in the introduction.

Code examples

Here are some examples of how to use the acquisition commands on Red Pitaya:

Acquisition Control

Parameter options:

  • <enable> = {true, false}

  • <n> = {1,2} (set channel IN1 or IN2)

  • <state> = {ON, OFF} Default: OFF

STEMlab 125-14 4-Input only (additional):

  • <n> = {3,4} (set channel IN3, or IN4)

SCPI

API, Jupyter

DESCRIPTION

ECOSYSTEM

ACQ:START



C++: rp_AcqStart()

Python: rp_AcqStart()

Start the acquisition.

1.04-18 and up

ACQ:START:CH<n>



C++: rp_AcqStartCh(rp_channel_t channel)

Python: rp_AcqStartCh(<channel>)

Start the acquisition.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:STOP



C++: rp_AcqStop()

Python: rp_AcqStop()

Stop the acquisition.

1.04-18 and up

ACQ:STOP:CH<n>



C++: rp_AcqStopCh(rp_channel_t channel)

Python: rp_AcqStopCh(<channel>)

Stop the acquisition.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:RST



C++: rp_AcqReset()

Python: rp_AcqReset()

Stop the acquisition and reset all acquisition parameters to
default values.


1.04-18 and up

ACQ:RST:CH<n>




C++: rp_AcqResetCh(rp_channel_t channel)

Python: rp_AcqResetCh(<channel>)


Stop the acquisition and reset all acquisition parameters to
default values.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:UNLOCK


C++: rp_AcqUnlockTrigger()

Python: rp_AcqUnlockTrigger()

Unlocks trigger capture after a trigger has been detected.

in dev

ACQ:UNLOCK:CH<n>


C++: rp_AcqUnlockTriggerCh(rp_channel_t)

Python: rp_AcqUnlockTriggerCh(<channel>)
Unlocks trigger capture for specified channel.
Used only in split trigger mode

in dev

-


C++: rp_AcqGetUnlockTrigger(bool* state)

Python: rp_AcqGetUnlockTrigger()

Gets the trigger’s current blocking state.

in dev

-


C++: int rp_AcqGetUnlockTriggerCh(rp_channel_t channel, bool* state);

Python: rp_AcqGetUnlockTriggerCh(<channel>)

Gets the trigger’s current blocking state in split mode

in dev

ACQ:SPLIT:TRig <state>



C++: rp_AcqSetSplitTrigger(bool enable)

Python: rp_AcqSetSplitTrigger(<enable>)

Enables split trigger mode.
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:SPLIT:TRig? > <state>



C++: rp_AcqGetSplitTrigger(bool* state)

Python: rp_AcqGetSplitTrigger()

Returns the split trigger mode status
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

-


C++: rp_AcqSetSplitTriggerPass(bool enable)

Python: rp_AcqSetSplitTriggerPass(<enable>)
Makes it possible to call Ch functions even if split trigger is not
supported in hardware, by forwarding to common functions.

in dev

-


C++: rp_AcqGetSplitTriggerPass(bool* state)

Python: rp_AcqGetSplitTriggerPass()

Returns the state of function forwarding for channel-specific commands.

in dev

ACQ:M16BIT <state>



C++: rp_AcqSet16BitMode(bool enable)

Python: rp_AcqSet16BitMode(<enable>)

Enables the mode when the FPGA returns data in 16-bit format.

in dev

ACQ:M16BIT? > <state>



C++: rp_AcqGet16BitMode(bool* state)

Python: rp_AcqGet16BitMode()

Returns the 16-bit mode status

in dev

-



C++: rp_AcqResetFpga()

Python: rp_AcqResetFpga()

Reset the acqusition writing state machine.

1.04-18 and up

ACQ:KEEP:ARM <state>
Example:
ACQ:KEEP:ARM ON

C++: rp_AcqSetArmKeep(bool enable)

Python: rp_AcqSetArmKeep(<enable>)

Enable continuous acquisition even after trigger has happened.
When enabled, the buffer continues to fill after trigger
(ARM keep mode).

in dev

ACQ:KEEP:ARM? > <state>
Example:
ACQ:KEEP:ARM? > ON
C++: rp_AcqGetArmKeep(bool* state)

Python: rp_AcqGetArmKeep()
Get the status of continuous acquisition after trigger setting.
Returns ON if arm keep mode is enabled.

in dev

Acquisition settings

Parameter options:

  • <n> = {1,2} (set channel IN1 or IN2)

  • <decimation> = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536} Default: 1

  • <decimation_ext> = {1, 2, 4, 8, 16, 17, 18, 19, ..., 65536} Default: 1

  • <average> = {OFF, ON} Default: ON

  • <bypass> = {OFF, ON} Default: OFF

  • <state> = {LV, HV} Default: LV

  • <mode> = {AC, DC} Default DC

  • <units> = {RAW, VOLTS} Default VOLTS

  • <format> = {BIN, ASCII} Default ASCII

  • <order> = {BEND, LEND} Default BEND

  • <enable> = {true, false} Default: true

STEMlab 125-14 4-Input only (additional):

  • <n> = {3,4} (set channel IN3, or IN4)

Available Jupyter and API macros:

  • Fast analog channels - RP_CH_1, RP_CH_2

  • Decimation - RP_DEC_1, RP_DEC_2, RP_DEC_4, RP_DEC_8, RP_DEC_16, RP_DEC_32, RP_DEC_64, RP_DEC_128, RP_DEC_256, RP_DEC_512, RP_DEC_1024, RP_DEC_2048, RP_DEC_4096, RP_DEC_8192, RP_DEC_16384, RP_DEC_32768, RP_DEC_65536

SIGNALlab 250-12 only (additional):

  • Input coupling - RP_DC, RP_AC

STEMlab 125-14 4-Input only (additional):

  • Fast analog channels - RP_CH_3, RP_CH_4

SCPI

API, Jupyter

DESCRIPTION

ECOSYSTEM

ACQ:DEC <decimation>
Example:
ACQ:DEC 4

C++: rp_AcqSetDecimation(rp_acq_decimation_t decimation)

Python: rp_AcqSetDecimation(<decimation>)

Set the decimation factor (power of 2 from 1 to 65536).



1.04-18 and up

ACQ:DEC:CH<n> <decimation>
Example:
ACQ:DEC:CH1 4

C++: rp_AcqSetDecimationCh(rp_channel_t channel, rp_acq_decimation_t decimation)

Python: rp_AcqSetDecimationCh(<channel>, <decimation>)

Set the decimation factor (power of 2 from 1 to 65536).
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:DEC? > <decimation>
Example:
ACQ:DEC? > 1

C++: rp_AcqGetDecimation(rp_acq_decimation_t* decimation)

Python: rp_AcqGetDecimation()

Get the decimation factor.

1.04-18 and up

ACQ:DEC:CH<n>? > <decimation>
Example:
ACQ:DEC:CH1? > 1

C++: rp_AcqGetDecimationCh(rp_channel_t channel, rp_acq_decimation_t* decimation)

Python: rp_AcqGetDecimationCh(<channel>)

Get the decimation factor.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:DEC:Factor <decimation_ext>
Example:
ACQ:DEC:Factor 17

C++: rp_AcqSetDecimationFactor(uint32_t decimation)

Python: rp_AcqSetDecimationFactor(<decimation>)

Set the extended decimation factor (power of 2 up to 16 then any
whole number up to 65536).


2.00-30 and up

ACQ:DEC:Factor:CH<n> <decimation_ext>
Example:
ACQ:DEC:Factor:CH1 17


C++: rp_AcqSetDecimationFactorCh(rp_channel_t channel, uint32_t decimation)

Python: rp_AcqSetDecimationFactorCh(<channel>, <decimation>)


Set the extended decimation factor (power of 2 up to 16 then any
whole number up to 65536).
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:DEC:Factor? > <decimation_ext>
Example:
ACQ:DEC:Factor? > 1

C++: rp_AcqGetDecimationFactor(uint32_t* decimation)

Python: rp_AcqGetDecimationFactor()

Get the extended decimation factor.

2.00-30 and up

ACQ:DEC:Factor:CH<n>? > <decimation_ext>
Example:
ACQ:DEC:Factor:CH1? > 1

C++: rp_AcqGetDecimationFactorCh(rp_channel_t channel, uint32_t* decimation)

Python: rp_AcqGetDecimationFactorCh(<channel>)

Get the extended decimation factor.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

-



C++: rp_AcqConvertFactorToDecimation(uint32_t factor,rp_acq_decimation_t* decimation)

Python: rp_AcqConvertFactorToDecimation(<factor>)

Convert the decimation factor to the closest available decimation value
(closest power of 2).


1.04-18 and up

-



C++: rp_AcqGetSamplingRateHz(float* sampling_rate)

Python: rp_AcqGetSamplingRateHz()

Get the current sampling rate in Hertz.



1.04-18 and up

ACQ:AVG <average>



C++: rp_AcqSetAveraging(bool enabled)

Python: rp_AcqSetAveraging(<enable>)

Enable/disable averaging.
Each sample is the average of skipped samples if DEC > 1.


1.04-18 and up

ACQ:AVG? > <average>
Example:
ACQ:AVG? > ON

C++: rp_AcqGetAveraging(bool *enabled)

Python: rp_AcqGetAveraging()

Get the averaging status.
Averages the skipped samples when DEC > 1


1.04-18 and up

ACQ:AVG:CH<n> <average>




C++: rp_AcqSetAveragingCh(rp_channel_t channel, bool enabled)

Python: rp_AcqSetAveragingCh(<channel>, <enable>)


Enable/disable averaging.
Each sample is the average of skipped samples if DEC > 1.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:AVG:CH<n>? > <average>
Example:
ACQ:AVG:CH1? > ON


C++: rp_AcqGetAveragingCh(rp_channel_t channel, bool *enabled)

Python: rp_AcqGetAveragingCh(<channel>)


Get the averaging status.
Averages the skipped samples when DEC > 1
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:FILTER:BYPASS:CH<n> <bypass>



C++: rp_AcqSetBypassFilter(rp_channel_t channel, bool enabled)

Python: rp_AcqSetBypassFilter(<channel>, <enable>)

The function enables or disables the filter in the FPGA.



2.07-43 and up

ACQ:FILTER:BYPASS:CH<n>? > <bypass>
Example:
ACQ:FILTER:BYPASS:CH1? > ON

C++: rp_AcqGetBypassFilter(rp_channel_t channel, bool *enabled)

Python: rp_AcqGetBypassFilter(<channel>)

Gets the current filter bypass from the FPGA



2.07-43 and up

ACQ:SOUR<n>:OFFS <offset>
Example:
ACQ:SOUR1:OFFS 0.1
C++: rp_AcqSetOffset(rp_channel_t channel, float value)

Python: rp_AcqSetOffset(<channel>, <value>)
Adds a voltage offset when requesting data. Only affects float and double
data types. Raw data remains unchanged.

in dev

ACQ:SOUR<n>:OFFS? > <offset>
Example:
ACQ:SOUR1:OFFS? > 0.1
C++: rp_AcqGetOffset(rp_channel_t channel, float* value)

Python: rp_AcqGetOffset(<channel>)
Returns the offset value in volts.


in dev

ACQ:SOUR<n>:GAIN <state>

Example:
ACQ:SOUR1:GAIN LV
C++: rp_AcqSetGain(rp_channel_t channel, rp_pinState_t state)

Python: rp_AcqSetGain(<channel>, <state>)

Set the gain for the specified channel to HIGH or LOW.
(For SIGNALlab 250-12 this is 1:20 and 1:1 attenuator).
The gain refers to jumper settings on the Red Pitaya fast analog input.

1.04-18 and up

ACQ:SOUR<n>:GAIN? > <state>

Example:
ACQ:SOUR1:GAIN? > HV
C++: rp_AcqGetGain(rp_channel_t channel, rp_pinState_t* state)

Python: rp_AcqGetGain(<channel>)

Get the gain setting for the specified channel
(For SIGNALlab 250-12 this is 1:20 and 1:1 attenuator).


1.04-18 and up

-



C++: rp_AcqGetGainV(rp_channel_t channel, float* voltage)

Python: rp_AcqGetGainV(<channel>)

Get specified channel gain in Volts.



1.04-18 and up

ACQ:SOUR<n>:COUP <mode>
Example:
ACQ:SOUR1:COUP AC

C++: rp_AcqSetAC_DC(rp_channel_t channel, rp_acq_ac_dc_mode_t mode)

Python: rp_AcqSetAC_DC(<channel>, <mode>)

Set the AC / DC mode of the specified input (only SIGNALlab 250-12).

1.04-18 and up

ACQ:SOUR<n>:COUP? > <mode>
Example:
ACQ:SOUR1:COUP? > AC

C++: rp_AcqGetAC_DC(rp_channel_t channel, rp_acq_ac_dc_mode_t *status)

Python: rp_AcqGetAC_DC(<channel>)

Get the AC / DC mode of the specified input (only SIGNALlab 250-12).

1.04-18 and up

ACQ:DATA:Units <units>
Example:
ACQ:DATA:Units RAW

C++: - (See specific acquisition command)

Python: - (See specific acquisition command)

Select units in which the acquired data will be returned. For API commands
this depends on which function is called (see specific functions for
details).

1.04-18 and up

ACQ:DATA:Units? > <units>
Example:
ACQ:DATA:Units? > RAW

C++: - (See specific acquisition command)

Python: - (See specific acquisition command)

Get units in which the acquired data will be returned.

1.04-18 and up

ACQ:DATA:FORMAT <format>
Example:
ACQ:DATA:FORMAT ASCII

C++: - (N/A)

Python: - (N/A)

Select the format in which the acquired data will be returned.
Only for remote SCPI control.


1.04-18 and up

ACQ:DATA:FORMAT? > <format>
Example:
ACQ:DATA:FORMAT? > ASCII

C++: - (N/A)

Python: - (N/A)

Returns the current format setting.
Only for remote SCPI control.


1.04-18 and up

ACQ:DATA:BYTE:ORDER <order>
Example:
ACQ:DATA:BYTE:ORDER LEND

C++: - (N/A)

Python: - (N/A)

Sets the byte order that the server returns when queried in BIN mode.
For maximum performance, set the mode to LEND
Only for remote SCPI control.

2.07-43 and up

ACQ:DATA:BYTE:ORDER? > <order>
Example:
ACQ:DATA:BYTE:ORDER? > LEND

C++: - (N/A)

Python: - (N/A)

Returns the current byte order setting.
Only for remote SCPI control.


2.07-43 and up

ACQ:BUF:SIZE? > <size>
Example:
ACQ:BUF:SIZE? > 16384

C++: rp_AcqGetBufSize(uint32_t *size)

Python: rp_AcqGetBufSize(<buffer>)

Returns the buffer size.
For Python API specifically, the input parameter is the buffer itself.


1.04-18 and up

- (N/A)





C++: - (look for malloc function online)

Python: rp_createBuffer(<maxChannels>, <length>, <initInt16>, <initDouble>, <initFloat>)



Performs memory allocation and returns the requested buffer.
- <maxChannels> - how many channels will be acquired
- <enght> - length of the buffer in samples (max 16384)
- <initInt16>, <initDouble>, <initFloat> - buffer sample type, set one
to true, others are false.
For Python API specifically. Replaced by functions returning NumPy buffers.

2.00-18 - 2.04-35

- (N/A)



C++: - (look for free function online)

Python: rp_deleteBuffer(<buffer>)

Free the allocated resources.
- <buffer> - buffer to be released/freed
For Python API specifically.
Replaced by functions returning NumPy buffers.

2.00-18 - 2.04-35

Acquisition trigger

Parameter options:

  • <n> = {1,2} (set channel IN1 or IN2)

  • <source> = {DISABLED, NOW, CH1_PE, CH1_NE, CH2_PE, CH2_NE, EXT_PE, EXT_NE, AWG_PE, AWG_NE} Default: DISABLED

  • <source> = {<source>, CH1_AE, CH2_AE, EXT_AE, AWG_AE}  (any edge triggering) In dev

  • <state> = {WAIT, TD}

  • <tr_state> = {OK, TIMEOUT,ERROR}

  • <fill_state> = {0, 1}

  • <decimated_data_num> = {value in samples} (minimum value -8192) Default: 0

  • <time_ns> = {value in nS} Default: 0

  • <value> = {value in us} Default: 500

  • <pre_counter> = {0...4294967295}

  • <voltage> = {value in V} Default: 0

  • <timeout_ms> = {timeout in milliseconds} (For disable timeout use: -1)

  • <mode> = {TRIG, FILL} (interrupt event type)

  • <enable> = {ON, OFF} Default: OFF

STEMlab 125-14 4-Input only (additional):

  • <n> = {3,4} (set channel IN3, or IN4)

  • <source> = {CH3_PE, CH3_NE, CH4_PE, CH4_NE}

  • <source> = {<source>, CH3_AE, CH4_AE}  (any edge triggering) In dev

Available Jupyter and API macros:

  • Fast analog channels - RP_CH_1, RP_CH_2

  • Acquisition trigger - RP_TRIG_SRC_DISABLED, RP_TRIG_SRC_NOW, RP_TRIG_SRC_CHA_PE, RP_TRIG_SRC_CHA_NE, RP_TRIG_SRC_CHB_PE, RP_TRIG_SRC_CHB_NE, RP_TRIG_SRC_EXT_PE, RP_TRIG_SRC_EXT_NE, RP_TRIG_SRC_AWG_PE, RP_TRIG_SRC_AWG_NE

  • Acquisition trigger any edge - RP_TRIG_SRC_CHA_AE, RP_TRIG_SRC_CHB_AE, RP_TRIG_SRC_EXT_AE, RP_TRIG_SRC_AWG_AE In dev

  • Acquisition trigger state - RP_TRIG_STATE_TRIGGERED, RP_TRIG_STATE_WAITING

  • Buffer size - ADC_BUFFER_SIZE, DAC_BUFFER_SIZE

  • Interrupt modes - RP_INT_TRIGGER, RP_INT_FILL

STEMlab 125-14 4-Input only (additional):

  • Fast analog channels - RP_CH_3, RP_CH_4

  • Acquisition trigger - RP_TRIG_SRC_CHC_PE, RP_TRIG_SRC_CHC_NE, RP_TRIG_SRC_CHD_PE, RP_TRIG_SRC_CHD_NE

  • Acquisition trigger any edge - RP_TRIG_SRC_CHC_AE, RP_TRIG_SRC_CHD_AE In dev

SCPI

API, Jupyter

DESCRIPTION

ECOSYSTEM

ACQ:TRig <source>
Example:
ACQ:TRig CH1_PE

C++: rp_AcqSetTriggerSrc(rp_acq_trig_src_t source)

Python: rp_AcqSetTriggerSrc(<source>)

Set acquisition trigger source. The options are disabled, trigger
immediately, or set trigger source & edge.


1.04-18 and up

ACQ:TRig:CH<n> <source>
Example:
ACQ:TRig:CH1 CH1_PE


C++: rp_AcqSetTriggerSrcCh(rp_channel_t channel, rp_acq_trig_src_t source)

Python: rp_AcqSetTriggerSrcCh(<channel>, <source>)


Set acquisition trigger source. The options are disabled, trigger
immediately, or set trigger source & edge.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

-



C++: rp_AcqGetTriggerSrc(rp_acq_trig_src_t* source)

Python: rp_AcqGetTriggerSrc()

Get acquisition trigger source.



1.04-18 and up

ACQ:TRig:STAT? > <state>
Example:
ACQ:TRig:STAT? > WAIT

C++: rp_AcqGetTriggerState(rp_acq_trig_state_t* state)

Python: rp_AcqGetTriggerState()

Get acquisition trigger status. If the trigger is DISABLED or the
acquisition is triggered, the state is TD. Otherwise, it is WAIT.


1.04-18 and up

ACQ:TRig:STAT:CH<n>? > <state>
Example:
ACQ:TRig:STAT:CH1? > WAIT


C++: rp_AcqGetTriggerStateCh(rp_channel_t channel, rp_acq_trig_state_t* state)

Python: rp_AcqGetTriggerStateCh(<channel>)


Get acquisition trigger status. If the trigger is DISABLED or the
acquisition is triggered, the state is TD. Otherwise, it is WAIT.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:TRig:INT:ENABLE <mode>,<enable>
Example:
ACQ:TRig:INT:ENABLE TRIG,ON


C++: rp_AcqSetIntMask(rp_int_mode_t mode, bool enable)

Python: rp_AcqSetIntMask(<mode>, <enable>)


Enables or disables interrupt generation for the specified
interrupt event.

- TRIG: Trigger condition met (edge, level, etc.)
- FILL: Buffer full, data ready for processing

in dev

ACQ:TRig:INT:ENABLE? <mode> > <enable>
Example:
ACQ:TRig:INT:ENABLE? TRIG > 1

C++: rp_AcqGetIntMask(rp_int_mode_t mode, bool* enable)

Python: rp_AcqGetIntMask(<mode>)

Returns the current interrupt enable/disable status for the
specified interrupt event.

Returns 1 (ON) if enabled, 0 (OFF) if disabled.

in dev

ACQ:TRig:INT:ENABLE:CH<n> <mode>,<enable>
Example:
ACQ:TRig:INT:ENABLE:CH1 TRIG,ON


C++: rp_AcqSetIntMaskCh(rp_channel_t channel, rp_int_mode_t mode, bool enable)

Python: rp_AcqSetIntMaskCh(<channel>, <mode>, <enable>)


Enables or disables interrupt generation for the specified
channel and interrupt event.
Used only in split trigger mode.


in dev

ACQ:TRig:INT:ENABLE:CH<n>? <mode> >
<enable>
Example:
ACQ:TRig:INT:ENABLE:CH1? TRIG > 1

C++: rp_AcqGetIntMaskCh(rp_channel_t channel, rp_int_mode_t mode,
bool* enable)
Python: rp_AcqGetIntMaskCh(<channel>, <mode>)


Returns the current interrupt enable/disable status for the
specified channel and interrupt event.
Used only in split trigger mode.


in dev

ACQ:TRig:INT<timeout_ms>:STAT? > <tr_state>
Example:
ACQ:TRig:INT1000:STAT? > OK
C++: rp_AcqIntTriggerRead(int timeout_ms)

Python: rp_AcqIntTriggerRead(<timeout_ms>)
Waits for a trigger interrupt event on any channel with timeout in ms.
Use -1 to disable timeout.

in dev

ACQ:TRig:INT<timeout_ms>:STAT:CH<n>? > <tr_state>
Example:
ACQ:TRig:INT:STAT:CH1? > OK
C++: rp_AcqIntTriggerReadCh(rp_channel_t channel, int timeout_ms)

Python: rp_AcqIntTriggerReadCh(<channel>, <timeout_ms>)
Waits for trigger interrupt on specified channel with timeout in ms.
Use -1 to disable timeout.

in dev

ACQ:TRig:FILL? > <fill_state>
Example:
ACQ:TRig:FILL? > 1

C++: rp_AcqGetBufferFillState(bool* state)

Python: rp_AcqGetBufferFillState()

Returns 1 if the buffer is full of data. Otherwise returns 0.

2.00-15 and up

ACQ:TRig:FILL:CH<n>? > <fill_state>
Example:
ACQ:TRig:FILL:CH1? > 1



C++: rp_AcqGetBufferFillStateCh(rp_channel_t channel, bool* state)

Python: rp_AcqGetBufferFillStateCh(<channel>)



Returns 1 if the buffer is full of data. Otherwise returns 0.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:TRig:INT<timeout_ms>:FILL? > <tr_state>
Example:
ACQ:TRig:INT1000:FILL? > OK
C++: rp_AcqIntFillRead(int timeout_ms)

Python: rp_AcqIntFillRead(<timeout_ms>)
Waits for a buffer fill interrupt event on any channel with timeout in ms.
Use -1 to disable timeout.

in dev

ACQ:TRig:INT<timeout_ms>:FILL:CH<n>? > <tr_state>
Example:
ACQ:TRig:INT:FILL:CH1? > OK
C++: rp_AcqIntFillReadCh(rp_channel_t channel, int timeout_ms)

Python: rp_AcqIntFillReadCh(<channel>, <timeout_ms>)
Waits for buffer fill interrupt on specified channel with timeout in ms.
Use -1 to disable timeout.

in dev

ACQ:TRig:DLY <decimated_data_num>
Example:
ACQ:TRig:DLY 2314

C++: rp_AcqSetTriggerDelay(int32_t decimated_data_num)

Python: rp_AcqSetTriggerDelay(<decimated_data_num>)

Set the trigger delay in samples. The triggering moment is by default in
the middle of acquired buffer (at 8192th sample) (trigger delay set to 0).


1.04-18 and up

ACQ:TRig:DLY:CH<n> <decimated_data_num>
Example:
ACQ:TRig:DLY:CH1 2314


C++: rp_AcqSetTriggerDelayCh(rp_channel_t channel, int32_t decimated_data_num)

Python: rp_AcqSetTriggerDelayCh(<channel>,<decimated_data_num>)


Set the trigger delay in samples. The triggering moment is by default in
the middle of acquired buffer (at 8192th sample) (trigger delay set to 0).
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:TRig:DLY? > <decimated_data_num>
Example:
ACQ:TRig:DLY? > 2314

C++: rp_AcqGetTriggerDelay(int32_t* decimated_data_num)

Python: rp_AcqGetTriggerDelay()

Get the trigger delay in samples.

1.04-18 and up

ACQ:TRig:DLY:CH<n>? > <decimated_data_num>
Example:
ACQ:TRig:DLY:CH1? > 2314



C++: rp_AcqGetTriggerDelayCh(rp_channel_t channel, int32_t* decimated_data_num)

Python: rp_AcqGetTriggerDelayCh(<channel>)



Get the trigger delay in samples.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:TRig:DLY:NS <time_ns>
Example:
ACQ:TRig:DLY:NS 128

C++: rp_AcqSetTriggerDelayNs(int64_t time_ns)

Python: rp_AcqSetTriggerDelayNs(<time_ns>)

Set the trigger delay in ns. Must be multiple of the board’s clock
resolution (125 MHz clock == 8 ns resolution, 250 MHz == 4 ns resolution).


1.04-18 and up

ACQ:TRig:DLY:NS:CH<n> <time_ns>
Example:
ACQ:TRig:DLY:NS:CH1 128


C++: rp_AcqSetTriggerDelayNsCh(rp_channel_t channel, int64_t time_ns)

Python: rp_AcqSetTriggerDelayNsCh(<channel>,<time_ns>)


Set the trigger delay in ns. Must be multiple of the board’s clock
resolution (125 MHz clock == 8 ns resolution, 250 MHz == 4 ns resolution).
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:TRig:DLY:NS? > <time_ns>
Example:
ACQ:TRig:DLY:NS? > 128 ns

C++: rp_AcqGetTriggerDelayNs(int64_t* time_ns)

Python: rp_AcqGetTriggerDelayNs()

Get the trigger delay in ns.

1.04-18 and up

ACQ:TRig:DLY:NS:CH<n>? > <time_ns>
Example:
ACQ:TRig:DLY:NS:CH1? > 128 ns



C++: rp_AcqGetTriggerDelayNsCh(rp_channel_t channel, int64_t* time_ns)

Python: rp_AcqGetTriggerDelayNsCh(<channel>)



Get the trigger delay in ns.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:TRig:PRE:COUNTER? > <pre_counter>
Example:
ACQ:TRig:PRE:COUNTER? > 8192

C++: rp_AcqGetPreTriggerCounter(uint32_t* value)

Python: rp_AcqGetPreTriggerCounter()

Returns the number of valid data points (samples) in the buffer
before the trigger position.


in dev

ACQ:TRig:PRE:COUNTER:CH<n>? > <pre_counter>
Example:
ACQ:TRig:PRE:COUNTER:CH1? > 8192
C++: rp_AcqGetPreTriggerCounterCh(rp_channel_t channel, uint32_t* value)

Python: rp_AcqGetPreTriggerCounterCh(<channel>)
Returns the number of valid data points (samples) in the buffer
before the trigger position for the specified channel.
Used only in split trigger mode.

in dev

ACQ:TRig:HYST <voltage>
Example:
ACQ:TRig:HYST 0.005

C++: rp_AcqSetTriggerHyst(float voltage)

Python: rp_AcqSetTriggerHyst(<voltage>)

Set the trigger hysteresis threshold value in Volts.

1.04-18 and up

ACQ:TRig:HYST? > <voltage>
Example:
ACQ:TRig:HYST? > 0.005 V

C++: rp_AcqGetTriggerHyst(float* voltage)

Python: rp_AcqGetTriggerHyst()

Get the trigger hysteresis threshold value in Volts.

1.04-18 and up

ACQ:TRig:LEV <voltage>
Example:
ACQ:TRig:LEV 0.125 V

C++: rp_AcqSetTriggerLevel(rp_channel_trigger_t channel, float voltage)

Python: rp_AcqSetTriggerLevel(<channel>, <voltage>)

Set the trigger level in V.

1.04-18 and up

ACQ:TRig:LEV:CH<n> <voltage>
Example:
ACQ:TRig:LEV:CH1 0.125 V



C++: rp_AcqSetTriggerLevel(rp_channel_trigger_t channel, float voltage)

Python: rp_AcqSetTriggerLevel(<channel>, <voltage>)



Set the trigger level in V.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:TRig:LEV? > <voltage>
Example:
ACQ:TRig:LEV? > 0.123 V

C++: rp_AcqGetTriggerLevel(rp_channel_trigger_t channel, float* voltage)

Python: rp_AcqGetTriggerLevel(<channel>)

Get the trigger level in V.

1.04-18 and up

ACQ:TRig:LEV:CH<n>? > <voltage>
Example:
ACQ:TRig:LEV:CH1? > 0.123 V



C++: rp_AcqGetTriggerLevel(rp_channel_trigger_t channel, float* voltage)

Python: rp_AcqGetTriggerLevel(<channel>)



Get the trigger level in V.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:TRig:EXT:LEV <voltage>
Example:
ACQ:TRig:EXT:LEV 1

C++: rp_AcqSetTriggerLevel(rp_channel_trigger_t channel, float voltage)

Python: rp_AcqSetTriggerLevel(<channel>, <voltage>)

Set the external trigger level in V. (Only SIGNALlab 250-12)

1.04-18 - 2.00-30

ACQ:TRig:EXT:LEV? > <voltage>
Example:
ACQ:TRig:EXT:LEV? > 1

C++: rp_AcqGetTriggerLevel(rp_channel_trigger_t channel, float* voltage)

Python: rp_AcqGetTriggerLevel(<channel>)

Get the external trigger level in V. (Only SIGNALlab 250-12)

1.04-18 - 2.00-30

ACQ:TRig:EXT:DEBouncer:[US] <value>
Example:
ACQ:TRig:EXT:DEBouncer:US 1

C++: rp_AcqSetExtTriggerDebouncerUs(double value)

Python: rp_AcqSetExtTriggerDebouncerUs(<value>)

Set the external trigger acquisition debouncer in microseconds (value must
be positive).


2.00-15 and up

ACQ:TRig:EXT:DEBouncer:[US]? > <value>
Example:
ACQ:TRig:EXT:DEBouncer:US? > 1

C++: rp_AcqGetExtTriggerDebouncerUs(double *value)

Python: rp_AcqGetExtTriggerDebouncerUs()

Set the external trigger acquisition debouncer in microseconds.



2.00-15 and up

ACQ:TS <time_ns>
Example:
ACQ:TS 0
C++: rp_AcqSetInitTimestamp(uint64_t value)

Python: rp_AcqSetInitTimestamp(<value>)

Set initial timestamp value for acquisition (clock cycles).

in dev

ACQ:TS:CH<n>? > <time_ns>
Example:
ACQ:TS:CH1? > 12345
C++: rp_AcqGetTimestamp(rp_channel_t, uint64_t* time_ns)

Python: rp_AcqGetTimestamp(<channel>)

Get acquisition timestamp for specified channel in ns.

in dev

TRig:EXT:LEV <voltage>
Example:
TRig:EXT:LEV 1

C++: rp_SetExternalTriggerLevel(float voltage)

Python: rp_SetExternalTriggerLevel(<voltage>)

Set the external trigger level in V. (Only SIGNALlab 250-12)

2.04-35 and up

TRig:EXT:LEV? > <voltage>
Example:
TRig:EXT:LEV? > 1

C++: rp_GetExternalTriggerLevel(float* voltage)

Python: rp_GetExternalTriggerLevel()

Get the external trigger level in V. (Only SIGNALlab 250-12)

2.04-35 and up

Data pointers

The data is written into a circular buffer, which is constantly overwritten, until the triggering moment. Consequently, the trigger position can be anywhere inside the circular buffer, even though it is displayed to happen at approximately 8192nd sample in the acquired data (is affected by the ACQ:TRIG:DLY command).

Parameter options:

  • <n> = {1,2} (set channel IN1 or IN2)

  • <pos> = {position inside circular buffer} (0 … 16383)

STEMlab 125-14 4-Input only (additional):

  • <n> = {3,4} (set channel IN3, or IN4)

SCPI

API, Jupyter

DESCRIPTION

ECOSYSTEM

ACQ:WPOS? > <pos>
Example:
ACQ:WPOS? > 1024

C++: rp_AcqGetWritePointer(uint32_t* pos)

Python: rp_AcqGetWritePointer()

Returns the current position of the write pointer,
i.e the index of the most recent sample in the buffer.


1.04-18 and up

ACQ:TPOS? > <pos>
Example:
ACQ:TPOS? > 512

C++: rp_AcqGetWritePointerAtTrig(uint32_t* pos)

Python: rp_AcqGetWritePointerAtTrig()

Returns the position where the trigger event appeared.

1.04-18 and up

ACQ:WPOS:CH<n>? > <pos>
Example:
ACQ:WPOS:CH1? > 1024


C++: rp_AcqGetWritePointerCh(rp_channel_t channel, uint32_t* pos)

Python: rp_AcqGetWritePointerCh(<channel>)


Returns the current position of the write pointer,
i.e the index of the most recent sample in the buffer.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

ACQ:TPOS:CH<n>? > <pos>
Example:
ACQ:TPOS:CH1? > 512



C++: rp_AcqGetWritePointerAtTrigCh(rp_channel_t channel, uint32_t* pos)

Python: rp_AcqGetWritePointerAtTrigCh(<channel>)



Returns the position where the trigger event appeared.
Used only in split trigger mode
(Only STEMlab 125-14 4-Input)
(All boards from 2.07-48)

2.05-37 and up

Data read

Parameter options:

  • <n> = {1,2} (set channel IN1 or IN2)

  • <start_pos>, <end_pos>, <pos> = {0, 1, ..., 16383}

  • <buffer> Array to store the data into. For Python API use rp_createBuffer and for C++ API use malloc.

  • <buffer_size> Size of the array for data storage.

  • <t_pos> = {PRE_TRIG, POST_TRIG, PRE_POST_TRIG} Buffer reading direction mode relative to trigger

STEMlab 125-14 4-Input only (additional):

  • <n> = {3,4} (set channel IN3, or IN4)

Available Jupyter and API macros:

  • Fast analog channels - RP_CH_1, RP_CH_2

STEMlab 125-14 4-Input only (additional):

  • Fast analog channels - RP_CH_3, RP_CH_4

SCPI

API, Jupyter

DESCRIPTION

ECOSYSTEM

ACQ:SOUR<n>:DATA:STArt:End?
<start_pos>,<end_pos>
Example:
ACQ:SOUR1:DATA:STArt:End? 10,13 >
{123,231,-231}
C++: rp_AcqGetDataPosRaw(rp_channel_t channel, uint32_t start_pos, uint32_t end_pos, int16_t* buffer, uint32_t* buffer_size)
rp_AcqGetDataPosV(rp_channel_t channel, uint32_t start_pos, uint32_t end_pos, float* buffer, uint32_t* buffer_size)
Python: rp_AcqGetDataPosRaw(<channel>, <start_pos>, <end_pos>, <buffer>, <buffer_size>)
rp_AcqGetDataPosV(<channel>, <start_pos>, <end_pos>, <buffer>, <buffer_size>)

Read samples from start_pos to end_pos. For API commands, the buffer for
data storage and its size must also be provided. Use rp_createBuffer to allocate
data for Python and malloc for C++. API commands have two functions to return data
in Volts or RAW.

1.04-18 - 2.07-48

ACQ:SOUR<n>:DATA:STArt:End?
<start_pos>,<end_pos>
Example:
ACQ:SOUR1:DATA:STArt:End? 10,13 >
{123,231,-231}
C++: rp_AcqGetDataRawWithCalib(rp_channel_t channel, uint32_t start_pos, uint32_t end_pos, int16_t* buffer, uint32_t* buffer_size)
rp_AcqGetDataPosV(rp_channel_t channel, uint32_t start_pos, uint32_t end_pos, float* buffer, uint32_t* buffer_size)
Python: rp_AcqGetDataRawWithCalib(<channel>, <start_pos>, <end_pos>, <buffer>, <buffer_size>)
rp_AcqGetDataPosV(<channel>, <start_pos>, <end_pos>, <buffer>, <buffer_size>)

Read samples from start_pos to end_pos. For API commands, the buffer for
data storage and its size must also be provided. Use rp_createBuffer to allocate
data for Python and malloc for C++. API commands have two functions to return data
in Volts or RAW.

in dev

‘’



Python: rp_AcqGetDataPosRawNP(channel, start_pos, end_pos, np_buffer) (Numpy buffer dtype=np.int16)
rp_AcqGetDataPosVNP(channel, start_pos, end_pos, np_buffer) (Numpy buffer dtype=np.float32)


Copies the captured buffer data from start_pos to end_pos into the passed
NumPy buffer. The length of the copied data must match the np_buffer length.
Faster than the Python functions above.

2.05-37 and up

-




C++: rp_AcqGetDataRawWithCalib(rp_channel_t channel,  uint32_t pos, uint32_t* size, int16_t* buffer)

Python: rp_AcqGetDataRawWithCalib(<channel>, <pos>, <size>, <buffer>)
rp_AcqGetDataRawWithCalibNP(channel, pos, np_buffer) (Numpy buffer dtype=np.int16)

Read <size> samples from the <pos> onwards. The data is returned in RAW
format with calibration applied.
Numpy buffer must have the specified dtype format.
Faster than the Python functions above.

1.04-18 and up

-




C++: rp_AcqGetNormalizedDataPos(uint32_t pos)

Python: rp_AcqGetNormalizedDataPos(<pos>)


Normalizes the ADC buffer position. Returns the modulo operation of ADC buffer size.




1.04-18 and up

ACQ:SOUR<n>:DATA:STArt:N?
<start_pos>,<size>
Example:
ACQ:SOUR1:DATA:STArt:N? 10,3 >
{1.2,3.2,-1.2}
C++: rp_AcqGetDataRaw(rp_channel_t channel,  uint32_t pos, uint32_t* size, int16_t* buffer)
rp_AcqGetDataV(rp_channel_t channel, uint32_t pos, uint32_t* size, float* buffer)
Python: rp_AcqGetDataRaw(<channel>, <pos>, <size>, <buffer>)
rp_AcqGetDataV(<channel>, <pos>, <size>, <buffer>)

Read size samples from the <start_pos> onwards.




1.04-18 - 2.07-48

ACQ:SOUR<n>:DATA:STArt:N?
<start_pos>,<size>
Example:
ACQ:SOUR1:DATA:STArt:N? 10,3 >
{1.2,3.2,-1.2}
C++: rp_AcqGetDataRawWithCalib(rp_channel_t channel,  uint32_t pos, uint32_t* size, int16_t* buffer)
rp_AcqGetDataV(rp_channel_t channel, uint32_t pos, uint32_t* size, float* buffer)
Python: rp_AcqGetDataRawWithCalib(<channel>, <pos>, <size>, <buffer>)
rp_AcqGetDataV(<channel>, <pos>, <size>, <buffer>)

Read size samples from the <start_pos> onwards.




in dev

‘’



Python: rp_AcqGetDataRawNP(channel, pos, np_buffer) (Numpy buffer dtype=np.int16)
rp_AcqGetDataVNP(channel, pos, np_buffer) (Numpy buffer dtype=np.float32)


Copies the captured buffer data into the passed NumPy buffer from pos
onwards. The length of the copied data matches the np_buffer length.
Numpy buffer must have the specified dtype format.
Faster than the Python functions above.

2.05-37 and up

ACQ:SOUR<n>:DATA?
Example:
ACQ:SOUR2:DATA? >
{1.2,3.2,...,-1.2}

C++: rp_AcqGetOldestDataRaw(rp_channel_t channel, uint32_t* size, int16_t* buffer)
rp_AcqGetOldestDataV(rp_channel_t channel, uint32_t* size, float* buffer)
Python: rp_AcqGetOldestDataRaw(<channel>, <size>, <buffer>)
rp_AcqGetOldestDataV(<channel>, <size>, <buffer>)

Read the full buffer.
Starting from the oldest sample in the buffer (first sample after trigger delay).
If the trigger delay is set to zero, it will read the full buffer size starting
from the trigger.

1.04-18 - 2.07-48

ACQ:SOUR<n>:DATA?
Example:
ACQ:SOUR2:DATA? >
{1.2,3.2,...,-1.2}

C++: rp_AcqGetOldestDataRawWithCalib(rp_channel_t channel, uint32_t* size, int16_t* buffer)
rp_AcqGetOldestDataV(rp_channel_t channel, uint32_t* size, float* buffer)
Python: rp_AcqGetOldestDataRawWithCalib(<channel>, <size>, <buffer>)
rp_AcqGetOldestDataV(<channel>, <size>, <buffer>)

Read the full buffer.
Starting from the oldest sample in the buffer (first sample after trigger delay).
If the trigger delay is set to zero, it will read the full buffer size starting
from the trigger.

in dev

‘’



Python: rp_AcqGetOldestDataRawNP(channel, np_buffer) (Numpy buffer dtype=np.int16)
rp_AcqGetOldestDataVNP(channel, np_buffer) (Numpy buffer dtype=np.float32)


Copies the oldest captured buffer data into the passed NumPy buffer.
The length of the copied data matches the np_buffer length.
Numpy buffer must have the specified dtype format.
Faster than the Python functions above.

2.05-37 and up

‘’



Python: rp_AcqGetOldestDataRawWithCalibNP(channel, np_buffer) (Numpy buffer dtype=np.int16)



Copies the oldest captured buffer data into the passed NumPy buffer.
The length of the copied data matches the np_buffer length.
Numpy buffer must have the specified dtype format.
Faster than the Python functions above.

in dev

ACQ:SOUR<n>:DATA:Old:N? <size>
Example:
ACQ:SOUR2:DATA:Old:N? 3 >
{1.2,3.2,-1.2}
C++: rp_AcqGetOldestDataRaw(rp_channel_t channel, uint32_t* size, int16_t* buffer)
rp_AcqGetOldestDataV(rp_channel_t channel, uint32_t* size, float* buffer)
Python: rp_AcqGetOldestDataRaw(<channel>, <size>, <buffer>)
rp_AcqGetOldestDataV(<channel>, <size>, <buffer>)
Read the oldest <size> samples in the buffer.



1.04-18 - 2.07-48

ACQ:SOUR<n>:DATA:Old:N? <size>
Example:
ACQ:SOUR2:DATA:Old:N? 3 >
{1.2,3.2,-1.2}
C++: rp_AcqGetOldestDataRawWithCalib(rp_channel_t channel, uint32_t* size, int16_t* buffer)
rp_AcqGetOldestDataV(rp_channel_t channel, uint32_t* size, float* buffer)
Python: rp_AcqGetOldestDataRawWithCalib(<channel>, <size>, <buffer>)
rp_AcqGetOldestDataV(<channel>, <size>, <buffer>)
Read the oldest <size> samples in the buffer.



in dev

ACQ:SOUR<n>:DATA:LATest:N? <size>
Example:
ACQ:SOUR1:DATA:LATest:N? 3 >
{1.2,3.2,-1.2}
C++: rp_AcqGetLatestDataRaw(rp_channel_t channel, uint32_t* size, int16_t* buffer)
rp_AcqGetLatestDataV(rp_channel_t channel, uint32_t* size, float* buffer)
Python: rp_AcqGetLatestDataRaw(<channel>, <size>, <buffer>)
rp_AcqGetLatestDataV(<channel>, <size>, <buffer>)
Read the latest <size> samples in the buffer.



1.04-18 - 2.07-48

ACQ:SOUR<n>:DATA:LATest:N? <size>
Example:
ACQ:SOUR1:DATA:LATest:N? 3 >
{1.2,3.2,-1.2}
C++: rp_AcqGetLatestDataRawWithCalib(rp_channel_t channel, uint32_t* size, int16_t* buffer)
rp_AcqGetLatestDataV(rp_channel_t channel, uint32_t* size, float* buffer)
Python: rp_AcqGetLatestDataRawWithCalib(<channel>, <size>, <buffer>)
rp_AcqGetLatestDataV(<channel>, <size>, <buffer>)
Read the latest <size> samples in the buffer.



in dev

‘’



Python: rp_AcqGetLatestDataRawNP(channel, np_buffer) (Numpy buffer dtype=np.int16)
rp_AcqGetLatestDataVNP(channel, np_buffer) (Numpy buffer dtype=np.float32)


Copies the latest captured buffer data into the passed NumPy buffer.
The length of the copied data matches the np_buffer length.
Faster than the Python functions above.

2.05-37 and up

‘’



Python: rp_AcqGetLatestDataRawWithCalibNP(channel, np_buffer) (Numpy buffer dtype=np.int16)



Copies the latest captured buffer data into the passed NumPy buffer.
The length of the copied data matches the np_buffer length.
Faster than the Python functions above.

in dev

ACQ:SOUR<n>:DATA:TRig? <size>,<t_pos>
Example:
ACQ:SOUR1:DATA:TRig? 3,POST_TRIG >
{1.2,3.2,-1.2}
C++: rp_AcqGetDataRaw(rp_channel_t channel,  uint32_t pos, uint32_t* size, int16_t* buffer)
rp_AcqGetDataV(rp_channel_t channel, uint32_t pos, uint32_t* size, float* buffer)
Python: rp_AcqGetDataRaw(<channel>, <pos>, <size>, <buffer>)
rp_AcqGetDataV(<channel>, <pos>, <size>, <buffer>)
Read <size> samples relative to the trigger, depending on the setting.
PRE_TRIG, POST_TRIG trigger configuration returns size data samples.
PRE_POST_TRIG returns size * 2 + 1 data samples, including the triggering
moment

2.05-37 - 2.07-48

ACQ:SOUR<n>:DATA:TRig? <size>,<t_pos>
Example:
ACQ:SOUR1:DATA:TRig? 3,POST_TRIG >
{1.2,3.2,-1.2}
C++: rp_AcqGetDataRawWithCalib(rp_channel_t channel,  uint32_t pos, uint32_t* size, int16_t* buffer)
rp_AcqGetDataV(rp_channel_t channel, uint32_t pos, uint32_t* size, float* buffer)
Python: rp_AcqGetDataRawWithCalib(<channel>, <pos>, <size>, <buffer>)
rp_AcqGetDataV(<channel>, <pos>, <size>, <buffer>)
Read <size> samples relative to the trigger, depending on the setting.
PRE_TRIG, POST_TRIG trigger configuration returns size data samples.
PRE_POST_TRIG returns size * 2 + 1 data samples, including the triggering
moment

in dev

‘’



Python: rp_AcqGetDataRawNP(channel, pos, np_buffer) (Numpy buffer dtype=np.int16)
rp_AcqGetDataVNP(channel, pos, np_buffer) (Numpy buffer dtype=np.float32)


Copies the captured buffer data into the passed NumPy buffer from pos
onwards. The length of the copied data matches the np_buffer length.
Numpy buffer must have the specified dtype format.
Faster than the Python functions above.

2.05-37 and up