(последовательный) fgets

Прочитайте строку текста от устройства и включайте терминатор строки

Синтаксис

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

Описание

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

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

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

Примеры

Создайте объект последовательного порта s, соедините s с осциллографом Tektronix® TDS 210 и запишите команду RS232? с функцией fprintf. RS232? дает осциллографу команду возвращать коммуникационные настройки последовательного порта.

s = serial('COM1');
fopen(s)
fprintf(s,'RS232?')

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

s.BytesAvailable
ans =
    17

Используйте fgets, чтобы считать данные, возвращенные в предыдущую операцию записи и включать терминатор строки.

settings = fgets(s)
settings =
9600;0;0;NONE;LF
length(settings)
ans =
    17

Отключите s от осциллографа и удалите s из памяти и рабочей области.

fclose(s)
delete(s)
clear s

Советы

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

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

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

Примечание

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

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

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

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

  • Прошло время, заданное как свойство Timeout.

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

Примечание

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

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