(последовательный) fread

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

Синтаксис

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

Описание

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

n

Читайте в большинстве значений n в вектор-столбец.

[m,n]

Читайте в большинстве значений m на n, заполняющих матрицу m на n в порядке следования столбцов.

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

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

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

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

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

Советы

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

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

Значение свойства ValuesReceived увеличено количеством чтения значений, каждый раз, когда fread выпущен.

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

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

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

  • Прошло время, заданное как свойство Timeout.

    Примечание

    Свойство Terminator не используется для бинарных операций чтения.

Поддерживаемая точность

Поддерживаемые значения для 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-битная плавающая точка

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