readasync

Считайте данные асинхронно из инструмента

Синтаксис

readasync(obj)
readasync(obj,size)

Аргументы

obj

Интерфейсный объект.

size

Количество байтов, чтобы читать из инструмента.

Описание

readasync(obj) инициирует асинхронную операцию чтения.

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

Примеры

Этот пример создает объект последовательного порта s, подключения s к осциллографу Tektronix® TDS 210, конфигурирует s на машине Windows®, чтобы считать данные асинхронно, только если 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?')

Первоначально, во входном буфере нет никаких данных.

s.BytesAvailable
ans =
     0

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

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

Советы

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

Для последовательного порта, TCPIP, UDP и последовательных ВИЗОЙ объектов, необходимо использовать readasync только, когда вы конфигурируете ReadAsyncMode свойство к manualreadasync проигнорирован, если используется когда ReadAsyncMode continuous.

TransferStatus свойство указывает, происходят ли асинхронная операция чтения или операция записи. Для всех интерфейсных объектов вы не можете использовать readasync в то время как операция чтения происходит. Для последовательного порта и последовательных ВИЗОЙ объектов, можно записать данные, в то время как асинхронное чтение происходит, потому что последовательные порты имеют отдельное чтение и контакты записи. Можно остановить асинхронные операции чтения и операции записи с stopasync функция.

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

Асинхронная операция не поддержана для NI объекты VISA на платформе UNIX®. Таким образом, если вы используете readasync функция с объектом NI VISA, вы получите ошибку.

Примечание

Чтобы получить список опций, можно использовать на функции, нажать клавишу Tab после ввода функции на командной строке MATLAB. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой функции завершения вкладки "Дополнительно" смотрите Используя Заполнение клавишей Tab для Функций.

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

Асинхронная операция чтения с readasync завершается, когда одно из этих условий соблюдают:

  • Терминатор строки читается. Для последовательного порта, TCPIP, UDP и последовательных ВИЗОЙ объектов, терминатор строки дан Terminator свойство. Обратите внимание на то, что для объектов UDP, DatagramTerminateMode должен быть off.

    Для всех других интерфейсных объектов кроме VISA-RSIB терминатор строки дан EOSCharCode свойство.

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

  • Конкретное количество байтов читается.

  • Входной буфер заполнен.

  • Дейтаграмма была получена (объекты UDP, только если DatagramTerminateMode on)

  • Линия EOI утверждается (только GPIB и инструменты VXI).

Для последовательного порта, TCPIP, UDP, и последовательных ВИЗОЙ объектов, readasync может быть медленным, потому что это проверяет на терминатор строки. Чтобы увеличить скорость, вы можете хотеть сконфигурировать ReadAsyncMode к continuous и постоянно возвращайте данные во входной буфер, как только это доступно от инструмента.

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

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

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

Смотрите также

Функции

Свойства

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