A reading buffer is based on a Lua table. The measurements are accessed by ordinary array
accesses. If rb is a reading buffer, the first measurement is accessed as rb[1] and the ninth
measurement as rb[9]. The additional information in the table is accessed as additional members of
the table.
The load, save, and write operations for reading buffers function differently in the remote state. From
a remote command interface, you can extract data from reading buffers as the instrument acquires
the data.
Dedicated reading buffer designations
Each source-measure unit (SMU) contains dedicated reading buffers:
• smua.nvbuffer1 (buffer 1 for channel A)
• smua.nvbuffer2 (buffer 2 for channel A)
• smub.nvbuffer1 (buffer 1 for channel B)
• smub.nvbuffer2 (buffer 2 for channel B)
To access a reading buffer, include the name of the SMU in the attribute. For example, the following
command stores readings from channel A into buffer 1:
smua.measure.overlappedi(smua.nvbuffer1)
Dedicated reading buffer example
The following programming example illustrates how to store data using dedicated reading buffer 1. In
the example, the 2600B loops for voltages from 0.01 V to 1 V with 0.01 V steps (performing a
staircase sweep), stores 100 current readings and source values in buffer 1, and then recalls all 100
readings and source values.
-- Restore 2600B defaults.
smua.reset()
-- Select channel A display.
display.screen = display.SMUA
-- Display current.
display.smua.measure.func = display.MEASURE_DCAMPS
-- Select measure I autorange.
smua.measure.autorangei = smua.AUTORANGE_ON
-- Select ASCII data format.
format.data = format.ASCII
-- Clear buffer 1.
smua.nvbuffer1.clear()
-- Enable append buffer mode.
smua.nvbuffer1.appendmode = 1
-- Enable source value storage.
smua.nvbuffer1.collectsourcevalues = 1
-- Set the count to 1.
smua.measure.count = 1
-- Select the source voltage function.
smua.source.func = smua.OUTPUT_DCVOLTS