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 для завершения операций чтения при чтении символа End-Of-String и записи *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 не включен в качестве выходного аргумента и операция чтения не была успешной, затем в командную строку возвращается предупреждающее сообщение.

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

Примечание

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

Примечание

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

Правила завершения операции чтения с помощью 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 Terminator

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

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

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

расширить все

Не рекомендуемый запуск в R2019b

Не рекомендуемый запуск в R2020b

Не рекомендуемый запуск в R2020b

Не рекомендуемый запуск в R2020b

Не рекомендуемый запуск в R2021a

См. также

Функции

Свойства

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