exponenta event banner

readasync

(Подлежит удалению) Асинхронное чтение данных с устройства

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

Синтаксис

readasync(obj)
readasync(obj,size)

Описание

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

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

Примеры

В этом примере создается объект последовательного порта s на платформе Windows ®. Он подключается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. По завершении операции чтения верните данные в рабочую область 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.

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

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

Правила выполнения асинхронной операции чтения

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

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

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

  • Прочитано указанное число байт.

  • Входной буфер заполнен (если size не указан).

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

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

развернуть все

Не рекомендуется начинать с R2019b

См. также

Функции

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