Прочитайте строку текста от устройства и включайте терминатор строки
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
блокирует доступ к командной строке MATLAB® до:
Терминатор строки, заданный свойством Terminator
, достигнут.
Прошло время, заданное как свойство Timeout.
Входной буфер заполнен.
Вы не можете использовать значения ASCII, больше, чем 127 символов. Функция ограничивается 127 бинарными символами.
BytesAvailable
| BytesAvailableFcn
| InputBufferSize
| Status
| Terminator
| Timeout
| ValuesReceived
| fgetl
| fopen