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