exponenta event banner

fgets

Считывание строки текста с прибора и включение терминатора

Синтаксис

tline = fgets(obj)
[tline,count] = fgets(obj)
[tline,count,msg] = fgets(obj)
[tline,count,msg,datagramaddress,datagramport] = fgets(obj)

Аргументы

obj

Объект интерфейса.

tline

Текст, считываемый из инструмента, включая признак конца.

count

Число прочитанных значений.

msg

Сообщение, указывающее, что операция чтения не была успешно завершена.

datagramaddress

Адрес дейтаграммы.

datagramport

Порт дейтаграммы.

Описание

tline = fgets(obj) считывает одну строку текста из прибора, подключенного к objи возвращает данные в tline. Возвращенные данные включают признак конца с текстовой строкой. Чтобы исключить терминатор, используйте fgetl.

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

[tline,count,msg] = fgets(obj) возвращает предупреждающее сообщение msg если операция чтения не удалась.

[tline,count,msg,datagramaddress,datagramport] = fgets(obj) возвращает удаленный адрес и порт, из которого была создана дейтаграмма. Эти значения возвращаются только в том случае, если obj является объектом UDP.

Примеры

Создание объекта GPIB g, подключить g для осциллографа Tektronix ® TDS 210 настройте g для завершения операций чтения при чтении символа конца строки и записи *IDN? с помощью команды fprintf функция. *IDN? предписывает области вернуть идентификационную информацию.

g = gpib('ni',0,1);
fopen(g)
g.EOSMode = 'read';
fprintf(g,'*IDN?')

Асинхронное считывание идентификационной информации с прибора.

readasync(g)
g.BytesAvailable
ans =
    56

Использовать fgets для переноса данных из входного буфера в рабочую область MATLAB ® и включения терминатора.

idn = fgets(g)
idn =
TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04
length(idn)
ans =
    56

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

fclose(g)
delete(g)
clear g

Совет

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

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

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

Примечание

Нельзя использовать значения ASCII длиной более 127 символов. Функция ограничена 127 двоичными символами.

Примечание

Чтобы получить список опций, которые можно использовать для функции, нажмите клавишу Tab после ввода функции в командной строке MATLAB. Список расширяется, и можно выполнить прокрутку для выбора свойства или значения. Сведения об использовании этой расширенной функции завершения вкладки см. в разделе Использование функции завершения вкладки для функций.

Правила выполнения операции чтения с fgets

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

  • Терминатор считывается. Для последовательного порта, TCPIP, UDP и последовательных объектов VISA терминатор задается Terminator собственность. Обратите внимание, что для объектов UDP DatagramTerminateMode должно быть off.

    Для всех других объектов интерфейса, кроме VISA-RSIB, терминатор задается EOSCharCode собственность.

  • Устанавливается линия EOI (только приборы GPIB и VXI).

  • Получена датаграмма (UDP-объекты только в том случае, если DatagramTerminateMode является on).

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

  • Входной буфер заполнен.

Примечание

Нельзя использовать значения ASCII длиной более 127 символов. Функция ограничена 127 двоичными символами.

Подробнее о терминаторе GPIB и VXI

EOSCharCode значение свойства распознается только тогда, когда EOSMode свойство настроено на read или read&write. Например, если EOSMode настроен на read и EOSCharCode настроен на LF, то один из способов завершения операции считывания заключается в получении символа подачи строки.

Если EOSMode является none или write, то не определен признак конца для операций чтения. В этом случае fgets завершит выполнение и вернет управление в командную строку при выполнении другого критерия, такого как тайм-аут.

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

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

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

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

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

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

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

См. также

Функции

Свойства

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