readasync

(Будет удален) Считывать данные асинхронно с устройства

Этот serial функция object будет удалена в следующем релизе. Использовать serialport вместо этого функции объекта. См. Вопросы совместимости.

Синтаксис

readasync(obj)
readasync(obj,size)

Описание

readasync(obj) инициирует операцию асинхронного чтения для объекта последовательного порта, obj.

readasync(obj,size) асинхронно считывает самое большее количество байтов, заданных size. Если size больше, чем различие между InputBufferSize значение свойства и BytesAvailable значение свойства, возвращается ошибка.

Примеры

Этот пример создает объект последовательного порта s в окнах® платформы. Соединяет s в Tektronix® Осциллограф TDS 210, конфигурирует s считывать данные асинхронно только в том случае, если readasync выдается и конфигурирует прибор для возврата пикового значения к пиковому значению сигнала в канале 1.

s = serial('COM1');
fopen(s)
s.ReadAsyncMode = 'manual';
fprintf(s,'Measurement:Meas1:Source CH1')
fprintf(s,'Measurement:Meas1:Type Pk2Pk')
fprintf(s,'Measurement:Meas1:Value?')

Начните чтение данных асинхронно с инструмента, используя readasync. Когда операция read будет завершена, верните данные в MATLAB® рабочая область с использованием fscanf.

readasync(s)
s.BytesAvailable
ans =
     15
out = fscanf(s)
out =
    2.0399999619E0
fclose(s)

Совет

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

Только используйте readasync чтобы сконфигурировать ReadAsyncMode свойство к manual. readasync игнорируется, если используется при ReadAsyncMode является continuous.

The TransferStatus свойство указывает, выполняется ли асинхронная операция чтения или записи. Можно записать данные во время прогресса асинхронного чтения, поскольку последовательные порты имеют отдельные контакты чтения и записи. Можно остановить асинхронные операции чтения и записи с помощью stopasync функция.

Можно контролировать объем данных, хранящихся в входе буфере, с помощью BytesAvailable свойство. Кроме того, можно использовать BytesAvailableFcn свойство для выполнения функции обратного вызова при считывании терминатора строки или заданного объема данных.

Правила завершения операции асинхронного чтения

Операция асинхронного чтения с readasync завершается при выполнении одного из следующих условий:

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

  • Время, заданное как Timeout проходит свойство.

  • Считалось указанное количество байтов.

  • Буфер входа заполняется (если size не задан).

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

Вопросы совместимости

расширить все

Не рекомендуемый запуск в R2019b

См. также

Функции

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