exponenta event banner

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 - спецификация преобразования языка Си. Спецификации преобразования включают % и символы преобразования 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. Список расширяется, и можно выполнить прокрутку для выбора свойства или значения. Сведения об использовании этой расширенной функции завершения вкладки см. в разделе Использование функции завершения вкладки для функций.

Синхронные и асинхронные операции записи

По умолчанию текст записывается в прибор синхронно и командная строка блокируется до завершения операции. Асинхронную запись можно выполнить, настроив mode входной аргумент должен быть async. Для асинхронных операций записи:

  • BytesToOutput значение свойства непрерывно обновляется для отражения количества байтов в выходном буфере.

  • Функция обратного вызова, указанная для OutputEmptyFcn выполняется, когда выходной буфер пуст.

Можно определить, выполняется ли асинхронная операция записи с помощью TransferStatus собственность.

Операции синхронной и асинхронной записи более подробно описаны в разделе Операции синхронной и асинхронной записи.

Правила завершения операции записи с помощью fprintf

Операция записи с использованием fprintf завершается, когда

  • Указанные данные записываются.

  • Время, указанное Timeout проходит свойство.

Правила записи терминатора

Для последовательного порта, TCPIP, UDP и последовательных объектов VISA все вхождения \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 строка End Or Identification (EOI) устанавливается при записи терминатора.

Примечание

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

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

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

Не рекомендуется начинать с R2019b

Не рекомендуется начинать с R2020b

Не рекомендуется начинать с R2020b

Не рекомендуется начинать с R2020b

Не рекомендуется начинать с R2021a

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