fwrite
Write binary data to instrument
Syntax
fwrite(obj,A)
fwrite(obj,A,'precision
')
fwrite(obj,A,'mode
')
fwrite(obj,A,'precision
','mode
')
Arguments
| An interface object. |
| The binary data written to the instrument. |
| The number of bits written for each value, and the interpretation of the bits as character, integer, or floating-point values. |
| Specifies whether data is written synchronously or asynchronously. |
Description
fwrite(obj,A)
writes the binary data
A
to the instrument connected to
obj
.
fwrite(obj,A,'
writes binary data with precision specified by
precision
')
.precision
controls the number of
bits written for each value and the interpretation of those bits as integer,
floating-point, or character values. If
precision
is not specified,
precision
uchar
(an 8-bit unsigned character) is used. The support
values for
are listed in
Supported Precisions.precision
fwrite(obj,A,'
writes binary data with command line access specified by
mode
')mode
. If mode
is
sync
, A
is written synchronously and the
command line is blocked. If mode
is
async
, A
is written asynchronously and the
command line is not blocked. If mode
is not specified,
the write operation is synchronous.
fwrite(obj,A,'
writes binary data with precision specified by
precision
','mode
')
and command-line
access specified by precision
.mode
Tips
Before you can write data to the instrument, it must be connected to
obj
with the fopen
function. A connected
interface object has a Status
property value of
open
. An error is returned if you attempt to perform a write
operation while obj
is not connected to the instrument.
The ValuesSent
property value is increased by the number of
values written each time fwrite
is issued.
An error occurs if the output buffer cannot hold all the data to be written. You
can specify the size of the output buffer with the
OutputBufferSize
property.
fwrite
will return an error message if you set the
FlowControl
property to hardware
on a
serial object, and a hardware connection is not detected. This occurs if a device is
not connected, or a connected device is not asserting that is ready to receive data.
Check you remote device's status and flow control settings to see if hardware flow
control is causing errors in MATLAB®.
Note
If you want to check to see if the device is asserting that it is ready to
receive data, set the FlowControl
to
none
. Once you connect to the device check the
PinStatus
structure for ClearToSend
.
If ClearToSend
is off
, there is a problem
on the remote device side. If ClearToSend
is
on
, there is a hardware FlowControl
device prepared to receive data and you can execute
fwrite
.
Note
To get a list of options you can use on a function, press the Tab key after entering a function on the MATLAB command line. The list expands, and you can scroll to choose a property or value. For information about using this advanced tab completion feature, see Using Tab Completion for Functions.
Synchronous Versus Asynchronous Write Operations
By default, data is written to the instrument synchronously and the command
line is blocked until the operation completes. You can perform an asynchronous
write by configuring the mode
input argument to be
async
. For asynchronous writes,
The
BytesToOutput
property value is continuously updated to reflect the number of bytes in the output buffer.The callback function specified for the
OutputEmptyFcn
property is executed when the output buffer is empty.
You can determine whether an asynchronous write operation is in progress with
the TransferStatus
property.
Rules for Completing a Write Operation with fwrite
A binary write operation using fwrite
completes
when
The specified data is written.
The time specified by the
Timeout
property passes.
Note
The Terminator
and EOSCharCode
properties are not used with binary write operations.
Supported Precisions
The supported values for precision
are listed
below.
Data Type | Precision | Interpretation |
---|---|---|
Character |
| 8-bit unsigned character |
| 8-bit signed character | |
| 8-bit signed or unsigned character | |
Integer |
| 8-bit integer |
| 16-bit integer | |
| 32-bit integer | |
| 8-bit unsigned integer | |
| 16-bit unsigned integer | |
| 32-bit unsigned integer | |
| 16-bit integer | |
| 32-bit integer | |
| 32- or 64-bit integer | |
| 16-bit unsigned integer | |
| 32-bit unsigned integer | |
| 32- or 64-bit unsigned integer | |
Floating-point |
| 32-bit floating point |
| 32-bit floating point | |
| 32-bit floating point | |
| 64-bit floating point | |
| 64-bit floating point |