Считайте строку текста от устройства и включайте терминатор строки
tline = fgets (obj)
[tline, количество] = fgets (obj)
[tline, количество, сообщение] = 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 | Состояние | Терминатор | Тайм-аут | ValuesReceived | fgetl | fopen