fread
Read binary data from instrument
Syntax
Description
A = fread(obj)
and A
= fread(obj,size)
read binary data from the instrument connected to
obj
, and returns the data to A
. The
maximum number of values to read is specified by size
. If
size
is not specified, the maximum number of values to read
is determined by the object's InputBufferSize
property. Valid
options for size
are:
n
— Read at mostn
values into a column vector.[m,n]
— Read at most m-by-n values filling an m-by-n matrix in column order.
size
cannot be inf
, and an error is returned
if the specified number of values cannot be stored in the input buffer. You specify
the size, in bytes, of the input buffer with the
InputBufferSize
property. A value is defined as a byte
multiplied by the precision
argument (see below).
If obj
is a UDP object and
DatagramTerminateMode
is off
, the
size
value is honored. If size
is less
than the length of the datagram, only size
values are read. If
size
is greater than the length of the datagram, a warning is
issued stating that a complete datagram was read before size
values was reached.
A = fread(obj,size,precision)
reads
binary data with precision specified by precision
.
precision
controls the number of bits read for each value and
the interpretation of those bits as integer, floating-point, or character values. If
precision
is not specified, uchar
(an
8-bit unsigned character) is used. By default, numeric values are returned in
double-precision arrays. The supported values for precision
are
listed below in Tips.
[A,count] = fread(___)
returns the number of values read to count
.
[A,count,msg] = fread(___)
returns a warning message to msg
if the read operation was
unsuccessful.
[A,count,msg,datagramaddress] = fread(obj,___)
returns the datagram address to datagramaddress
if
obj
is a UDP object. If more than one datagram is read,
datagramaddress
is ''
.
[A,count,msg,datagramaddress,datagramport]
= fread(obj,___)
returns the datagram port to
datagramport
if obj
is a UDP object. If
more than one datagram is read, datagramport
is
[]
.
Input Arguments
| An interface object. |
| The number of values to read. |
| The number of bits read for each value, and the interpretation of the bits as character, integer, or floating-point values. |
Output Arguments
| Binary data returned from the instrument. |
| The number of values read. |
| A message indicating if the read operation was unsuccessful. |
| The address of the datagram sender. |
| The port of the datagram sender. |
Tips
Before you can read data from the instrument, it must be connected to
obj
with thefopen
function. A connected interface object has aStatus
property value ofopen
. An error is returned if you attempt to perform a read operation whileobj
is not connected to the instrument.If
msg
is not included as an output argument and the read operation was not successful, then a warning message is returned to the command line.The
ValuesReceived
property value is increased by the number of values read, each timefread
is issued.Rules for Completing a Binary Read Operation
A read operation with
fread
blocks access to the MATLAB® Command Window untilThe specified number of values is read. For UDP objects,
DatagramTerminateMode
must beoff
.The time specified by the
Timeout
property passes.A datagram is received (for UDP objects only when
DatagramTerminateMode
ison
).The input buffer is filled.
The EOI line is asserted (GPIB and VXI instruments only).
The
EOSCharCode
is received (GPIB and VXI instruments only).
More About the GPIB and VXI Terminator
The
EOSCharCode
property value is recognized only when theEOSMode
property is configured toread
orread&write
. For example, ifEOSMode
is configured toread
andEOSCharCode
is configured toLF
, then one of the ways that the read operation terminates is when the line feed character is received.If
EOSMode
isnone
orwrite
, then there is no terminator defined for read operations. In this case,fread
will complete execution and return control to the command when another criterion, such as a timeout, is met.Supported Precisions
The supported values for the
precision
argument are listed below.Data Type
Precision
Interpretation
Character
uchar
8-bit unsigned character
schar
8-bit signed character
char
8-bit signed or unsigned character
Integer
int8
8-bit integer
int16
16-bit integer
int32
32-bit integer
uint8
8-bit unsigned integer
uint16
16-bit unsigned integer
uint32
32-bit unsigned integer
short
16-bit integer
int
32-bit integer
long
32- or 64-bit integer
ushort
16-bit unsigned integer
uint
32-bit unsigned integer
ulong
32- or 64-bit unsigned integer
Floating-point
single
32-bit floating point
float32
32-bit floating point
float
32-bit floating point
double
64-bit floating point
float64
64-bit floating point