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,
precisionuchar (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
BytesToOutputproperty value is continuously updated to reflect the number of bytes in the output buffer.The callback function specified for the
OutputEmptyFcnproperty 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
Timeoutproperty 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 |