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