Считайте данные из инструмента и отформатируйте как текст
A = fscanf(obj)
A = fscanf(obj,'format
')
A = fscanf(obj,'format
',size)
[A,count] = fscanf(...)
[A,count,msg] = fscanf(...)
[A,count,msg,datagramaddress] = fscanf(obj,...)
[A,count,msg,datagramaddress,datagramport]
= fscanf(obj,...)
| Интерфейсный объект. |
| Спецификация преобразования языка C. |
| Количество значений, чтобы читать. |
| Данные считаны из инструмента и отформатированы как текст. |
| Количество чтения значений. |
| Сообщение, указывающее, была ли операция чтения неудачна. |
| Адрес дейтаграммного отправителя. |
| Порт дейтаграммного отправителя. |
A = fscanf(obj)
считывает данные из инструмента, соединенного с obj
, и возвращает его в A
. Данные преобразованы в текст с помощью формата %c
.
A = fscanf(obj,'
считывает данные и преобразовывает его согласно format
')format
.
format
является спецификацией преобразования языка C. Спецификации преобразования включают символ %
и символы преобразования d, i, o, u, x, X, f, e, E, g, G, c, и s. Обратитесь к спецификациям формата файлового ввода-вывода sscanf
или руководству C для получения дополнительной информации.
A = fscanf(obj,'
читает количество значений, заданных format
',size)size
. Допустимые опции для size
| Читайте в большинстве значений |
| Читайте в большинстве значений m на n, заполняющих матрицу m на n в порядке следования столбцов. |
size
не может быть inf
, и ошибка возвращена, если конкретное количество значений не может храниться во входном буфере. Если size
не имеет формы [m,n]
, и преобразование символов задано, то A
возвращен как вектор - строка. Вы задаете размер, в байтах, входного буфера со свойством InputBufferSize
. Значение ASCII составляет один байт.
Если obj
является объектом UDP, и DatagramTerminateMode
является off
, значение size
соблюдается. Если size
является меньше, чем длина дейтаграммы, только значения size
читаются. Если size
больше, чем длина дейтаграммы, предупреждение выдано, утвердив, что полная дейтаграмма была считана перед значениями size
был достигнут.
[A,count] = fscanf(...)
возвращает количество чтения значений к count
.
[A,count,msg] = fscanf(...)
возвращает предупреждающее сообщение в msg
, если операция чтения не завершалась успешно.
[A,count,msg,datagramaddress] = fscanf(obj,...)
возвращает дейтаграммный адрес в datagramaddress
, если obj
является объектом UDP. Если больше чем одна дейтаграмма читается, datagramaddress
''.
[A,count,msg,datagramaddress,datagramport]
= fscanf(obj,...)
возвращает дейтаграммный порт в datagramport
, если obj
является объектом UDP. Если больше чем одна дейтаграмма читается, datagramport
[].
Создайте объект последовательного порта s
на машине Windows® и соедините s
с осциллографом Tektronix® TDS 210, который отображает синусоиду.
s = serial('COM1'); fopen(s)
Используйте функцию fprintf
, чтобы сконфигурировать осциллограф, чтобы измерить напряжение от пика к пику синусоиды, возвратить тип измерения и возвратить напряжение от пика к пику.
fprintf(s,'MEASUREMENT:IMMED:TYPE PK2PK') fprintf(s,'MEASUREMENT:IMMED:TYPE?') fprintf(s,'MEASUREMENT:IMMED:VAL?')
Поскольку значением по умолчанию для свойства ReadAsyncMode
является continuous
, данные, сопоставленные с этими двумя командами запроса, автоматически возвращены во входной буфер.
s.BytesAvailable ans = 13
Используйте fscanf
, чтобы считать тип измерения. Операция завершится, когда первый терминатор строки будет считан.
meas = fscanf(s) meas = PK2PK
Используйте fscanf
, чтобы считать напряжение от пика к пику как число с плавающей запятой и исключить терминатор строки.
pk2pk = fscanf(s,'%e',6) pk2pk = 2.0200
Отключите s
от осциллографа и удалите s
из памяти и рабочей области.
fclose(s) delete(s) clear s
Прежде чем можно будет считать данные из инструмента, они должны быть соединены с obj
с функцией fopen
. Связанный интерфейсный объект имеет значение свойства Status
open
. Ошибка возвращена, при попытке выполнить операцию чтения, в то время как obj
не соединяется с инструментом.
Если msg
не включен как выходной аргумент, и операция чтения не была успешна, то предупреждающее сообщение возвращено в командную строку.
Значение свойства ValuesReceived
увеличено количеством чтения значений — включая терминатор строки — каждый раз, когда fscanf
выпущен.
Чтобы получить список опций, можно использовать на функции, нажать клавишу Tab после ввода функции на командной строке MATLAB®. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой функции завершения вкладки "Дополнительно" смотрите Используя Заполнение клавишей Tab для Функций.
Операция чтения с fscanf
блокирует доступ к командной строке MATLAB до
Терминатор строки читается. Для последовательного порта, TCPIP, UDP и последовательных ВИЗОЙ объектов, терминатор строки дан свойством Terminator
. Если Terminator
будет пуст, fscanf
завершит выполнение и возвратит управление, когда другому критерию будут соответствовать. Для объектов UDP DatagramTerminateMode
должен быть off
.
Для всех других интерфейсных объектов терминатор строки дан свойством EOSCharCode
.
Прошло время, заданное как свойство Timeout.
Считалось количество значений, заданных в size.
Для объектов UDP DatagramTerminateMode
должен быть off
.
Дейтаграмма получена (для объектов UDP только, когда DatagramTerminateMode
является on
).
Входной буфер заполнен.
Строка EOI утверждается (только GPIB и инструменты VXI).
Значение свойства EOSCharCode
распознано только, когда свойство EOSMode
сконфигурировано к read
или read&write
. Например, если EOSMode
сконфигурирован к read
, и EOSCharCode
сконфигурирован к LF
, то один из способов, которыми останавливается операция чтения, - когда символ перевода строки получен.
Если EOSMode
является none
или write
, то нет никакого терминатора строки, заданного для операций чтения. В этом случае fscanf
завершит выполнение и возвратит управление в команду, когда другому критерию, такому как тайм-аут, будут соответствовать.
BytesAvailable
| BytesAvailableFcn
| EOSCharCode
| EOSMode
| InputBufferSize
| Status
| Terminator
| Timeout
| TransferStatus
| fgetl
| fgets
| fopen
| fread
| instrhelp
| scanstr
| sscanf