Запишите текст в инструмент
fprintf(obj,'cmd')
fprintf(obj,'format
','cmd')
fprintf(obj,'cmd','mode
')
fprintf(obj,'format
','cmd','mode
')
| Интерфейсный объект. |
| Строка записана в инструмент. |
| Спецификация преобразования языка C. |
| Задает, записаны ли данные синхронно или асинхронно. |
fprintf(obj,'cmd')
пишет строка cmd
в инструмент, соединенный с obj
. Форматом по умолчанию является %s\n
. Операция записи синхронна и блокирует командную строку, пока выполнение не завершено.
fprintf(obj,'
пишет строка с помощью формата, заданного format
','cmd')format
.
format
является спецификацией преобразования языка C. Спецификации преобразования включают символ %
и символы преобразования d, i, o, u, x, X, f, e, E, g, G, c, и s. Обратитесь к спецификациям формата файлового ввода-вывода sprintf
или руководству C для получения дополнительной информации.
fprintf(obj,'cmd','
пишет строка с доступом из коммандной строки, заданным mode
')mode
. Если mode
является sync
, cmd
записан синхронно, и командная строка блокируется. Если mode
является async
, cmd
записан асинхронно, и командная строка не блокируется. Если mode
не задан, операция записи синхронна.
fprintf(obj,'
пишет строка с помощью заданного формата. Если format
','cmd','mode
')mode
является sync
, cmd
записан синхронно. Если mode
является async
, cmd
записан асинхронно.
Создайте объект последовательного порта s
, соедините s
на машине Windows® к осциллографу Tektronix® TDS 210 и запишите команду RS232?
с функцией fprintf
. RS232?
дает осциллографу команду возвращать коммуникационные настройки последовательного порта.
s = serial('COM1'); fopen(s) fprintf(s,'RS232?') settings = fscanf(s) settings = 9600;1;0;NONE;LF
Поскольку форматом по умолчанию для fprintf
является %s\n
, терминатор строки, заданный свойством Terminator
, был автоматически записан. Однако в некоторых случаях вы можете хотеть подавить запись терминатора строки. Для этого необходимо явным образом задать формат для данных, которые не включают терминатор строки или конфигурируют терминатор строки, чтобы опустеть.
fprintf(s,'%s','RS232?')
Прежде чем можно будет записать текст в инструмент, он должен быть соединен с obj
с функцией fopen
. Связанный интерфейсный объект имеет значение свойства Status
open
. Ошибка возвращена, при попытке выполнить операцию записи, в то время как obj
не соединяется с инструментом.
Значение свойства ValuesSent
увеличено количеством значений, записанных каждый раз, когда fprintf
выпущен.
Ошибка происходит, если буфер вывода не может содержать все данные, которые будут записаны. Можно задать размер буфера вывода со свойством OutputBufferSize
.
Функция fprintf
возвратит сообщение об ошибке, если вы установите свойство flowcontrol
на hardware
на последовательном объекте, и аппаратная связь не обнаруживается. Это происходит, если устройство не соединяется, или подключенное устройство не утверждает, что это готово получить данные. Проверяйте вас состояние удаленного устройства и настройки управления потоками, чтобы видеть, вызывает ли аппаратное управление потоками ошибки в MATLAB®.
Если вы хотите проверять, чтобы видеть, утверждает ли устройство, что это готово получить данные, установите FlowControl
на none
. Если вы соединяете с проверкой устройства структуру PinStatus
для ClearToSend
. Если ClearToSend
является off
, на стороне удаленного устройства существует проблема. Если ClearToSend
является on
, существует оборудование, устройство FlowControl
подготовилось получать данные, и можно выполнить fprintf
.
Чтобы получить список опций, можно использовать на функции, нажать клавишу Tab после ввода функции на командной строке MATLAB. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой функции завершения вкладки "Дополнительно" смотрите Используя Заполнение клавишей Tab для Функций.
По умолчанию текст записан в инструмент синхронно, и командная строка блокируется, пока операция не завершается. Можно выполнить асинхронную запись путем конфигурирования входного параметра mode
, чтобы быть async
. Для асинхронных записей,
Значение свойства BytesToOutput
постоянно обновляется, чтобы отразить количество байтов в буфере вывода.
Функция обратного вызова, заданная для свойства OutputEmptyFcn
, выполняется, когда буфер вывода пуст.
Можно определить, происходит ли асинхронная операция записи со свойством TransferStatus
.
Синхронные и асинхронные операции записи обсуждены более подробно в Синхронном По сравнению с Асинхронными Операциями записи.
Операция записи с помощью fprintf
завершается когда
Заданные данные записаны.
Прошло время, заданное как свойство Timeout.
Для последовательного порта, TCPIP, UDP и последовательных ВИЗОЙ объектов, все случаи \n
в cmd
заменяются значением свойства Terminator
. Поэтому при использовании формата по умолчанию %s\n
, все команды, записанные в инструмент, закончатся этим значением свойства.
Для GPIB, VISA-GPIB, VISA-VXI и объектов VISA-GPIB-VXI, все случаи \n
в cmd
заменяются значением свойства EOSCharCode
, если свойство EOSMode
установлено в write
или read&write
. Например, если EOSMode
установлен в write
, и EOSCharCode
установлен в LF
, то все случаи \n
заменяются символом перевода строки. Кроме того, для объектов GPIB, строка Конца или идентифицирует (EOI) утверждается, когда терминатор строки выписан.
Терминатор строки, требуемый вашим инструментом, будет описан в его документации.
BytesToOutput
| EOSCharCode
| EOSMode
| OutputBufferSize
| OutputEmptyFcn
| Status
| TransferStatus
| ValuesSent
| fopen
| fwrite
| instrhelp
| query
| sprintf