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