2606B System SourceMeter® Instrument Reference Manual
Section 6: Instrument programming
2606B-901-01 Rev. B / May 2018
6-27
Standard libraries
In addition to the standard programming constructs described in this document, Lua includes
standard libraries that contain useful functions for string manipulation, mathematics, and related
functions. Test Script Processor (TSP
®
) scripting engine instruments also include instrument control
extension libraries, which provide programming interfaces to the instrumentation that can be
accessed by the TSP scripting engine. These libraries are automatically loaded when the TSP
scripting engine starts and do not need to be managed by the programmer.
The following topics provide information on some of the basic Lua standard libraries. For additional
information, see the
When referring to the Lua website, please be aware that the TSP scripting engine uses Lua 5.0.2.
Base library functions
Base library functions
Function
Description
collectgarbage()
collectgarbage(
limit
)
Sets the garbage-collection threshold to the given limit (in kilobytes) and
checks it against the byte counter. If the new threshold is smaller than the byte
counter, Lua immediately runs the garbage collector. If there is no limit
parameter, it defaults to zero (0), which forces a garbage-collection cycle. See
(on page 6-27) for more information.
gcinfo()
Returns the number of kilobytes of dynamic memory that the Test Script
Processor (TSP
®
) scripting engine is using, and returns the present garbage
collector threshold (also in kilobytes). See
6-27) for more information.
tonumber(
x
)
tonumber(
x, base
)
Returns
x
converted to a number. If
x
is already a number, or a convertible
string, the number is returned; otherwise, it returns
nil
.
An optional argument specifies the base to use when interpreting the numeral.
The base may be any integer from 2 to 36, inclusive. In bases above 10, the
letter
A
(in either upper or lower case) represents 10,
B
represents 11, and so
forth, with
Z
representing 35. In base 10, the default, the number may have a
decimal part, as well as an optional exponent. In other bases, only unsigned
integers are accepted.
tostring(
x
)
Receives an argument of any type and converts it to a string in a reasonable
format.
type(
v
)
Returns (as a string) the type of its only argument. The possible results of this
function are
"nil"
(a string, not the value
nil
),
"number"
,
"string"
,
"boolean"
,
"table"
,
"function"
,
"thread"
, and
"userdata"
.
Lua memory management
Lua automatically manages memory, which means you do not have to allocate memory for new
objects and free it when the objects are no longer needed. Lua occasionally runs a garbage collector
to collect all objects that are no longer accessible from Lua. All objects in Lua are subject to automatic
management, including tables, variables, functions, threads, and strings.
Lua uses two numbers to control its garbage-collection cycles. One number counts how many bytes
of dynamic memory Lua is using; the other is a threshold. When the number of bytes crosses the
threshold, Lua runs the garbage collector, which reclaims the memory of all inaccessible objects. The
byte counter is adjusted and the threshold is reset to twice the new value of the byte counter.