exponenta event banner

fscanf (серийный)

(Подлежит удалению) Считывание данных ASCII с устройства и форматирование в виде текста

Это serial функция объекта будет удалена в следующей версии. Использовать serialport вместо этого объектные функции. См. раздел Вопросы совместимости.

Синтаксис

A = fscanf(obj)
A = fscanf(obj,'format')
A = fscanf(obj,'format',size)
[A,count] = fscanf(...)
[A,count,msg] = fscanf(...)

Описание

A = fscanf(obj) считывает данные ASCII с устройства, подключенного к объекту последовательного порта; objи возвращает его в A. Данные преобразуются в текст с помощью %c формат. Для двоичных данных используйте fread.

A = fscanf(obj,'format') считывает данные и преобразует их в соответствии с format. format - спецификация преобразования языка Си. Спецификации преобразования включают % и символы преобразования d, i, o, u, x, X, f, e, E, g, G, c и s. См. sscanf спецификации формата ввода-вывода файла или руководство C для получения дополнительной информации.

A = fscanf(obj,'format',size) считывает количество значений, указанных size. Допустимые параметры для size являются:

n

Читать максимум n значения в вектор столбца.

[m,n]

Считывайте максимум значения m-by-n, заполняющие матрицу m-by-n в порядке столбцов.

size не может быть inf, и возвращается ошибка, если указанное количество значений не может быть сохранено во входном буфере. Если size не имеет формы [m,n]и задается преобразование символов, то A возвращается как вектор строки. Вы указываете размер входного буфера в байтах с помощью InputBufferSize собственность. Значение ASCII - один байт.

[A,count] = fscanf(...) возвращает число значений, считанных с count.

[A,count,msg] = fscanf(...) возвращает предупреждающее сообщение msg если операция чтения не была успешно завершена.

Примеры

Создание объекта последовательного порта s и подключить s на осциллограф Tektronix ® TDS 210, который отображает синусоидальную волну. Этот пример работает на платформе Windows ®.

s = serial('COM1');
fopen(s)

Используйте fprintf для настройки области измерения пикового напряжения синусоидальной волны, возврата типа измерения и возврата пикового напряжения.

fprintf(s,'MEASUREMENT:IMMED:TYPE PK2PK')
fprintf(s,'MEASUREMENT:IMMED:TYPE?')
fprintf(s,'MEASUREMENT:IMMED:VALUE?')

Потому что значение по умолчанию для ReadAsyncMode свойство - continuousданные, связанные с двумя командами запроса, автоматически возвращаются во входной буфер.

s.BytesAvailable
ans =
    21

Использовать fscanf для считывания типа измерения. Операция завершится после считывания первого терминатора.

meas = fscanf(s)
meas =
PK2PK

Использовать fscanf считывание пикового напряжения как числа с плавающей запятой и исключение ограничителя.

pk2pk = fscanf(s,'%e',14)
pk2pk =
    2.0200

Разъединить s из области и удалить s из памяти и рабочей области.

fclose(s)
delete(s)
clear s

Совет

Перед считыванием данных с устройства его необходимо подключить к obj с fopen функция. Подключенный объект последовательного порта имеет Status значение свойства open. При попытке выполнить операцию чтения во время obj не подключен к устройству.

Если msg не включен в качестве выходного аргумента, и операция чтения не была выполнена, после чего в командную строку возвращается предупреждающее сообщение.

ValuesReceived значение свойства увеличивается на количество считываемых значений, включая признак конца, каждый раз fscanf выдается.

Правила завершения операции чтения с помощью fscanf

Операция чтения с fscanf блокирует доступ к командной строке MATLAB ® до:

  • Терминатор, указанный Terminator свойство прочитано.

  • Время, указанное Timeout проходит свойство.

  • Количество значений, указанных size считывается.

  • Входной буфер заполнен (за исключением случаев, когда size указано)

Вопросы совместимости

развернуть все

Не рекомендуется начинать с R2019b

См. также

Функции

Представлен до R2006a