(Будет удален) Чтение данных ASCII с устройства и формат как текста
Этот serial функция object будет удалена в следующем релизе. Использовать serialport вместо этого функции объекта. См. Вопросы совместимости.
A = fscanf(obj)
A = fscanf(obj,'format')
A = fscanf(obj,'format',size)
[A,count] = fscanf(...)
[A,count,msg] = fscanf(...)
A = fscanf(obj) считывает данные ASCII с устройства, подключенного к объекту последовательного порта, obj, и возвращает его к A. Данные преобразуются в текст с помощью %c формат. Для двоичных данных используйте fread.
A = fscanf(obj,' считывает данные и преобразует их в соответствии с format')format. format является спецификацией преобразования языка C. Спецификации преобразования включают в себя % символ и конверсионные символы d, я, o, u, x, X, f, e, E, g, G, c, и s. Обратитесь к sscanf спецификации формата ввода-вывода файла или руководство на C для получения дополнительной информации.
A = fscanf(obj,' считывает количество значений, заданное в format',size)size. Допустимые опции для size являются:
| Читать самое большее |
| Считайте самое большее значения m на n, заполняя матрицу m на n в порядке столбца. |
size невозможно infи возвращается ошибка, если указанное количество значений не может быть сохранено в вход буфере. Если size не является формой [m,n], и задается преобразование символов, затем A возвращается как вектор-строка. Вы задаете размер, в байтах, входе буфера с InputBufferSize свойство. Значение ASCII является одним байтом.
[A,count] = fscanf(...) возвращает количество значений, считанных в count.
[A,count,msg] = fscanf(...) возвращает предупреждающее сообщение в msg если операция чтения не завершилась успешно.
Создайте объект последовательного порта s и соедините s в Tektronix® Осциллограф TDS 210, который отображает синусоиду. Этот пример работает в Windows® платформы.
s = serial('COM1');
fopen(s)
Используйте fprintf функция, чтобы сконфигурировать возможности, чтобы измерить пиковое напряжение синусоиды, вернуть тип измерения и вернуть пиковое напряжение к пиковому напряжению.
fprintf(s,'MEASUREMENT:IMMED:TYPE PK2PK') fprintf(s,'MEASUREMENT:IMMED:TYPE?') fprintf(s,'MEASUREMENT:IMMED:VALUE?')
Потому что значение по умолчанию для ReadAsyncMode свойство continuousданные, сопоставленные с двумя командами запроса, автоматически возвращаются во входной буфер.
s.BytesAvailable
ans =
21
Использовать fscanf для чтения типа измерения. Операция будет завершена, когда будет считан первый терминатор строки.
meas = fscanf(s)
meas = PK2PK
Использовать fscanf считывание пикового напряжения в пиковое значение в виде числа с плавающей запятой и исключение терминатора строки.
pk2pk = fscanf(s,'%e',14)
pk2pk =
2.0200
Отсоедините s из возможностей и удалить s из памяти и рабочей области.
fclose(s) delete(s) clear s
Прежде чем вы сможете считать данные с устройства, он должен быть подключен к obj с fopen функция. Связанный объект последовательного порта имеет Status значение свойства open. Ошибка возвращается, если вы пытаетесь выполнить операцию чтения во время obj не подключен к устройству.
Если msg не включен в качестве выходного аргумента и операция чтения не была успешной, затем в командную строку возвращается предупреждающее сообщение.
The ValuesReceived значение свойства увеличивается на количество значений, считанных - включая терминатор строки - каждый раз fscanf выдается.
Операция чтения с fscanf блокирует доступ к MATLAB® командная строка до:
Терминатор строки, заданный как Terminator свойство считывается.
Время, заданное как Timeout проходит свойство.
Количество значений, заданное как size считывается.
Входной буфер заполнен (если только size задан)