exponenta event banner

освобожденный

Считывание двоичных данных с прибора

Синтаксис

A = fread(obj)
A = fread(obj,size)
A = fread(obj,size,'precision')
[A,count] = fread(...)
[A,count,msg] = fread(...)
[A,count,msg,datagramaddress] = fread(obj,...)
[A,count,msg,datagramaddress,datagramport] = fread(obj,...)

Аргументы

obj

Объект интерфейса.

size

Количество считываемых значений.

'precision'

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

A

Двоичные данные, возвращенные из прибора.

count

Число прочитанных значений.

msg

Сообщение, указывающее, не удалась ли операция чтения.

datagramaddress

Адрес отправителя дейтаграмм.

datagramport

Порт отправителя дейтаграмм.

Описание

A = fread(obj) и A = fread(obj,size) считывать двоичные данные из прибора, подключенного к objи возвращает данные в A. Максимальное количество считываемых значений определяется size. Если size не указано, максимальное количество считываемых значений определяется объектом InputBufferSize собственность. Допустимые параметры для size являются:

n

Читать максимум n значения в вектор столбца.

[m,n]

Считывайте максимум значения m-by-n, заполняющие матрицу m-by-n в порядке столбцов.

size не может быть inf, и возвращается ошибка, если указанное количество значений не может быть сохранено во входном буфере. Вы указываете размер входного буфера в байтах с помощью InputBufferSize собственность. Значение определяется как байт, умноженный на precision (см. ниже).

Если obj является объектом UDP и DatagramTerminateMode является off, size значение учитывается. Если size меньше длины дейтаграммы, только size значения считываются. Если size больше длины дейтаграммы, выдается предупреждение о том, что полная дейтаграмма была прочитана до size достигнуты значения.

A = fread(obj,size,'precision') считывает двоичные данные с точностью, указанной precision.

precision управляет количеством битов, считанных для каждого значения, и интерпретацией этих битов как целых, плавающих или символьных значений. Если precision не указан, uchar (8-битный символ без знака). По умолчанию числовые значения возвращаются в массивах с двойной точностью. Поддерживаемые значения для precision перечислены ниже в разделе Советы.

[A,count] = fread(...) возвращает число значений, считанных с count.

[A,count,msg] = fread(...) возвращает предупреждающее сообщение msg если операция чтения не удалась.

[A,count,msg,datagramaddress] = fread(obj,...) возвращает адрес дейтаграммы datagramaddress если obj является объектом UDP. Если считано более одной дейтаграммы, datagramaddress является.

[A,count,msg,datagramaddress,datagramport] = fread(obj,...) возвращает порт датаграммы в datagramport если obj является объектом UDP. Если считано более одной дейтаграммы, datagramport является.

Совет

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

Если msg не включен в качестве выходного аргумента, и операция чтения не была выполнена, после чего в командную строку возвращается предупреждающее сообщение.

ValuesReceived значение свойства увеличивается на количество считанных значений каждый раз fread выдается.

Примечание

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

Правила выполнения операции двоичного чтения

Операция чтения с fread блокирует доступ к командному окну MATLAB до

  • Считывается указанное число значений. Для объектов UDP DatagramTerminateMode должно быть off.

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

  • Получение дейтаграммы (только для объектов UDP DatagramTerminateMode является on).

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

  • Устанавливается линия EOI (только приборы GPIB и VXI).

  • EOSCharCode принимается (только приборы GPIB и VXI).

Подробнее о терминаторе GPIB и VXI

EOSCharCode значение свойства распознается только тогда, когда EOSMode свойство настроено на read или read&write. Например, если EOSMode настроен на read и EOSCharCode настроен на LF, то один из способов завершения операции считывания заключается в получении символа подачи строки.

Если EOSMode является none или write, то не определен признак конца для операций чтения. В этом случае fread завершит выполнение и вернет управление команде при выполнении другого критерия, такого как тайм-аут.

Поддерживаемые уточнения

Поддерживаемые значения для precision перечислены ниже.

Тип данных

Точность

Интерпретация

Характер

uchar

8-битный символ без знака

schar

8-битный символ со знаком

char

8-битный знак или знак без знака

Целое число

int8

8-битное целое число

int16

16-битное целое число

int32

32-разрядное целое число

uint8

8-битное целое число без знака

uint16

16-битное целое число без знака

uint32

32-разрядное целое число без знака

short

16-битное целое число

int

32-разрядное целое число

long

32- или 64-разрядное целое число

ushort

16-битное целое число без знака

uint

32-разрядное целое число без знака

ulong

32- или 64-разрядное целое число без знака

Плавающая точка

single

32-разрядная точка с плавающей запятой

float32

32-разрядная точка с плавающей запятой

float

32-разрядная точка с плавающей запятой

double

64-разрядная точка с плавающей запятой

float64

64-разрядная точка с плавающей запятой

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

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

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

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

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

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

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

См. также

Функции

Свойства

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