fprintf

Запишите текст в инструмент

Синтаксис

fprintf(obj,'cmd')
fprintf(obj,'format','cmd')
fprintf(obj,'cmd','mode')
fprintf(obj,'format','cmd','mode')

Аргументы

obj

Интерфейсный объект.

'cmd'

Строка записана в инструмент.

'format'

Спецификация преобразования языка C.

'mode'

Задает, записаны ли данные синхронно или асинхронно.

Описание

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

Операция записи с помощью 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) утверждается, когда терминатор строки выписан.

Примечание

Терминатор строки, требуемый вашим инструментом, будет описан в его документации.

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2019b

Смотрите также

Функции

Свойства

Представлено до R2006a