Задайте, является ли асинхронная операция чтения непрерывной или ручной
Можно сконфигурировать ReadAsyncMode
, чтобы быть continuous
или manual
. Если ReadAsyncMode
является continuous
, объект последовательного порта постоянно запрашивает устройство, чтобы определить, доступны ли данные, чтобы быть считанными. Если данные доступны, они автоматически читаются и хранятся во входном буфере. Если выпущено, функция readasync
проигнорирована.
Если ReadAsyncMode
является manual
, объект не запрашивает устройство, чтобы определить, доступны ли данные, чтобы быть считанными. Вместо этого необходимо вручную выпустить функцию readasync
, чтобы выполнить асинхронную операцию чтения. Поскольку проверки readasync
на терминатор строки, эта функция может быть медленной. Чтобы увеличить скорость, сконфигурируйте ReadAsyncMode
к continuous
.
Если устройство будет готово передать данные, оно сделает так независимо от значения ReadAsyncMode
. Поэтому, если ReadAsyncMode
является manual
, и операция чтения не происходит, данные могут быть потеряны. Чтобы гарантировать, что все передаваемые данные хранятся во входном буфере, необходимо сконфигурировать ReadAsyncMode
к continuous
.
Чтобы определить объем данных, доступный во входном буфере, используйте свойство BytesAvailable
. Или для значения ReadAsyncMode
, можно принести данные в рабочую область MATLAB® с одной из синхронных функций чтения, таких как fscanf
, fgetl
, fgets
или для fread
.
Только для чтения | Никогда |
Тип данных | Строка |
| Постоянно запрашивайте устройство, чтобы определить, доступны ли данные, чтобы быть считанными. |
| Вручную считайте данные из устройства с помощью функции |