Считайте данные с инструмента и форматируйте как текст
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, я, 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 в окнах® машина и соедините 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 не включен в качестве выходного аргумента и операция чтения не была успешной, затем в командную строку возвращается предупреждающее сообщение.
The ValuesReceived значение свойства увеличивается на количество значений, считанных - включая терминатор строки - каждый раз fscanf выдается.
Примечание
Чтобы получить список опций, которые можно использовать для функции, нажмите клавишу Tab после ввода функции на MATLAB® командная строка. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой расширенной функции заполнения клавишей Tab, смотрите Использование заполнения клавишей Tab для функций.
Операция чтения с fscanf блокирует доступ к командной строке MATLAB до тех пор, пока
Считался терминатор строки. Для последовательных портов, TCPIP, UDP и VISA-последовательных объектов, терминатор строки задаётся Terminator свойство. Если Terminator пуст, fscanf завершает выполнение и возвращает управление, когда достигается другой критерий. Для объектов UDP, DatagramTerminateMode должен быть off.
Для всех других объектов интерфейса терминатор строки задаётся EOSCharCode свойство.
Время, заданное как Timeout проходит свойство.
Количество значений, заданное как size считывается. Для объектов UDP, DatagramTerminateMode должен быть off.
Датаграмма получена (для объектов UDP только когда DatagramTerminateMode является on).
Входной буфер заполнен.
Задана линия EOI (только приборы GPIB и VXI).
The EOSCharCode значение свойства распознается только тогда, когда EOSMode свойство настроено на read или read&write. Для примера, если EOSMode настроен на read и EOSCharCode настроен на LFзатем один из способов завершения операции считывания - когда принимается линией символ передачи.
Если EOSMode является none или write, тогда не задан терминатор строки для операций чтения. В этом случае fscanf завершает выполнение и возвращает управление команде, когда достигается другой критерий, такой как тайм-аут.