How to Continuously Write to Fprintf
Write text to the device
Syntax
-
fprintf(obj,'cmd') fprintf(obj,'
format
','cmd') fprintf(obj,'cmd','mode
') fprintf(obj,'format
','cmd','mode
')
Arguments
obj | A serial port object. |
'cmd' | The string written to the device. |
' format ' | C language conversion specification. |
' mode ' | Specifies whether data is written synchronously or asynchronously. |
Description
writes the string fprintf(obj,'cmd')
cmd
to the device connected to obj
. The default format is %s\n
. The write operation is synchronous and blocks the command line until execution is complete.
writes the string using the format specified by fprintf(obj,'
format
','cmd')
format
. format
is a C language conversion specification. Conversion specifications involve the %
character and the conversion characters d, i, o, u, x, X, f, e, E, g, G, c, and s. Refer to the sprintf
file I/O format specifications or a C manual for more information.
writes the string with command line access specified by fprintf(obj,'cmd','
mode
')
mode
. If mode
is sync
, cmd
is written synchronously and the command line is blocked. If mode
is async
, cmd
is written asynchronously and the command line is not blocked. If mode
is not specified, the write operation is synchronous.
writes the string using the specified format. If fprintf(obj,'
format
','cmd','
mode
')
mode
is sync
, cmd
is written synchronously. If mode
is async
, cmd
is written asynchronously.
Remarks
Before you can write text to the device, it must be connected to obj
with the fopen
function. A connected serial port 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 device.
The ValuesSent
property value is increased by the number of values written each time fprintf
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.
If you use the help
command to display help for fprintf
, then you need to supply the pathname shown below.
-
help serial/fprintf
Synchronous Versus Asynchronous Write Operations
By default, text is written to the device 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 M-file 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.
Synchronous and asynchronous write operations are discussed in more detail in Controlling Access to the MATLAB Command Line.
Rules for Completing a Write Operation with fprintf
A synchronous or asynchronous write operation using fprintf
completes when:
- The specified data is written.
- The time specified by the
Timeout
property passes.
Additionally, you can stop an asynchronous write operation with the stopasync
function.
Rules for Writing the Terminator
All occurrences of \n
in cmd
are replaced with the Terminator
property value. Therefore, when using the default format %s\n
, all commands written to the device will end with this property value. The terminator required by your device will be described in its documentation.
Example
Create the serial port object s
, connect s
to a Tektronix TDS 210 oscilloscope, and write the RS232?
command with the fprintf
function. RS232?
instructs the scope to return serial port communications settings.
-
s = serial('COM1'); fopen(s) fprintf(s,'RS232?')
Because the default format for fprintf
is %s\n
, the terminator specified by the Terminator
property was automatically written. However, in some cases you might want to suppress writing the terminator. To do so, you must explicitly specify a format for the data that does not include the terminator, or configure the terminator to empty.
-
fprintf(s,'%s','RS232?')
See Also
Functions
fopen
, fwrite
, stopasync
Properties
BytesToOutput
, OutputBufferSize
, OutputEmptyFcn
, Status
, TransferStatus
, ValuesSent
fprintf | frame2im |
Source: http://www.ece.northwestern.edu/local-apps/matlabhelp/techdoc/ref/fprintfserial.html
0 Response to "How to Continuously Write to Fprintf"
Post a Comment