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. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой функции завершения вкладки "Дополнительно" смотрите Используя Заполнение клавишей Tab для Функций.

Правила для Завершения Операции чтения с fgets

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

  • Терминатор строки читается. Для последовательного порта, TCPIP, UDP и последовательных ВИЗОЙ объектов, терминатор строки дан 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