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