Прочитайте строку текста ASCII от устройства и отбросьте терминатор строки
tline = fgetl(obj)
[tline,count] = fgetl(obj)
[tline,count,msg] = fgetl(obj)
tline = fgetl(obj)
читает одну строку текста ASCII от устройства, соединенного к объекту последовательного порта, obj
, и возвращает данные в tline
. Эти возвращенные данные не включают терминатор строки с текстовой строкой. Чтобы включать терминатор строки, используйте fgets
.
[tline,count] = fgetl(obj)
возвращает количество чтения значений к count
, включая терминатор строки.
[tline,count,msg] = fgetl(obj)
возвращает предупреждающее сообщение в msg
, если операция чтения была неудачна.
На платформе Windows® создайте объект последовательного порта s
, соедините s
с осциллографом Tektronix® TDS 210 и запишите команду RS232?
с функцией fprintf
. RS232?
дает осциллографу команду возвращать коммуникационные настройки последовательного порта.
s = serial('COM1'); fopen(s) fprintf(s,'RS232?')
Поскольку значением по умолчанию для свойства ReadAsyncMode
является continuous
, данные автоматически возвращены во входной буфер.
s.BytesAvailable
ans = 17
Используйте fgetl
, чтобы считать данные, возвращенные в предыдущую операцию записи и отбросить терминатор строки.
settings = fgetl(s)
settings = 9600;0;0;NONE;LF
length(settings)
ans = 16
Отключите s
от осциллографа и удалите s
из памяти и рабочей области.
fclose(s)
delete(s)
clear s
Прежде чем можно будет считать текст из устройства, он должен быть соединен с obj
с функцией fopen
. Связанный объект последовательного порта имеет значение свойства Status
open
. Ошибка возвращена, при попытке выполнить операцию чтения, в то время как obj
не соединяется с устройством.
Если msg
не включен как выходной аргумент, и операция чтения не была успешна, то предупреждающее сообщение возвращено в командную строку.
Значение свойства ValuesReceived
увеличено количеством чтения значений – включая терминатор строки – каждый раз, когда fgetl
выпущен.
Вы не можете использовать значения ASCII, больше, чем 127 символов. Функция ограничивается 127 бинарными символами.
Операция чтения с fgetl
блокирует доступ к командной строке MATLAB® до:
Терминатор строки, заданный свойством Terminator
, достигнут.
Прошло время, заданное как свойство Timeout.
Входной буфер заполнен.
Вы не можете использовать значения ASCII, больше, чем 127 символов. Функция ограничивается 127 бинарными символами.
BytesAvailable
| InputBufferSize
| ReadAsyncMode
| Status
| Terminator
| Timeout
| ValuesReceived
| fgets
| fopen